private ModelerWorkspace autoModelSharedDimension( final ModelerWorkspace workspace, final DataProvider dataProvider ) throws MetaStoreException, KettlePluginException, ModelerException { DatabaseMeta dbMeta = ( (ISpoonModelerSource) workspace.getModelSource() ).getDatabaseMeta(); TableModelerSource source = new TableModelerSource( dbMeta, dataProvider.getTableName(), dataProvider.getSchemaName() ); Domain domain = source.generateDomain( new SharedDimensionImportStrategy( dataProvider ) ); ModelerWorkspace model = new ModelerWorkspace( new ModelerWorkspaceHelper( workspace.getWorkspaceHelper().getLocale() ), workspace.getGeoContext() ); model.setModelSource( source ); model.setDomain( domain ); model.getWorkspaceHelper().autoModelFlat( model ); return model; }
public static String getMetadataXML( ModelerWorkspace aModel ) throws ModelerException { aModel.getWorkspaceHelper().populateDomain( aModel ); XmiParser parser = new XmiParser(); return parser.generateXmi( aModel.getDomain() ); }
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(); }
public boolean saveWorkspace( String fileName ) throws ModelerException { workspace.getModel().validateTree(); if ( workspace.isValid() == false ) { showValidationMessages(); return false; } workspace.setFileName( fileName ); workspace.setDirty( false ); workspace.setTemporary( false ); return true; }
/** * Goes back to the source of the metadata and see if anything has changed. Updates the UI accordingly */ @Bindable public void refreshFields() throws ModelerException { workspace.refresh( workspace.getModellingMode() ); }
public static ModelerWorkspace populateModelFromSource( ModelerWorkspace model, IModelerSource source ) throws ModelerException { Domain d = source.generateDomain(); model.setModelSource( source ); model.setModelName( source.getTableName() ); model.setDomain( d ); return model; }
DSWDatasourceServiceImpl datasourceService = new DSWDatasourceServiceImpl(); ModelerWorkspace model = new ModelerWorkspace( new GwtModelerWorkspaceHelper(), datasourceService.getGeoContext() ); model.setModelName( name ); model.setDomain( domain ); String solutionStorage = AgileHelper.getDatasourceSolutionStorage(); model.getWorkspaceHelper().populateDomain( model );
ModelerWorkspace model = new ModelerWorkspace( new GwtModelerWorkspaceHelper(), datasourceService .getGeoContext() ); model.setModelName( name ); model.setDomain( domain ); LogicalModel lModel = model.getLogicalModel( ModelerPerspective.ANALYSIS ); if ( lModel == null ) { lModel = model.getLogicalModel( ModelerPerspective.REPORTING ); metadataDomainRep.storeDomain( model.getDomain(), true );
@Override public void autoModelOlap( ModelerWorkspace workspace, MainModelNode mainModel ) throws ModelerException { mainModel.setName( workspace.getModelName() ); workspace.setModel( mainModel ); DimensionMetaDataCollection dims = workspace.getModel().getDimensions(); dims.clear(); dims.setExpanded( true ); MeasuresCollection measures = workspace.getModel().getMeasures(); measures.setExpanded( false ); measures.clear(); final boolean prevChangeState = workspace.isModelChanging(); workspace.setModelIsChanging( true, !mainModel.getSuppressEvents() ); for ( LogicalTable table : workspace.getLogicalModel( ModelerPerspective.ANALYSIS ).getLogicalTables() ) { table.getLogicalColumns().clear(); List<AvailableTable> tableList = workspace.getAvailableTables().getAsAvailableTablesList(); for ( AvailableTable table : tableList ) { boolean isFact = table.isFactTable(); MeasureMetaData measure = workspace.createMeasureForNode( field ); workspace.getModel().getMeasures().add( measure ); existingMeasures.add( field.getName() ); workspace.createColumnBackedNode( field, ModelerPerspective.ANALYSIS ); workspace.createLevelForParentWithNode( hierarchy, workspace.createColumnBackedNode( field, ModelerPerspective.ANALYSIS ) ); if ( level != null ) {
mainModel.setName( workspace.getModelName() ); workspace.setModel( mainModel ); DimensionMetaDataCollection dims = workspace.getModel().getDimensions(); dims.clear(); dims.setExpanded( true ); MeasuresCollection measures = workspace.getModel().getMeasures(); measures.setExpanded( false ); measures.clear(); final boolean prevChangeState = workspace.isModelChanging(); workspace.setModelIsChanging( true, !mainModel.getSuppressEvents() ); for ( LogicalTable table : workspace.getLogicalModel( ModelerPerspective.ANALYSIS ).getLogicalTables() ) { if ( table.getId().endsWith( BaseModelerWorkspaceHelper.OLAP_SUFFIX ) ) { table.getLogicalColumns().clear(); List<AvailableTable> tableList = workspace.getAvailableTables().getAsAvailableTablesList(); if ( !existingMeasures.contains( field.getName() ) ) { MeasureMetaData measure = workspace.createMeasureForNode( field ); workspace.getModel().getMeasures().add( measure ); existingMeasures.add( field.getName() ); workspace.addDimensionFromNode( workspace.createColumnBackedNode( field, ModelerPerspective.ANALYSIS ) ); workspace.setModelIsChanging( prevChangeState ); workspace.setSelectedNode( workspace.getModel() );
protected void setDomain( Domain d, boolean upConvertDesired ) { this.domain = d; this.setModelIsChanging( true ); this.setRelationalModelIsChanging( true ); this.model.getDimensions().clear(); this.model.getMeasures().clear(); upConvertLegacyModel(); fireTablesChanged(); setModelName( lModel.getName( workspaceHelper.getLocale() ) ); setRelationalModelName( lModel.getName( workspaceHelper.getLocale() ) ); if ( supportsOlap( domain ) ) { this.setModellingMode( ModelerMode.ANALYSIS_AND_REPORTING ); } else { this.setModellingMode( ModelerMode.REPORTING_ONLY ); lModel = getLogicalModel( ModelerPerspective.ANALYSIS ); List<OlapDimension> theDimensions = null; if ( lModel != null ) { lModel = this.getLogicalModel( ModelerPerspective.REPORTING ); int i = 1; for ( Category cat : lModel.getCategories() ) { this.getRelationalModel().getCategories().add( catMeta ); this.setModelIsChanging( false, true );
ModelerWorkspace workspace = new ModelerWorkspace( helper, geoContext ); workspace.setDomain( domain ); LogicalModel logicalModel = workspace.getLogicalModel( ModelerPerspective.REPORTING ); logicalModel.setProperty( "AGILE_BI_GENERATED_SCHEMA", "TRUE" ); logicalModel.setName( new LocalizedString( locale, datasourceName ) ); logicalModel.setDescription( new LocalizedString( locale, "This is the data model for " + datasourceName ) ); workspace.setModelName( datasourceName ); helper.autoModelRelationalFlat( workspace ); LogicalModel olapModel = null; olapModel = workspace.getLogicalModel( ModelerPerspective.ANALYSIS ); if ( olapModel.getLogicalRelationships().size() != logicalModel.getLogicalRelationships().size() ) { ModelerConversionUtil.duplicateRelationshipsForOlap( logicalModel, olapModel ); } else { factTable.getPhysicalTable().setProperty( "FACT_TABLE", true ); workspace.getAvailableTables().setFactTable( factTable.getPhysicalTable() ); workspace.setModellingMode( ModelerMode.ANALYSIS_AND_REPORTING ); } else { workspace.setModellingMode( ModelerMode.REPORTING_ONLY );
public void autoModelRelational( ModelerWorkspace workspace, RelationalModelNode relationalModelNode ) throws ModelerException { relationalModelNode.setName( workspace.getRelationalModelName() ); workspace.setRelationalModel( relationalModelNode ); final boolean prevChangeState = workspace.isModelChanging(); workspace.getRelationalModel().getCategories().clear(); workspace.setRelationalModelIsChanging( true, !relationalModelNode.getSuppressEvents() ); for ( LogicalTable table : workspace.getDomain().getLogicalModels().get( 0 ).getLogicalTables() ) { if ( !table.getId().endsWith( BaseModelerWorkspaceHelper.OLAP_SUFFIX ) ) { table.getLogicalColumns().clear(); List<? extends IPhysicalTable> tables = workspace.getDomain().getPhysicalModels().get( 0 ).getPhysicalTables(); Set<String> tableIds = new HashSet<String>(); List<AvailableTable> tablesList = workspace.getAvailableTables().getAsAvailableTablesList(); for ( AvailableField field : aTable.getAvailableFields() ) { if ( field.getPhysicalColumn().getPhysicalTable().getId().equals( table.getId() ) ) { category.add( workspace.createFieldForParentWithNode( category, field ) ); workspace.setRelationalModelIsChanging( prevChangeState ); workspace.setSelectedRelationalNode( workspace.getRelationalModel() );
modelerWorkspace.setDomain( modelerService.generateCSVDomain( modelInfo ) ); modelerWorkspace.getWorkspaceHelper().autoModelFlat( modelerWorkspace ); modelerWorkspace.getWorkspaceHelper().autoModelRelationalFlat( modelerWorkspace ); modelerWorkspace.setModelName( modelInfo.getDatasourceName() ); modelerWorkspace.getWorkspaceHelper().populateDomain( modelerWorkspace ); Domain workspaceDomain = modelerWorkspace.getDomain(); prepareForSerialization( workspaceDomain ); modelerService.serializeModels( workspaceDomain, modelerWorkspace.getModelName() ); stats.setDomain( modelerWorkspace.getDomain() );
public void populateDomain( ModelerWorkspace model ) throws ModelerException { Domain domain = model.getDomain(); domain.setId( model.getModelName() ); LogicalModel logicalModel = model.getLogicalModel( ModelerPerspective.REPORTING ); if ( model.getModelSource() != null ) { model.getModelSource().serializeIntoDomain( domain ); logicalModel.setName( new LocalizedString( locale, model.getModelName() ) ); logicalModel.setProperty( "AGILE_BI_VERSION", AGILE_BI_VERSION ); if ( model.supportsOlap( domain ) ) { logicalModel = model.getLogicalModel( ModelerPerspective.ANALYSIS ); logicalModel.setId( "MODEL_1" + BaseModelerWorkspaceHelper.OLAP_SUFFIX ); logicalModel .setName( new LocalizedString( locale, model.getModelName() + BaseModelerWorkspaceHelper.OLAP_SUFFIX ) ); logicalModel.setProperty( "AGILE_BI_VERSION", AGILE_BI_VERSION ); MainModelNode mainModelNode = model.getModel(); if ( mainModelNode == null ) { return; if ( dimensions.size() == 0 && model.getModellingMode() == ModelerMode.REPORTING_ONLY ) { return; cube.setName( model.getModelName() ); //$NON-NLS-1$ cube.setOlapDimensionUsages( usages ); for ( MeasureMetaData f : model.getModel().getMeasures() ) {
IModelerSource theSource = ModelerSourceFactory.generateSource( property.toString() ); theSource.initialize( domain ); aModel.setModelSource( theSource ); aModel.setDomain( domain ); aModel.setFileName( fileName ); aModel.resolveConnectionFromDomain(); aModel.getWorkspaceHelper().populateDomain( aModel ); aModel.setDirty( false ); } catch ( Exception e ) { logger.error( "error", e );
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 ); }
enableWaitCursor( true ); try { model.getWorkspaceHelper().populateDomain( model ); } catch ( ModelerException e ) { e.printStackTrace(); LogicalModel lModel = model.getLogicalModel( ModelerPerspective.ANALYSIS ); if ( lModel == null ) { lModel = model.getLogicalModel( ModelerPerspective.REPORTING ); doOlap = false; service.serializeModels( model.getDomain(), model.getModelName(), doOlap, new XulServiceCallback<String>() { public void success( String retVal ) { enableWaitCursor( false );
@Bindable public void showValidationMessagesDialog() { AbstractMetaDataModelNode node; if ( workspace.getCurrentModelerPerspective() == ModelerPerspective.ANALYSIS ) { node = workspace.getSelectedNode(); if ( node == null ) { node = workspace.getModel(); } } else { node = workspace.getSelectedRelationalNode(); if ( node == null ) { node = workspace.getRelationalModel(); } } showValidationMessages( new ArrayList<String>( node.getValidationMessages() ) ); }
public List<DimensionMetaData> buildDimensions( ModelerWorkspace workspace ) { List<DimensionMetaData> geoDims = new ArrayList<DimensionMetaData>(); List<AvailableTable> tableList = workspace.getAvailableTables().getAsAvailableTablesList(); ColumnBackedNode node = workspace.createColumnBackedNode( field, ModelerPerspective.ANALYSIS ); LevelMetaData level = workspace.createLevelForParentWithNode( hier, node ); level.getMemberAnnotations().put( ANNOTATION_DATA_ROLE, role ); level.getMemberAnnotations().put( ANNOTATION_GEO_ROLE, role ); determineLocationField( table, locationRole, latColIndex, lonColIndex, workspace.getWorkspaceHelper() .getLocale() ); for ( DimensionMetaData existingDim : workspace.getModel().getDimensions() ) { for ( HierarchyMetaData existingHier : existingDim ) { for ( LevelMetaData existingLevel : existingHier ) { ColumnBackedNode tmp = workspace.createColumnBackedNode( latField, ModelerPerspective.ANALYSIS ); tmp.getLogicalColumn().setName( new LocalizedString( workspace.getWorkspaceHelper().getLocale(), LATITUDE ) ); MemberPropertyMetaData memberProp = workspace.createMemberPropertyForParentWithNode( existingLevel, tmp ); memberProp.setName( LATITUDE ); existingLevel.add( memberProp ); tmp = workspace.createColumnBackedNode( lonField, ModelerPerspective.ANALYSIS ); tmp.getLogicalColumn().setName( new LocalizedString( workspace.getWorkspaceHelper().getLocale(), LONGITUDE ) ); memberProp = workspace.createMemberPropertyForParentWithNode( existingLevel, tmp ); memberProp.setName( LONGITUDE ); existingLevel.add( memberProp );