@Override public Object clone() { LogicalModel clone = new LogicalModel(); // configure concept properties clone( clone ); // shallow references clone.logicalRelationships = logicalRelationships; clone.setParent( getParent() ); clone.setPhysicalConcept( getPhysicalConcept() ); // actual clones clone.logicalTables = new ArrayList<LogicalTable>(); for ( LogicalTable table : logicalTables ) { clone.addLogicalTable( (LogicalTable) table.clone() ); } clone.categories = new ArrayList<Category>(); for ( Category category : categories ) { clone.addCategory( (Category) category.clone() ); } return clone; }
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 ) ) ); }
logicalModel.addLogicalTable( table );
logicalModel.addLogicalTable( businessTable );
copiedTable.getLogicalColumns().addAll( olapColumns ); olapModel.addLogicalTable( copiedTable );