private void moveDimensionToModel(
final ModelerWorkspace dimensionWorkspace, final ModelerWorkspace factWorkspace,
final String factKey, final String dimKey ) throws ModelerException {
DimensionMetaData dimension = getLastDimension( dimensionWorkspace );
dimension.setName( getName() );
removeExistingDimension( factWorkspace );
factWorkspace.addDimension( dimension );
LogicalTable dimTable =
dimensionWorkspace.getLogicalModel( ModelerPerspective.ANALYSIS ).getLogicalTables().get( 0 );
LogicalTable factTable =
factWorkspace.getLogicalModel( ModelerPerspective.ANALYSIS ).getLogicalTables().get( 0 );
LogicalModel logicalModel = factWorkspace.getLogicalModel( ModelerPerspective.ANALYSIS );
logicalModel.addLogicalTable( dimTable );
@SuppressWarnings( "unchecked" ) List<SqlPhysicalTable> physicalTables =
(List<SqlPhysicalTable>) factWorkspace.getDomain().getPhysicalModels().get( 0 ).getPhysicalTables();
physicalTables.add( (SqlPhysicalTable) dimTable.getPhysicalTable() );
logicalModel.addLogicalRelationship(
new LogicalRelationship(
logicalModel, factTable, dimTable,
locateLogicalColumn( factWorkspace, factKey ), locateLogicalColumn( dimensionWorkspace, dimKey ) ) );
}