// ============================================================================
//
// 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;
import java.util.Date;
import org.eclipse.emf.ecore.EObject;
import org.eclipse.emf.ecore.resource.Resource;
import org.eclipse.emf.ecore.util.EcoreUtil;
import org.eclipse.emf.ecore.xmi.XMLResource;
import org.eclipse.emf.ecore.xmi.impl.XMLResourceImpl;
import org.talend.core.model.metadata.builder.connection.ConnectionFactory;
import org.talend.core.model.metadata.builder.connection.MetadataColumn;
import org.talend.dataquality.analysis.Analysis;
import org.talend.dataquality.analysis.AnalysisContext;
import org.talend.dataquality.analysis.AnalysisFactory;
import org.talend.dataquality.analysis.AnalysisParameters;
import org.talend.dataquality.analysis.AnalysisResult;
import org.talend.dataquality.analysis.AnalysisType;
import org.talend.dataquality.analysis.ExecutionInformations;
import org.talend.dataquality.helpers.MetadataHelper;
import org.talend.dataquality.indicators.Indicator;
/**
* DOC msjian class global comment. Detailled comment
*/
public class ResourceUtils {
public static void setUUID(EObject parent, EObject eobject) {
if (eobject.eResource() == null) {
XMLResource xmlResource = parent != null && parent.eResource() != null ? (XMLResource) parent.eResource()
: new XMLResourceImpl();
xmlResource.getContents().add(eobject);
}
Resource res = eobject.eResource();
if (res instanceof XMLResource) {
((XMLResource) res).setID(eobject, EcoreUtil.generateUUID());
}
}
public static MetadataColumn createMetadataColumn(String columnName) {
MetadataColumn creatMetadataColumn = ConnectionFactory.eINSTANCE.createMetadataColumn();
setUUID(null, creatMetadataColumn);
// creatMetadataColumn.setId(ProxyRepositoryFactory.getInstance().getNextId());
creatMetadataColumn.setName(columnName);
creatMetadataColumn.setLabel(columnName);
return creatMetadataColumn;
}
public static Analysis createAnalysis(Indicator indicator) {
AnalysisParameters createAnalysisParameters = AnalysisFactory.eINSTANCE.createAnalysisParameters();
setUUID(null, createAnalysisParameters);
createAnalysisParameters.setAnalysisType(AnalysisType.MULTIPLE_COLUMN);
Analysis createAnalysis = AnalysisFactory.eINSTANCE.createAnalysis();
setUUID(null, createAnalysis);
AnalysisContext createAnalysisContext = AnalysisFactory.eINSTANCE.createAnalysisContext();
setUUID(null, createAnalysisContext);
MetadataColumn createMetadataColumn = createMetadataColumn("columnName"); //$NON-NLS-1$
createAnalysisContext.getAnalysedElements().add(createMetadataColumn);
createAnalysis.setContext(createAnalysisContext);
AnalysisResult createAnalysisResult = AnalysisFactory.eINSTANCE.createAnalysisResult();
setUUID(null, createAnalysisResult);
ExecutionInformations createExecutionInformations = AnalysisFactory.eINSTANCE.createExecutionInformations();
setUUID(null, createExecutionInformations);
createAnalysisResult.setResultMetadata(createExecutionInformations);
createAnalysisResult.getIndicators().add(indicator);
indicator.setAnalyzedElement(createMetadataColumn);
createAnalysis.setResults(createAnalysisResult);
createAnalysis.setParameters(createAnalysisParameters);
createAnalysis.setName("anaName"); //$NON-NLS-1$
MetadataHelper.setAuthor(createAnalysis, "shenze"); //$NON-NLS-1$
createAnalysis.setCreationDate(new Date(System.currentTimeMillis()));
setUUID(null, indicator);
return createAnalysis;
}
}