diff options
author | Boris Kolpackov <boris@codesynthesis.com> | 2012-03-21 08:36:21 +0200 |
---|---|---|
committer | Boris Kolpackov <boris@codesynthesis.com> | 2012-04-23 16:50:56 +0200 |
commit | 8d89bf37dd4ef3cb7373e1841ff57a53916fff0d (patch) | |
tree | 704b7de0338eba0e008a96a09b6d57e86846d1b1 /odb/relational/schema-source.hxx | |
parent | 68ff21c56fb287790440208907ad2a851a108f89 (diff) |
Polymorphic inheritance support
Diffstat (limited to 'odb/relational/schema-source.hxx')
-rw-r--r-- | odb/relational/schema-source.hxx | 10 |
1 files changed, 6 insertions, 4 deletions
diff --git a/odb/relational/schema-source.hxx b/odb/relational/schema-source.hxx index a72b55b..82b7e71 100644 --- a/odb/relational/schema-source.hxx +++ b/odb/relational/schema-source.hxx @@ -21,18 +21,20 @@ namespace relational virtual void traverse (type& c) { - if (class_file (c) != unit.file () || !object (c) || abstract (c)) + if (class_file (c) != unit.file ()) return; - context::top_object = context::cur_object = &c; + if (!object (c)) + return; + + if (abstract (c) && !polymorphic (c)) + return; os << "// " << class_name (c) << endl << "//" << endl << endl; schema_->traverse (c); - - context::top_object = context::cur_object = 0; } private: |