// ============================================================================ // // 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.dq.analysis; import org.apache.log4j.Logger; import org.eclipse.core.resources.IFile; import org.eclipse.core.resources.IFolder; import org.talend.commons.emf.FactoriesUtil; import org.talend.core.model.metadata.builder.database.DqRepositoryViewService; import org.talend.dataquality.helpers.AnalysisBaseBuilder; import org.talend.dq.writer.impl.AnalysisWriter; import org.talend.dq.writer.impl.ElementWriterFactory; import org.talend.utils.sugars.ReturnCode; /** * @author scorreia * * Creates an Analysis and its attribute from the given informations. Use one AnalysisBuilder per Analysis to create. */ public class AnalysisBuilder extends AnalysisBaseBuilder { private static Logger log = Logger.getLogger(AnalysisBuilder.class); /** * Method "saveAnalysis". This method should be called when the creation of the analysis definition (analysis * context + parameters) is created. It is not safe to use it for saving the analysis after the evaluation of the * analysis result. The domain should be saved before calling this method. * * @param folder the folder where the analysis is saved. * @return true if saved without problem */ public boolean saveAnalysis(IFolder folder) { assert analysis != null; AnalysisWriter writer = ElementWriterFactory.getInstance().createAnalysisWrite(); String filename = DqRepositoryViewService.createFilename(this.analysis.getName(), FactoriesUtil.ANA); IFile file = folder.getFile(filename); ReturnCode saved = writer.create(analysis, folder); if (saved.isOk()) { if (log.isDebugEnabled()) { log.debug("Saved in " + file.getFullPath());//$NON-NLS-1$ } } return saved.isOk(); } }