summaryrefslogtreecommitdiff
path: root/odb/relational/model.cxx
diff options
context:
space:
mode:
Diffstat (limited to 'odb/relational/model.cxx')
-rw-r--r--odb/relational/model.cxx122
1 files changed, 0 insertions, 122 deletions
diff --git a/odb/relational/model.cxx b/odb/relational/model.cxx
deleted file mode 100644
index 8d4e320..0000000
--- a/odb/relational/model.cxx
+++ /dev/null
@@ -1,122 +0,0 @@
-// file : odb/relational/model.cxx
-// copyright : Copyright (c) 2009-2019 Code Synthesis Tools CC
-// license : GNU GPL v3; see accompanying LICENSE file
-
-#include <odb/diagnostics.hxx>
-
-#include <odb/relational/model.hxx>
-#include <odb/relational/generate.hxx>
-
-using namespace std;
-
-namespace relational
-{
- namespace model
- {
- // object_columns
- //
- string object_columns::
- default_ (semantics::data_member& m)
- {
- default_value* dv (0);
-
- semantics::type& t (utype (m));
-
- if (m.count ("default"))
- dv = &m.get<default_value> ("default");
- else if (t.count ("default"))
- dv = &t.get<default_value> ("default");
- else
- return ""; // No default value for this column.
-
- switch (dv->kind)
- {
- case default_value::reset:
- {
- return ""; // No default value.
- }
- case default_value::null:
- {
- return default_null (m);
- }
- case default_value::boolean:
- {
- return default_bool (m, dv->literal == "true");
- }
- case default_value::integer:
- {
- return default_integer (m, dv->int_value, dv->literal == "-");
- }
- case default_value::floating:
- {
- return default_float (m, dv->float_value);
- }
- case default_value::string:
- {
- return default_string (m, dv->literal);
- }
- case default_value::enumerator:
- {
- return default_enum (m, dv->enum_value, dv->literal);
- }
- }
-
- return "";
- }
-
- cutl::shared_ptr<sema_rel::model>
- generate ()
- {
- context ctx;
- cutl::shared_ptr<sema_rel::model> m (
- new (shared) sema_rel::model (
- ctx.versioned () ? ctx.version ().current : 0));
- m->set ("deleted-map", deleted_table_map ());
-
- traversal::unit unit;
- traversal::defines unit_defines;
- typedefs unit_typedefs (false);
- traversal::namespace_ ns;
- instance<class_> c (*m);
-
- unit >> unit_defines >> ns;
- unit_defines >> c;
- unit >> unit_typedefs >> c;
-
- traversal::defines ns_defines;
- typedefs ns_typedefs (false);
-
- ns >> ns_defines >> ns;
- ns_defines >> c;
- ns >> ns_typedefs >> c;
-
- try
- {
- unit.dispatch (ctx.unit);
- }
- catch (sema_rel::duplicate_name const& e)
- {
- location const& o (e.orig.get<location> ("cxx-location"));
- location const& d (e.dup.get<location> ("cxx-location"));
-
- error (d) << e.dup.kind () << " name '" << e.name << "' conflicts "
- << "with an already defined " << e.orig.kind () << " name"
- << endl;
-
- info (o) << "conflicting " << e.orig.kind () << " is defined here"
- << endl;
-
- if (e.dup.kind () == "index")
- info (d) << "use #pragma db index to change its name" << endl;
- else if (e.dup.kind () == "table")
- info (d) << "use #pragma db table to change its name" << endl;
- else
- info (d) << "use #pragma db column to change its name" << endl;
-
- throw operation_failed ();
- }
-
- return m;
- }
- }
-}