// ============================================================================
//
// 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.model;
import java.util.Collection;
import java.util.List;
import org.talend.dataprofiler.core.ui.editor.preview.IndicatorUnit;
import org.talend.dataquality.indicators.Indicator;
import org.talend.dq.nodes.indicator.type.IndicatorEnum;
import org.talend.repository.model.IRepositoryNode;
/**
* DOC xqliu class global comment. Detailled comment
*/
public interface ModelElementIndicator {
public boolean contains(IndicatorEnum indicatorEnum);
public boolean containsAny(Collection<IndicatorEnum> indciatorEnums);
public boolean tempContains(IndicatorEnum indicatorEnum);
public boolean specialTempContains(Indicator indicator);
public List<IndicatorEnum> getTempIndicator();
/**
* If the Indicator is a plain indicator, will remove the indicator value from field 'flatIndicatorEnumList' and
* 'indicatorUnitMap', contains the parent and children of indicatorTypeMapping.getType();Else, will remove it from
* specialIndicaortUnitList.
*
* @param indicatorUnit
*/
public void removeIndicatorUnit(IndicatorUnit indicatorUnit);
public boolean hasIndicators();
public Indicator[] getIndicators();
public IndicatorUnit[] getIndicatorUnits();
public void setIndicators(Indicator[] indicators);
public IndicatorUnit addSpecialIndicator(IndicatorEnum indicatorEnum, Indicator indicator);
public IndicatorUnit addTempSpecialIndicator(IndicatorEnum indicatorEnum, Indicator indicator);
public void removeSpecialIndicator(Indicator indicator);
public void removeTempSpecialIndicator(Indicator indicator);
public void addTempIndicatorEnum(IndicatorEnum indicatorEnum);
public void removeTempIndicatorEnum(IndicatorEnum indicatorEnum);
public abstract void copyOldIndicatorEnum();
/**
* Store the tempory indicator to flatIndicatorEnumList.
*/
public abstract void storeTempIndicator();
public abstract Indicator[] getPatternIndicators();
public IRepositoryNode getModelElementRepositoryNode();
public int getJavaType();
public String getElementName();
}