public RowLevelSecurity getRowLevelSecurity() { return (RowLevelSecurity) getProperty( ROW_LEVEL_SECURITY ); }
public boolean supportsOlap( Domain d ) { if ( d.getLogicalModels().size() < 2 ) { return false; } else { LogicalModel lModel = d.getLogicalModels().get( 1 ); return "true".equals( lModel.getProperty( "DUAL_MODELING_SCHEMA" ) ) || lModel.getProperty( "MondrianCatalogRef" ) != null; } }
private String getSchemaName() { String name = businessModel.getName( locale ); if ( businessModel.getProperty( "AGILE_BI_GENERATED_SCHEMA" ) != null ) { // clean up the _OLAP suffix on the name name = name.replace( "_OLAP", "" ); } return name; }
public static boolean isMetadataDatasource( Domain domain ) { if ( domain == null ) { return false; } List<LogicalModel> logicalModelList = domain.getLogicalModels(); if ( logicalModelList != null && logicalModelList.size() >= 1 ) { for ( LogicalModel logicalModel : logicalModelList ) { // keep this check for backwards compatibility for now Object property = logicalModel.getProperty( "AGILE_BI_GENERATED_SCHEMA" ); //$NON-NLS-1$ if ( property != null ) { return false; } // moving forward any non metadata generated datasource should have this property property = logicalModel.getProperty( "WIZARD_GENERATED_SCHEMA" ); //$NON-NLS-1$ if ( property != null ) { return false; } } return true; } else { return true; } }
/** * 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; }
@Override public void restoreSavedDatasource( Domain previousDomain, final XulServiceCallback<Void> callback ) { String serializedDatasource = (String) previousDomain.getLogicalModels().get( 0 ).getProperty( "datasourceModel" ); datasourceService.deSerializeModelState( serializedDatasource, new XulServiceCallback<DatasourceDTO>() { public void success( DatasourceDTO datasourceDTO ) { DatasourceDTO.populateModel( datasourceDTO, datasourceModel ); datasourceModel.getGuiStateModel().setDirty( false ); wizardModel.setEditing( true ); callback.success( null ); } public void error( String s, Throwable throwable ) { MessageHandler.getInstance().showErrorDialog( MessageHandler.getString( "ERROR" ), MessageHandler.getString( "DatasourceEditor.ERROR_0002_UNABLE_TO_SHOW_DIALOG", throwable.getLocalizedMessage() ) ); callback.error( s, throwable ); } } ); }
@Override public void restoreSavedDatasource( Domain previousDomain, final XulServiceCallback<Void> callback ) { String serializedDatasource = (String) previousDomain.getLogicalModels().get( 0 ).getProperty( "datasourceModel" ); datasourceService.deSerializeModelState( serializedDatasource, new XulServiceCallback<DatasourceDTO>() { public void success( DatasourceDTO datasourceDTO ) { DatasourceDTO.populateModel( datasourceDTO, datasourceModel ); datasourceModel.getGuiStateModel().setDirty( false ); // initialize connections if ( datasourceModel.getGuiStateModel().getConnections() == null || datasourceModel.getGuiStateModel().getConnections().size() <= 0 ) { queryStep.reloadConnections(); } wizardModel.setEditing( true ); callback.success( null ); } public void error( String s, Throwable throwable ) { MessageHandler.getInstance().showErrorDialog( MessageHandler.getString( "ERROR" ), MessageHandler.getString( "DatasourceEditor.ERROR_0002_UNABLE_TO_SHOW_DIALOG", throwable.getLocalizedMessage() ) ); callback.error( s, throwable ); } } ); }
private void setSchemaName( String catalogName ) { String newName = catalogName; if ( businessModel.getProperty( "AGILE_BI_GENERATED_SCHEMA" ) != null ) { newName = catalogName.concat( "_OLAP" ); } if ( businessModel.getName() == null ) { businessModel.setId( newName ); } else { businessModel.getName().setString( locale, newName ); } }
@Override public void restoreSavedDatasource( final Domain previousDomain, final XulServiceCallback<Void> callback ) { tablesSelectionStep.setDomain( previousDomain ); String serializedDatasource = (String) previousDomain.getLogicalModels().get( 0 ).getProperty( "datasourceModel" ); joinSelectionServiceGwtImpl.deSerializeModelState( serializedDatasource, new XulServiceCallback<MultiTableDatasourceDTO>() { public void success( final MultiTableDatasourceDTO datasourceDTO ) { tablesSelectionStep.setDatasourceDTO( datasourceDTO ); joinGuiModel.setDoOlap( datasourceDTO.isDoOlap() ); wizardModel.setDatasourceName( datasourceDTO.getDatasourceName() ); MultiTableDatasource.this.connectionSelectionStep.selectConnectionByName( datasourceDTO .getSelectedConnection().getName() ); callback.success( null ); } public void error( String s, Throwable throwable ) { MessageHandler.getInstance().showErrorDialog( MessageHandler.getString( "ERROR" ), MessageHandler.getString( "DatasourceEditor.ERROR_0002_UNABLE_TO_SHOW_DIALOG", throwable.getLocalizedMessage() ) ); callback.error( s, throwable ); } } ); }
public List<String> getDSWDatasourceIds() { List<String> datasourceList = new ArrayList<String>(); try { nextModel: for ( LogicalModelSummary summary : dswService.getLogicalModels( null ) ) { Domain domain = modelerService.loadDomain( summary.getDomainId() ); List<LogicalModel> logicalModelList = domain.getLogicalModels(); if ( logicalModelList != null && logicalModelList.size() >= 1 ) { for ( LogicalModel logicalModel : logicalModelList ) { Object property = logicalModel.getProperty( "AGILE_BI_GENERATED_SCHEMA" ); //$NON-NLS-1$ if ( property != null ) { datasourceList.add( summary.getDomainId() ); continue nextModel; } } } } } catch ( Throwable e ) { return null; } return datasourceList; }
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; }
String sysTmpDir = PentahoSystem.getApplicationContext().getSolutionPath( TMP_FILE_PATH ); LogicalModel logicalModel = domain.getLogicalModels().get( 0 ); String modelState = (String) logicalModel.getProperty( "datasourceModel" ); //$NON-NLS-1$
String vis = (String) model.getProperty( "visible" ); if ( vis != null ) { String[] visibleContexts = vis.split( "," );
Object agileBiProp = logical.getProperty( "AGILE_BI_GENERATED_SCHEMA" ); if ( agileBiProp == null || "FALSE".equals( agileBiProp ) ) { throw new IncompatibleModelerException(); Object property = logical.getProperty( "source_type" ); //$NON-NLS-1$ if ( property != null ) { IModelerSource theSource = ModelerSourceFactory.generateSource( property.toString() );
lModel = model.getLogicalModel( ModelerPerspective.REPORTING ); if ( lModel.getProperty( "MondrianCatalogRef" ) == null && ( lModel.getProperty( "DUAL_MODELING_SCHEMA" ) == null || "false" .equals( lModel.getProperty( "DUAL_MODELING_SCHEMA" ) ) ) ) { doOlap = false;
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 ); }
/** * 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; }
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(); }
String vis = (String) model.getProperty( "visible" ); if ( vis != null ) { String[] visibleContexts = vis.split( "," );