xtuml/meta.py
def define_association(self, rel_id, source_kind, source_keys, source_many,
                           source_conditional, source_phrase, target_kind, 
                           target_keys, target_many, target_conditional, 
                           target_phrase):
        '''
        Define and return an association from one kind of class (the source 
        kind) to some other kind of class (the target kind).
        '''
        if isinstance(rel_id, int):
            rel_id = 'R%d' % rel_id
            
        source_metaclass = self.find_metaclass(source_kind)
        target_metaclass = self.find_metaclass(target_kind)

        source_link = target_metaclass.add_link(source_metaclass, rel_id,
                                                many=source_many,
                                                phrase=target_phrase,
                                                conditional=source_conditional)
                
        target_link = source_metaclass.add_link(target_metaclass, rel_id,
                                                many=target_many,
                                                phrase=source_phrase,
                                                conditional=target_conditional)
        
        ass = Association(rel_id,
                          source_keys, source_link,
                          target_keys, target_link)
        
        source_link.key_map = dict(zip(source_keys, target_keys))
        target_link.key_map = dict(zip(target_keys, source_keys))
        
        self.associations.append(ass)

        return ass
def define_association(self, rel_id, source_kind, source_keys, source_many,
                           source_conditional, source_phrase, target_kind, 
                           target_keys, target_many, target_conditional, 
                           target_phrase):
        '''
        Define and return an association from one kind of class (the source 
        kind) to some other kind of class (the target kind).
        '''
        if isinstance(rel_id, int):
            rel_id = 'R%d' % rel_id
            
        source_metaclass = self.find_metaclass(source_kind)
        target_metaclass = self.find_metaclass(target_kind)

        source_link = target_metaclass.add_link(source_metaclass, rel_id,
                                                many=source_many,
                                                phrase=target_phrase,
                                                conditional=source_conditional)
                
        target_link = source_metaclass.add_link(target_metaclass, rel_id,
                                                many=target_many,
                                                phrase=source_phrase,
                                                conditional=target_conditional)
        
        ass = Association(rel_id,
                          source_keys, source_link,
                          target_keys, target_link)
        
        source_link.key_map = dict(zip(source_keys, target_keys))
        target_link.key_map = dict(zip(target_keys, source_keys))
        
        self.associations.append(ass)

        return ass
def define_association ( self , rel_id , source_kind , source_keys , source_many , source_conditional , source_phrase , target_kind , target_keys , target_many , target_conditional , target_phrase ) : if isinstance ( rel_id , int ) : rel_id = 'R%d' % rel_id source_metaclass = self . find_metaclass ( source_kind ) target_metaclass = self . find_metaclass ( target_kind ) source_link = target_metaclass . add_link ( source_metaclass , rel_id , many = source_many , phrase = target_phrase , conditional = source_conditional ) target_link = source_metaclass . add_link ( target_metaclass , rel_id , many = target_many , phrase = source_phrase , conditional = target_conditional ) ass = Association ( rel_id , source_keys , source_link , target_keys , target_link ) source_link . key_map = dict ( zip ( source_keys , target_keys ) ) target_link . key_map = dict ( zip ( target_keys , source_keys ) ) self . associations . append ( ass ) return ass
Define and return an association from one kind of class (the source 
        kind) to some other kind of class (the target kind).
Define and return an association from one kind of class ( the source kind ) to some other kind of class ( the target kind ) .