@Override public Object clone() { LogicalTable clone = new LogicalTable(); // shallow copy clone( clone ); clone.setParent( getParent() ); clone.setPhysicalConcept( getPhysicalConcept() ); // deep copy clone.setLogicalColumns( new ArrayList<LogicalColumn>() ); for ( LogicalColumn col : logicalColumns ) { clone.addLogicalColumn( col ); } return clone; } }
protected void populateCategories( ModelerWorkspace workspace ) { RelationalModelNode model = workspace.getRelationalModel(); LogicalModel logicalModel = workspace.getDomain().getLogicalModels().get( 0 ); logicalModel.getCategories().clear(); for ( CategoryMetaData catMeta : model.getCategories() ) { Category cat = new Category(); cat.setName( new LocalizedString( this.getLocale(), catMeta.getName() ) ); cat.setId( catMeta.getName() ); for ( FieldMetaData fieldMeta : catMeta ) { LogicalColumn lCol = fieldMeta.getLogicalColumn(); LogicalTable lTable = lCol.getLogicalTable(); if ( !lTable.getLogicalColumns().contains( lCol ) ) { lTable.addLogicalColumn( lCol ); } lCol.setName( new LocalizedString( locale, fieldMeta.getName() ) ); AggregationType type = fieldMeta.getDefaultAggregation(); lCol.setAggregationType( type ); setLogicalColumnFormat( fieldMeta.getFormat(), lCol ); Set<AggregationType> possibleAggs = new HashSet<AggregationType>(); possibleAggs.add( fieldMeta.getDefaultAggregation() ); possibleAggs.addAll( fieldMeta.getSelectedAggregations() ); lCol.setAggregationList( Arrays.<AggregationType>asList( possibleAggs .toArray( new AggregationType[possibleAggs.size()] ) ) ); cat.addLogicalColumn( lCol ); } logicalModel.addCategory( cat ); } }
if ( parent != null ) { col.setLogicalTable( parent ); parent.addLogicalColumn( col ); for ( IPhysicalColumn phycol : parent.getPhysicalTable().getPhysicalColumns() ) { if ( phycol.getId().equals( pcol ) ) {
private LogicalTable createBusinessTable( SqlPhysicalTable physicalTable, String locale ) { // Create a business table with a new ID and localized name // LogicalTable businessTable = new LogicalTable( null, physicalTable ); // Try to set the name of the business table to something nice (beautify) // String tableName = PhysicalTableImporter.beautifyName( physicalTable.getTargetTable() ); businessTable.setName( new LocalizedString( locale, tableName ) ); businessTable.setId( Util.proposeSqlBasedLogicalTableId( locale, businessTable, physicalTable ) ); // Add columns to this by copying the physical columns to the business // columns... // for ( IPhysicalColumn physicalColumn : physicalTable.getPhysicalColumns() ) { LogicalColumn businessColumn = new LogicalColumn(); businessColumn.setPhysicalColumn( physicalColumn ); businessColumn.setLogicalTable( businessTable ); // We're done, add the business column. // // Propose a new ID businessColumn.setId( Util.proposeSqlBasedLogicalColumnId( locale, businessTable, (SqlPhysicalColumn) physicalColumn ) ); businessTable.addLogicalColumn( businessColumn ); } return businessTable; }
olapCloneLTable.addLogicalColumn( lCol ); lTable.addLogicalColumn( lCol );
logicalColumn.setLogicalTable( logicalTable ); logicalTable.addLogicalColumn( logicalColumn ); mainCategory.addLogicalColumn( logicalColumn );
table.addLogicalColumn( col );
logicalColumn.setLogicalTable( logicalTable ); logicalTable.addLogicalColumn( logicalColumn );
lCol.setId( colId ); lTab.addLogicalColumn( lCol );