int DomainObject::cmp(const DomainObject &x) const { DataObject::Ptr p1 = get_data_object(false), p2 = x.get_data_object(false); if (p1 == p2) return 0; if (!shptr_get(p1)) return -1; if (!shptr_get(p2)) return 1; if (p1->raw_values() == p2->raw_values()) return 0; return p1->raw_values() < p2->raw_values()? -1: 1; }
void test_link_one2many() { OrmTest ot; OrmXml ox1, ox2, ox3; CPPUNIT_ASSERT_EQUAL(0, (int)ot.orm_xmls.size()); ot.orm_xmls.insert(ox1); CPPUNIT_ASSERT_EQUAL(1, (int)ot.orm_xmls.size()); CPPUNIT_ASSERT_EQUAL(shptr_get(ox1.get_data_object()), shptr_get(ot.orm_xmls.begin()->get_data_object())); ot.orm_xmls.insert(ox2); CPPUNIT_ASSERT_EQUAL(2, (int)ot.orm_xmls.size()); ox3.orm_test = OrmTest::Holder(ot); CPPUNIT_ASSERT_EQUAL(3, (int)ot.orm_xmls.size()); }
void test_holder() { // a new DomainObject with a new DataObject object are created OrmXml::Holder dh0; CPPUNIT_ASSERT(dh0._get_p() != NULL); CPPUNIT_ASSERT(!dh0->is_empty()); // a new DomainObject with an empty DataObject are created OrmXml::Holder dh1(EMPTY_DATAOBJ); CPPUNIT_ASSERT(dh1._get_p() != NULL); CPPUNIT_ASSERT(dh1->is_empty()); Engine engine(Engine::READ_ONLY); setup_log(engine); Session session(Yb::theSchema(), &engine); OrmXml dobj(session, ORM_XML_ID4); OrmXml::Holder dh2(dobj); CPPUNIT_ASSERT(dh2._get_p() != NULL); CPPUNIT_ASSERT_EQUAL(shptr_get(dobj.get_data_object()), shptr_get(dh2->get_data_object())); }
void MetaDataConfig::parse(Schema ®) { if (node_->name_.compare(_T("schema"))) throw ParseError(String(_T("Unknown element '")) + node_->name_ + _T("' found during parse of root element, 'schema' expected")); ElementTree::Elements::const_iterator child = node_->children_.begin(), cend = node_->children_.end(); for (; child != cend; ++child) { if (!(*child)->name_.compare(_T("table"))) { Table::Ptr t = parse_table(*child); reg.add_table(t); } else if (!(*child)->name_.compare(_T("relation"))) { Relation::Ptr r = parse_relation(*child); if (shptr_get(r)) reg.add_relation(r); } else throw ParseError(String(_T("Unknown element '")) + (*child)->name_ + _T("' found during parse of element 'schema'")); } }
bool DomainObject::is_empty() const { return !shptr_get(get_data_object(false)); }
void DomainObject::check_ptr() const { if (!shptr_get(d_)) throw NoDataObject(); }