Beispiel #1
0
    def fixture_model(self):
        model = Model()
        model.entities = [
            Entity('Company', attributes=[
                StringAttribute('name'),
            ], relationships=[
                Relationship('jobs', 'Job', is_optional=True, is_ordered=True),
            ]),

            Entity('Job', attributes=[
                BooleanAttribute('manager', default_value=False),
                FloatAttribute('salary', default_value=0.0),
            ], relationships=[
                Relationship('company', 'Company', is_optional=True, maximum_count=1),
                Relationship('person', 'Person', is_optional=True, maximum_count=1),
            ]),

            Entity('Person', attributes=[
                StringAttribute('firstName', is_optional=True),
                StringAttribute('lastName', is_optional=True),
                StringAttribute('username', is_indexed=True),
            ], relationships=[
                Relationship('job', 'Job', is_optional=True, maximum_count=1),
            ]),
        ]
        return model
Beispiel #2
0
 def fixture_model(self):
     model = Model()
     model.entities = [
         Entity('Company',
                attributes=[
                    StringAttribute('name'),
                ],
                relationships=[
                    Relationship('jobs',
                                 'Job',
                                 is_optional=True,
                                 is_ordered=True),
                ]),
         Entity('Job',
                attributes=[
                    BooleanAttribute('manager', default_value=False),
                    FloatAttribute('salary', default_value=0.0),
                ],
                relationships=[
                    Relationship('company',
                                 'Company',
                                 is_optional=True,
                                 maximum_count=1),
                    Relationship('person',
                                 'Person',
                                 is_optional=True,
                                 maximum_count=1),
                ]),
         Entity('Person',
                attributes=[
                    StringAttribute('firstName', is_optional=True),
                    StringAttribute('lastName', is_optional=True),
                    StringAttribute('username', is_indexed=True),
                ],
                relationships=[
                    Relationship('job',
                                 'Job',
                                 is_optional=True,
                                 maximum_count=1),
                ]),
     ]
     return model
Beispiel #3
0
    def parse(cls, document):
        models = document.getElementsByTagName('model')

        if len(models) != 1:
            raise Exception('Invalid model file')

        model_document = models[0]
        model = Model()

        entities = []
        for entity_document in model_document.getElementsByTagName('entity'):
            entity = EntityParser.parse(entity_document)
            entities.append(entity)

        model.entities = entities

        for entity in entities:
            for relationship in entity.relationships:
                entity = model.find_entity(relationship.destination_entity)
                relationship.destination_entity_class_name = entity.represented_class_name

        return model
Beispiel #4
0
    def parse(cls, document):
        models = document.getElementsByTagName('model')

        if len(models) != 1:
            raise Exception('Invalid model file')

        model_document = models[0]
        model = Model()

        entities = []
        for entity_document in model_document.getElementsByTagName('entity'):
            entity = EntityParser.parse(entity_document)
            entities.append(entity)

        model.entities = entities

        for entity in entities:
            for relationship in entity.relationships:
                entity = model.find_entity(relationship.destination_entity)
                relationship.destination_entity_class_name = entity.represented_class_name

        return model
Beispiel #5
0
 def test_creation(self):
     model = Model()