public Object get()

in rdb/src/main/java/org/apache/tuscany/das/rdb/impl/DatabaseObject.java [101:148]


    public Object get(String parameter) {
        if (isPartOfPrimaryKey(parameter)) {
            return dataObject.get(parameter);
        }

        Relationship r = (Relationship) keyMappings.get(parameter);
        if (r == null) {
            return dataObject.get(parameter);
        }

        //JIRA-952
        Table tbl = this.mappingWrapper.getTable(r.getPrimaryKeyTable());
        Property parentRef = null;
        if(tbl == null){
        	//this is case when config file is not present and 
        	//ConfigHelper helper = new ConfigHelper(); is used
        	parentRef = getParentReference(r.getPrimaryKeyTable());	
        }
        else{
        	//other cases, its better to use typeName as r.getPrimaryKeyTable()
        	//gives tableName and tableName and typeName can be different
        	//and SDO looks for typeName and not tableName.
        	parentRef = getParentReference((new TableWrapper(tbl)).getTypeName());
        }
        
        DataObject parent = dataObject.getDataObject(parentRef);
        
        if (parent == null) {
            return null;
        }
        String parentKey = getParentKey(r, parameter);//parentKey is db column name
        
        String parentTableName = null;
        //as parentKey is qualified column name and not SDO property name, do conversion, when possible, thru <Config><Table>
        tbl = mappingWrapper.getTableByTypeName(parent.getType().getName());        
        if(tbl != null) {
	        if(mappingWrapper.getConfig().isDatabaseSchemaNameSupported()) {
	        	parentTableName = tbl.getSchemaName()+"."+tbl.getTableName();
	        } else {
	        	parentTableName = tbl.getTableName();
	        }
	        String parentKeyProp = mappingWrapper.getColumnPropertyName(parentTableName, parentKey);
	        
	        return parent.get(parentKeyProp);	        
        } else {
        	return parent.get(parentKey);
        }        
    }