Search in sources :

Example 11 with AllMatchIndicator

use of org.talend.dataquality.indicators.columnset.AllMatchIndicator in project tdq-studio-se by Talend.

the class ModelElementDuplicateHandle method dupAnaWithoutBuiltInPattern.

/**
 * when duplicate an analysis,remove the built-in pattern. or else, the reference pattern will be copied as a built-in
 * pattern.
 *
 * @param oldModelElement
 * @return
 */
private ModelElement dupAnaWithoutBuiltInPattern(ModelElement oldModelElement) {
    ModelElement newModEle = null;
    if (!(oldModelElement instanceof Analysis)) {
        newModEle = (ModelElement) EMFSharedResources.getInstance().copyEObject(oldModelElement);
        return newModEle;
    }
    try {
        Analysis analysis = (Analysis) oldModelElement;
        EList<Indicator> indicators = analysis.getResults().getIndicators();
        List<Indicator> orignalIndicators = new ArrayList<Indicator>();
        orignalIndicators.addAll(indicators);
        Map<Indicator, List<Pattern>> map = new HashMap<Indicator, List<Pattern>>();
        // 2.after copy the analysis without built-in pattern, reset the built for the old analysis.
        for (Indicator indicator : indicators) {
            if (!(indicator instanceof PatternMatchingIndicator)) {
                continue;
            }
            List<Pattern> builtInLs = new ArrayList<Pattern>();
            if (indicator instanceof AllMatchIndicator) {
                EList<RegexpMatchingIndicator> list = ((AllMatchIndicator) indicator).getCompositeRegexMatchingIndicators();
                for (RegexpMatchingIndicator regxIndicator : list) {
                    builtInLs.addAll(regxIndicator.getParameters().getDataValidDomain().getBuiltInPatterns());
                    map.put(regxIndicator, builtInLs);
                    regxIndicator.getParameters().getDataValidDomain().getBuiltInPatterns().clear();
                }
            } else {
                builtInLs.addAll(indicator.getParameters().getDataValidDomain().getBuiltInPatterns());
                map.put(indicator, builtInLs);
                indicator.getParameters().getDataValidDomain().getBuiltInPatterns().clear();
            }
        }
        newModEle = (ModelElement) EMFSharedResources.getInstance().copyEObject(analysis);
        for (Indicator patternInd : map.keySet()) {
            patternInd.getParameters().getDataValidDomain().getBuiltInPatterns().addAll(map.get(patternInd));
        }
        ProxyRepositoryFactory.getInstance().getRepositoryFactoryFromProvider().getResourceManager().saveResource(analysis.eResource());
    } catch (Exception e) {
        LOG.error(e);
    }
    return newModEle;
}
Also used : Pattern(org.talend.dataquality.domain.pattern.Pattern) HashMap(java.util.HashMap) ArrayList(java.util.ArrayList) PatternMatchingIndicator(org.talend.dataquality.indicators.PatternMatchingIndicator) RegexpMatchingIndicator(org.talend.dataquality.indicators.RegexpMatchingIndicator) Indicator(org.talend.dataquality.indicators.Indicator) AllMatchIndicator(org.talend.dataquality.indicators.columnset.AllMatchIndicator) BusinessException(org.talend.commons.exception.BusinessException) ModelElement(orgomg.cwm.objectmodel.core.ModelElement) PatternMatchingIndicator(org.talend.dataquality.indicators.PatternMatchingIndicator) AllMatchIndicator(org.talend.dataquality.indicators.columnset.AllMatchIndicator) Analysis(org.talend.dataquality.analysis.Analysis) ArrayList(java.util.ArrayList) EList(org.eclipse.emf.common.util.EList) List(java.util.List) RegexpMatchingIndicator(org.talend.dataquality.indicators.RegexpMatchingIndicator)

Aggregations

AllMatchIndicator (org.talend.dataquality.indicators.columnset.AllMatchIndicator)11 Indicator (org.talend.dataquality.indicators.Indicator)10 ArrayList (java.util.ArrayList)7 SimpleStatIndicator (org.talend.dataquality.indicators.columnset.SimpleStatIndicator)7 RegexpMatchingIndicator (org.talend.dataquality.indicators.RegexpMatchingIndicator)6 CompositeIndicator (org.talend.dataquality.indicators.CompositeIndicator)5 ModelElement (orgomg.cwm.objectmodel.core.ModelElement)4 ModelElementIndicator (org.talend.dataprofiler.core.model.ModelElementIndicator)3 Pattern (org.talend.dataquality.domain.pattern.Pattern)3 PatternMatchingIndicator (org.talend.dataquality.indicators.PatternMatchingIndicator)3 Analysis (org.talend.dataquality.analysis.Analysis)2 IndicatorParameters (org.talend.dataquality.indicators.IndicatorParameters)2 ColumnSetMultiValueIndicator (org.talend.dataquality.indicators.columnset.ColumnSetMultiValueIndicator)2 IRepositoryNode (org.talend.repository.model.IRepositoryNode)2 HashMap (java.util.HashMap)1 List (java.util.List)1 EList (org.eclipse.emf.common.util.EList)1 EObject (org.eclipse.emf.ecore.EObject)1 BusinessException (org.talend.commons.exception.BusinessException)1 Connection (org.talend.core.model.metadata.builder.connection.Connection)1