public Relationship addRelationship()

in rdb/src/main/java/org/apache/tuscany/das/rdb/config/wrapper/MappingWrapper.java [177:229]


    public Relationship addRelationship(String parentName, String childName, String relationshipName) {

    	//JIRA-952
        QualifiedColumn parent = null;
        QualifiedColumn child = null;

        if(this.config.isDatabaseSchemaNameSupported()){
        	parent = new QualifiedColumn(parentName, true);
        	child = new QualifiedColumn(childName, true);
        }
        else{
        	parent = new QualifiedColumn(parentName);
        	child = new QualifiedColumn(childName);        	
        }
        
        Relationship r = FACTORY.createRelationship();
        //JIRA-952
        if(this.config.isDatabaseSchemaNameSupported()){        	
        	if(relationshipName == null)
        		r.setName(child.getSchemaName()+"."+child.getTableName());
        	else
        		r.setName(relationshipName);
        	
            r.setPrimaryKeyTable(parent.getSchemaName()+"."+parent.getTableName());
            r.setForeignKeyTable(child.getSchemaName()+"."+child.getTableName());        	
        }
        else{
        	if(relationshipName == null)
        		r.setName(child.getTableName());
        	else
        		r.setName(relationshipName);
        	
	        r.setPrimaryKeyTable(parent.getTableName());
	        r.setForeignKeyTable(child.getTableName());
        }

        if (this.logger.isDebugEnabled()) {
            this.logger.debug("Created relationship from " + r.getPrimaryKeyTable() 
                    + " to " + r.getForeignKeyTable() + " named " + r.getName());
        }

        KeyPair pair = FACTORY.createKeyPair();
        pair.setPrimaryKeyColumn(parent.getColumnName());
        pair.setForeignKeyColumn(child.getColumnName());

        r.getKeyPair().add(pair);
        r.setMany(true);

        config.getRelationship().add(r);

        return r;

    }