// ============================================================================ // // 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; import org.apache.log4j.Logger; import org.eclipse.core.resources.IFolder; import org.talend.dataprofiler.core.CorePlugin; import org.talend.dataprofiler.core.ui.editor.analysis.AnalysisEditor; import org.talend.dataprofiler.core.ui.editor.analysis.AnalysisItemEditorInput; import org.talend.dataprofiler.core.ui.editor.analysis.MatchAnalysisEditor; import org.talend.dataprofiler.core.ui.wizard.AbstractWizard; import org.talend.dataquality.analysis.Analysis; import org.talend.dataquality.analysis.AnalysisType; import org.talend.dq.analysis.AnalysisBuilder; import org.talend.dq.analysis.parameters.AnalysisParameter; import org.talend.dq.analysis.parameters.ConnectionParameter; import org.talend.dq.helper.resourcehelper.AnaResourceFileHelper; import org.talend.dq.helper.resourcehelper.ResourceFileMap; import org.talend.dq.writer.impl.AnalysisWriter; import org.talend.dq.writer.impl.ElementWriterFactory; import org.talend.repository.model.IRepositoryNode; import org.talend.utils.sugars.TypedReturnCode; import orgomg.cwm.objectmodel.core.ModelElement; /** * AbstractAnalysisWizard can creat a empty analysis file. */ public abstract class AbstractAnalysisWizard extends AbstractWizard { static Logger log = Logger.getLogger(AbstractAnalysisWizard.class); protected AnalysisType analysisType; protected AnalysisParameter parameter; private AnalysisBuilder analysisBuilder; public AbstractAnalysisWizard(AnalysisParameter parameter) { this.parameter = parameter; } public ModelElement initCWMResourceBuilder() { analysisBuilder = new AnalysisBuilder(); boolean analysisInitialized = analysisBuilder.initializeAnalysis(parameter.getName(), parameter.getAnalysisType()); if (analysisInitialized) { return analysisBuilder.getAnalysis(); } return null; } public TypedReturnCode<Object> createAndSaveCWMFile(ModelElement cwmElement) { Analysis analysis = (Analysis) cwmElement; IFolder folder = parameter.getFolderProvider().getFolderResource(); AnalysisWriter analysisWriter = ElementWriterFactory.getInstance().createAnalysisWrite(); return analysisWriter.create(analysis, folder); } @Override protected String getEditorName() { return AnalysisEditor.class.getName(); } @Override protected ResourceFileMap getResourceFileMap() { return AnaResourceFileHelper.getInstance(); } @Override public ConnectionParameter getParameter() { return this.parameter; } public AnalysisBuilder getAnalysisBuilder() { return analysisBuilder; } /* * (non-Javadoc) * * @see org.talend.dataprofiler.core.ui.wizard.AbstractWizard#openEditor(org.talend.repository.model.IRepositoryNode) */ @Override public void openEditor(IRepositoryNode repNode) { String editorID = null; AnalysisItemEditorInput analysisEditorInput = new AnalysisItemEditorInput(repNode); IRepositoryNode connectionRepNode = getParameter().getConnectionRepNode(); analysisEditorInput.setConnectionNode(connectionRepNode); // add support for match analysis editor Analysis analysis = (Analysis) analysisEditorInput.getModel(); if (analysis.getParameters() != null && analysis.getParameters().getAnalysisType().equals(AnalysisType.MATCH_ANALYSIS)) { editorID = MatchAnalysisEditor.class.getName(); } else { editorID = AnalysisEditor.class.getName(); } CorePlugin.getDefault().openEditor(analysisEditorInput, editorID); } }