// ============================================================================ // // 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.talend.core.model.metadata.builder.connection.Connection; import org.talend.core.model.properties.ConnectionItem; import org.talend.cwm.helper.CatalogHelper; import org.talend.cwm.helper.ConnectionHelper; import org.talend.dataprofiler.core.ui.wizard.analysis.AnalysisMetadataWizardPage; import org.talend.dataquality.analysis.Analysis; import org.talend.dataquality.indicators.schema.CatalogIndicator; import org.talend.dataquality.indicators.schema.ConnectionIndicator; import org.talend.dataquality.indicators.schema.SchemaFactory; import org.talend.dq.analysis.parameters.AnalysisFilterParameter; import org.talend.dq.indicators.definitions.DefinitionHandler; import org.talend.repository.model.IRepositoryNode; import orgomg.cwm.objectmodel.core.ModelElement; import orgomg.cwm.resource.relational.Catalog; import orgomg.cwm.resource.relational.Schema; /** * @author zqin */ public class ConnectionAnalysisWizard extends AnalysisFilterWizard { protected ConnAnalysisDPSelectionPage dpSelectionPage; public ConnectionAnalysisWizard(AnalysisFilterParameter parameter) { super(parameter); } /* * (non-Javadoc) * * @see org.eclipse.jface.wizard.Wizard#addPages() */ @Override public void addPages() { addPage(new AnalysisMetadataWizardPage()); if (getParameter().getConnectionRepNode() == null) { dpSelectionPage = new ConnAnalysisDPSelectionPage(); addPage(dpSelectionPage); } anaFilterPage = new ConnAnalysisFilterPage(); addPage(anaFilterPage); } @Override public ModelElement initCWMResourceBuilder() { Analysis analysis = (Analysis) super.initCWMResourceBuilder(); if (getAnalysisBuilder() != null) { IRepositoryNode connectionRepNode = getParameter().getConnectionRepNode(); ConnectionItem item = (ConnectionItem) connectionRepNode.getObject().getProperty().getItem(); Connection tdProvider = item.getConnection(); getAnalysisBuilder().setAnalysisConnection(tdProvider); ConnectionIndicator indicator = SchemaFactory.eINSTANCE.createConnectionIndicator(); // MOD xqliu 2009-1-21 feature 4715 DefinitionHandler.getInstance().setDefaultIndicatorDefinition(indicator); indicator.setAnalyzedElement(tdProvider); List<Schema> tdSchemas = ConnectionHelper.getSchema(tdProvider); if (tdSchemas.size() != 0) { addSchemaIndicator(tdSchemas, indicator); } List<Catalog> tdCatalogs = ConnectionHelper.getCatalogs(tdProvider); for (Catalog tdCatalog : tdCatalogs) { CatalogIndicator createCatalogIndicator = SchemaFactory.eINSTANCE.createCatalogIndicator(); // MOD xqliu 2009-1-21 feature 4715 DefinitionHandler.getInstance().setDefaultIndicatorDefinition(createCatalogIndicator); createCatalogIndicator.setAnalyzedElement(tdCatalog); // MOD xqliu 2009-11-30 bug 9114 indicator.addCatalogIndicator(createCatalogIndicator); // ~ addSchemaIndicator(CatalogHelper.getSchemas(tdCatalog), indicator); } getAnalysisBuilder().addElementToAnalyze(tdProvider, indicator); } return analysis; } // @Override // public ModelElement initCWMResourceBuilder() { // // Analysis analysis = (Analysis) super.initCWMResourceBuilder(); // if (getAnalysisBuilder() != null) { // Connection tdProvider = getParameter().getTdDataProvider(); // getAnalysisBuilder().setAnalysisConnection(tdProvider); // // ConnectionIndicator indicator = SchemaFactory.eINSTANCE.createConnectionIndicator(); // // MOD xqliu 2009-1-21 feature 4715 // DefinitionHandler.getInstance().setDefaultIndicatorDefinition(indicator); // indicator.setAnalyzedElement(tdProvider); // List<Schema> tdSchemas = ConnectionHelper.getSchema(tdProvider); // if (tdSchemas.size() != 0) { // addSchemaIndicator(tdSchemas, indicator); // } // List<Catalog> tdCatalogs = ConnectionHelper.getCatalogs(tdProvider); // for (Catalog tdCatalog : tdCatalogs) { // CatalogIndicator createCatalogIndicator = SchemaFactory.eINSTANCE.createCatalogIndicator(); // // MOD xqliu 2009-1-21 feature 4715 // DefinitionHandler.getInstance().setDefaultIndicatorDefinition(createCatalogIndicator); // createCatalogIndicator.setAnalyzedElement(tdCatalog); // // MOD xqliu 2009-11-30 bug 9114 // indicator.addCatalogIndicator(createCatalogIndicator); // // ~ // addSchemaIndicator(CatalogHelper.getSchemas(tdCatalog), indicator); // } // getAnalysisBuilder().addElementToAnalyze(tdProvider, indicator); // } // return analysis; // } }