private DataProvider locateDataProvider( final List<DataProvider> dataProviders, final ModelerWorkspace workspace, final IMetaStore metaStore ) throws MetaStoreException, KettlePluginException, ModelerException { ModelAnnotationManager manager = new ModelAnnotationManager( true ); DatabaseMeta factDbMeta = ( (ISpoonModelerSource) workspace.getModelSource() ).getDatabaseMeta(); for ( DataProvider dataProvider : dataProviders ) { DatabaseMeta sharedDbMeta = manager.loadDatabaseMeta( dataProvider.getDatabaseMetaNameRef(), metaStore ); if ( sharedDbMeta != null && dbMetaEquals( factDbMeta, sharedDbMeta ) ) { return dataProvider; } } return null; }
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; }