public LogicalModel getLogicalModel() { return getLogicalModel( ModelerPerspective.REPORTING ); }
/** * Retrieves the olap cube from the workspace based on the cube name * * @param modelerWorkspace workspace to search for the cube * @param cubeName cube name * @return OlapCube otherwise null */ private OlapCube getOlapCube( final ModelerWorkspace modelerWorkspace, final String cubeName ) { LogicalModel businessModel = modelerWorkspace.getLogicalModel( ModelerPerspective.ANALYSIS ); List<OlapCube> olapCubes = (List<OlapCube>) businessModel.getProperty( OLAP_CUBES_PROPERTY ); OlapCube olapCube = null; for ( int c = 0; c < olapCubes.size(); c++ ) { if ( ( (OlapCube) olapCubes.get( c ) ).getName().equals( cubeName ) ) { olapCube = (OlapCube) olapCubes.get( c ); break; } } return olapCube; }
private void assignFactTable( final ModelerWorkspace workspace ) { List<LogicalTable> logicalTables = workspace.getLogicalModel( ModelerPerspective.ANALYSIS ).getLogicalTables(); logicalTables.get( 0 ).getPhysicalTable().setProperty( "FACT_TABLE", true ); }
public LogicalColumn findLogicalColumn( String id ) { LogicalColumn col = null; for ( LogicalColumn c : getLogicalModel( currentModelerPerspective ).getLogicalTables().get( 0 ) .getLogicalColumns() ) { if ( c.getName( workspaceHelper.getLocale() ).equals( id ) ) { col = c; break; } } return col; }
public static String getMondrianSchemaXml( ModelerWorkspace modelerWorkspace, String locale ) throws Exception { modelerWorkspace.getWorkspaceHelper().populateDomain( modelerWorkspace ); LogicalModel logicalModel = modelerWorkspace.getLogicalModel( ModelerPerspective.ANALYSIS ); if ( logicalModel == null ) { return null; } MondrianModelExporter exporter = new MondrianModelExporter( logicalModel, locale ); return exporter.createMondrianModelXML(); }
private boolean isFactTable( IPhysicalTable table ) { String agileBiVersion = (String) getWorkspace().getLogicalModel( ModelerPerspective.ANALYSIS ).getProperty( "AGILE_BI_VERSION" ); if ( agileBiVersion != null && Float.parseFloat( agileBiVersion ) >= 2.0 ) { // if we're in a multi-table mode check for a fact table if ( getWorkspace().getAvailableTables().size() > 1 ) { Object factProp = table.getProperty( "FACT_TABLE" ); if ( factProp == null || factProp.equals( Boolean.FALSE ) ) { return false; } else { return true; } } } return false; }
public LogicalTable findLogicalTable( IPhysicalTable table, ModelerPerspective perspective ) { LogicalModel logicalModel = this.getLogicalModel( perspective ); if ( logicalModel == null ) { return null; } for ( LogicalTable logicalTable : logicalModel.getLogicalTables() ) { if ( logicalTable.getPhysicalTable().equals( table ) || logicalTable.getPhysicalTable().getId().equals( table.getId() ) || logicalTable.getId().equals( table.getId() ) ) { return logicalTable; // boolean isOlapTable = logicalTable.getId().endsWith(BaseModelerWorkspaceHelper.OLAP_SUFFIX); // if (perspective == ModelerPerspective.ANALYSIS && isOlapTable) { // return logicalTable; // } else if (perspective == ModelerPerspective.REPORTING && !isOlapTable) { // return logicalTable; // } } } return null; }
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 ) ) ); }
protected LogicalColumn locateLogicalColumn( final ModelerWorkspace workspace, final String columnName ) { String locale = workspace.getWorkspaceHelper().getLocale(); LogicalModel logicalModel = workspace.getLogicalModel( ModelerPerspective.ANALYSIS ); logicalModel.getLogicalTables(); for ( LogicalTable logicalTable : logicalModel.getLogicalTables() ) { for ( LogicalColumn logicalColumn : logicalTable.getLogicalColumns() ) { if ( logicalColumn.getName( locale ).equalsIgnoreCase( columnName ) || logicalColumn.getName( locale ).equalsIgnoreCase( beautify( columnName ) ) ) { return logicalColumn; } } } return null; }
@Override public void clearTreeModel() { workspace.setRelationalModelIsChanging( true ); // remove all logical columns from existing logical tables for ( LogicalTable table : workspace.getLogicalModel( ModelerPerspective.REPORTING ).getLogicalTables() ) { table.getLogicalColumns().clear(); } workspace.getRelationalModel().getCategories().clear(); workspace.setRelationalModelIsChanging( false, true ); }
public LogicalColumn findLogicalColumn( IPhysicalColumn column, ModelerPerspective perspective ) { LogicalColumn col = null; IPhysicalTable physicalTable = column.getPhysicalTable(); LogicalModel logicalModel = this.getLogicalModel( perspective ); if ( logicalModel == null ) { return col; } for ( LogicalTable table : logicalModel.getLogicalTables() ) { if ( table.getPhysicalTable().getId().equals( physicalTable.getId() ) ) { if ( ( perspective == ModelerPerspective.ANALYSIS && table.getId().endsWith( BaseModelerWorkspaceHelper.OLAP_SUFFIX ) ) || ( perspective == ModelerPerspective.REPORTING && !table.getId().endsWith( BaseModelerWorkspaceHelper.OLAP_SUFFIX ) ) ) { for ( LogicalColumn lCol : table.getLogicalColumns() ) { if ( lCol.getPhysicalColumn().getId().equals( column.getId() ) ) { return lCol; } } } } } return col; }
public Map<String, InputStream> doGetDSWFilesAsDownload( String dswId ) throws PentahoAccessControlException { if ( !canManageACL() ) { throw new PentahoAccessControlException(); } // First get the metadata files; Map<String, InputStream> fileData = getMetadataFiles( dswId ); // Then get the corresponding mondrian files Domain domain = metadataDomainRepository.getDomain( dswId ); ModelerWorkspace model = createModelerWorkspace(); model.setDomain( domain ); LogicalModel logicalModel = model.getLogicalModel( ModelerPerspective.ANALYSIS ); if ( logicalModel == null ) { logicalModel = model.getLogicalModel( ModelerPerspective.REPORTING ); } if ( logicalModel.getProperty( MONDRIAN_CATALOG_REF ) != null ) { MondrianCatalogRepositoryHelper helper = createMondrianCatalogRepositoryHelper(); String catalogRef = (String) logicalModel.getProperty( MONDRIAN_CATALOG_REF ); fileData.putAll( helper.getModrianSchemaFiles( catalogRef ) ); parseMondrianSchemaNameWrapper( dswId, fileData ); } return fileData; }
public void removeDSW( String dswId ) throws PentahoAccessControlException { try { ensureDataAccessPermissionCheck(); } catch ( ConnectionServiceException e ) { throw new PentahoAccessControlException(); } Domain domain = metadataDomainRepository.getDomain( dswId ); ModelerWorkspace model = createModelerWorkspace(); model.setDomain( domain ); LogicalModel logicalModel = model.getLogicalModel( ModelerPerspective.ANALYSIS ); if ( logicalModel == null ) { logicalModel = model.getLogicalModel( ModelerPerspective.REPORTING ); } if ( logicalModel.getProperty( MONDRIAN_CATALOG_REF ) != null ) { String catalogRef = (String) logicalModel.getProperty( MONDRIAN_CATALOG_REF ); try { mondrianCatalogService.removeCatalog( catalogRef, getSession() ); } catch ( MondrianCatalogServiceException e ) { logger.warn( "Failed to remove mondrian catalog", e ); } } try { dswService.deleteLogicalModel( domain.getId(), logicalModel.getId() ); } catch ( DatasourceServiceException ex ) { logger.warn( "Failed to remove logical model", ex ); } metadataDomainRepository.removeDomain( dswId ); }
public void showDialog( Domain domain ) { enableWaitCursor( true ); model.setDomain( domain ); if ( model.getLogicalModel( ModelerPerspective.ANALYSIS ) != null ) { controller.setModelerPerspective( ModelerPerspective.ANALYSIS ); } else { controller.setModelerPerspective( ModelerPerspective.REPORTING ); } controller.resetPropertyForm(); showDialog(); enableWaitCursor( false ); }
/** * CalculatedMembers are not yet supported in the Metadata model * * @param workspace * @return * @throws org.pentaho.agilebi.modeler.ModelerException */ @SuppressWarnings( "unchecked" ) @Override public boolean apply( ModelerWorkspace workspace, IMetaStore metaStore ) throws ModelerException { workspace.getWorkspaceHelper().populateDomain( workspace ); List<OlapCube> cubes = (List<OlapCube>) workspace.getLogicalModel( ModelerPerspective.ANALYSIS ).getProperty( "olap_cubes" ); OlapCube olapCube = cubes.get( 0 ); OlapCalculatedMember calcMember = new OlapCalculatedMember( getName(), getDimension(), getFormula(), getFormatString(), isCalculateSubtotals(), isHidden() ); olapCube.getOlapCalculatedMembers().add( calcMember ); return true; }
(String) getWorkspace().getLogicalModel( ModelerPerspective.ANALYSIS ).getProperty( "AGILE_BI_VERSION" );
public void success( Domain retVal ) { model.setDomain( retVal ); if ( model.getLogicalModel( modelerPerspective ) != null ) { controller.setModelerPerspective( modelerPerspective ); } else { controller.setModelerPerspective( ModelerPerspective.REPORTING ); } controller.resetPropertyForm(); // disable edit button if required model not present (imported dsw) XulComponent editIcon = container.getDocumentRoot().getElementById( EDIT_TOOLBAR_BUTTON_ID ); boolean disabled = model.getDomain().getLogicalModels().get( 0 ).getProperty( "datasourceModel" ) == null; editIcon.setDisabled( disabled ); enableWaitCursor( false ); showDialog(); }
LogicalModel lModel = model.getLogicalModel( ModelerPerspective.ANALYSIS ); if ( lModel == null ) { lModel = model.getLogicalModel( ModelerPerspective.REPORTING );
workspace.setModelName( analysisDomainId ); workspace.setDomain( domain ); LogicalModel olapModel = workspace.getLogicalModel( ModelerPerspective.ANALYSIS ); if ( olapModel == null ) { throw new IllegalArgumentException( "No analysis model in xmi." );
@Override public boolean apply( final ModelerWorkspace workspace, final IMetaStore metaStore ) throws ModelerException { List<LogicalTable> logicalTables = workspace.getLogicalModel( ModelerPerspective.ANALYSIS ).getLogicalTables(); for ( LogicalTable logicalTable : logicalTables ) { List<LogicalColumn> logicalColumns = logicalTable.getLogicalColumns();