// ============================================================================ // // Copyright (C) 2006-2016 Talend Inc. - www.talend.com // // This source code is available under agreement available at // %InstallDIR%\features\org.talend.rcp.branding.%PRODUCTNAME%\%PRODUCTNAME%license.txt // // You should have received a copy of the agreement // along with this program; if not, write to Talend SA // 9 rue Pages 92150 Suresnes, France // // ============================================================================ package org.talend.dataprofiler.core.ui.wizard.analysis.connection; import java.util.List; import org.eclipse.emf.common.util.EList; import org.talend.core.model.properties.ConnectionItem; import org.talend.cwm.dependencies.DependenciesHandler; import org.talend.dataprofiler.core.PluginConstant; import org.talend.dataprofiler.core.ui.wizard.analysis.AbstractAnalysisWizard; import org.talend.dataquality.analysis.Analysis; import org.talend.dataquality.domain.Domain; import org.talend.dataquality.helpers.DomainHelper; import org.talend.dataquality.indicators.schema.CatalogIndicator; import org.talend.dataquality.indicators.schema.SchemaFactory; import org.talend.dataquality.indicators.schema.SchemaIndicator; import org.talend.dq.analysis.parameters.AnalysisFilterParameter; import org.talend.dq.indicators.definitions.DefinitionHandler; import org.talend.dq.writer.impl.ElementWriterFactory; import org.talend.utils.sugars.TypedReturnCode; import orgomg.cwm.foundation.softwaredeployment.DataManager; import orgomg.cwm.objectmodel.core.ModelElement; import orgomg.cwm.resource.relational.Schema; /** * The wizard contains a table and table/view filter wizard page. */ public class AnalysisFilterWizard extends AbstractAnalysisWizard { protected AnalysisFilterPage anaFilterPage; public AnalysisFilterWizard(AnalysisFilterParameter parameter) { super(parameter); } @Override public boolean canFinish() { if (this.getContainer().getCurrentPage() != anaFilterPage) { return false; } return super.canFinish(); } @Override public TypedReturnCode<Object> createAndSaveCWMFile(ModelElement cwmElement) { Analysis analysis = (Analysis) cwmElement; // MOD klliu feature 15750 connection property define // MOD qiongli 2011-2-24,bug 17588,add dependency. DataManager connection = analysis.getContext().getConnection(); DependenciesHandler.getInstance().setDependencyOn(analysis, connection); ConnectionItem connectionItem = (ConnectionItem) getParameter().getConnectionRepNode().getObject().getProperty() .getItem(); TypedReturnCode<Object> saveCWMFile = super.createAndSaveCWMFile(analysis); // MOD by hcheng for 7173:Broken dependency between analyses and connection if (saveCWMFile.isOk()) { // ProxyRepositoryViewObject.fetchAllRepositoryViewObjects(Boolean.TRUE, Boolean.TRUE); // MOD yyi 2012-02-08 TDQ-4621:Explicitly set true for updating dependencies. ElementWriterFactory.getInstance().createDataProviderWriter().save(connectionItem, true); } return saveCWMFile; } @Override public ModelElement initCWMResourceBuilder() { Analysis analysis = (Analysis) super.initCWMResourceBuilder(); EList<Domain> dataFilters = analysis.getParameters().getDataFilter(); if ((getParameter().getTableFilter() != null) && (!getParameter().getTableFilter().equals(PluginConstant.EMPTY_STRING))) { DomainHelper.setDataFilterTablePattern(dataFilters, getParameter().getTableFilter()); } if ((getParameter().getViewFilter() != null) && (!getParameter().getViewFilter().equals(PluginConstant.EMPTY_STRING))) { DomainHelper.setDataFilterViewPattern(dataFilters, getParameter().getViewFilter()); } // DependenciesHandler.getInstance().setDependencyOn(analysis, analysis.getContext().getConnection()); return analysis; } protected void addSchemaIndicator(List<Schema> tdSchemas, CatalogIndicator catalogIndicator) { for (Schema schema : tdSchemas) { SchemaIndicator createSchemaIndicator = SchemaFactory.eINSTANCE.createSchemaIndicator(); // MOD xqliu 2009-1-21 feature 4715 DefinitionHandler.getInstance().setDefaultIndicatorDefinition(createSchemaIndicator); createSchemaIndicator.setAnalyzedElement(schema); catalogIndicator.addSchemaIndicator(createSchemaIndicator); } } @Override public AnalysisFilterParameter getParameter() { return (AnalysisFilterParameter) super.getParameter(); } }