private Table addNavigationAsTable(MetadataFactory mf, XMLMetadata metadata, Table fromTable,
CsdlNavigationProperty property) throws TranslatorException {
String name = join(fromTable.getName(), NAME_SEPARATOR, property.getName());
Table toTable = addTable(mf, name, property.getType(),
property.isCollection()?ODataType.NAVIGATION_COLLECTION:ODataType.NAVIGATION,
metadata);
toTable.setNameInSource(property.getName());
KeyRecord pk = fromTable.getPrimaryKey();
List<String> columnNames = new ArrayList<String>();
for (Column c : pk.getColumns()) {
String columnName = join(fromTable.getName(), NAME_SEPARATOR, c.getName());
Column column = mf.addColumn(columnName, c.getRuntimeType(), toTable);
column.setProperty(PSEUDO, String.valueOf(Boolean.TRUE));
columnNames.add(columnName);
}
mf.addForeignKey("FK0", columnNames, getColumnNames(pk.getColumns()), fromTable.getFullName(), toTable);
return toTable;
}