Example #1
0
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;
}
Example #2
0
 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());
 }
Example #3
0
    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()));
    }
Example #4
0
void MetaDataConfig::parse(Schema &reg)
{
    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'"));
    }
}
Example #5
0
bool DomainObject::is_empty() const
{
    return !shptr_get(get_data_object(false));
}
Example #6
0
void DomainObject::check_ptr() const
{
    if (!shptr_get(d_))
        throw NoDataObject();
}