// ============================================================================
//
// 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.dataquality.helpers;
import org.eclipse.emf.common.util.EList;
import org.talend.cwm.helper.ResourceHelper;
import org.talend.dataquality.indicators.Indicator;
import org.talend.dataquality.indicators.definition.IndicatorCategory;
import org.talend.dataquality.indicators.definition.IndicatorDefinition;
/**
* DOC xqliu class global comment. Detailled comment
*/
public final class IndicatorCategoryHelper {
private IndicatorCategoryHelper() {
}
public static final String USER_DEFINED_COUNT_CATEGORY = "_b5F7QHqTEd67hM2eKD3QgQ";
public static final String USER_DEFINED_FREQUENCY_CATEGORY = "_Frd2gHsXEd63r-VLO3_0OQ";
public static final String USER_DEFINED_MATCH_CATEGORY = "_Ba7OYXsXEd63r-VLO3_0OQ";
public static final String USER_DEFINED_REAL_VALUE_CATEGORY = "_wxkncJ6tEd6t2KtWPIcDmg";
public static final String USER_DEFINED_COMPARISON_CATEGORY = "_yQJQ0HsXEd63r-VLO3_0OQ";
public static final String USER_DEFINED_NOMINAL_CORRELATION_CATEGORY = "_1mapEHsXEd63r-VLO3_0OQ";
public static final String USER_DEFINED_INTERVAL_CORRELATION_CATEGORY = "_6giZsHsXEd63r-VLO3_0OQ";
public static final String USER_DEFINED_TIME_CORRELATION_CATEGORY = "_-fpTkHsXEd63r-VLO3_0OQ";
public static final String SYSTEM_CORRELATION = "_-DfJgLrcEd2PGrJOyhNk-w";
public static final String SYSTEM_PHONENUMBER = "_Ohyz4bEEEeCVE-ofo1XCug";
/**
* if the IndicatorCategory is one kind of User Defined Category return true, else return false. If
* indicatorCategory is null return false.
*
* @param indicatorCategory
* @return
*/
public static final boolean isUserDefCategory(IndicatorCategory indicatorCategory) {
return isUserDefCount(indicatorCategory) || isUserDefFrequency(indicatorCategory) || isUserDefMatching(indicatorCategory)
|| isUserDefRealValue(indicatorCategory);
}
public static final boolean isUserDefCount(IndicatorCategory indicatorCategory) {
if (indicatorCategory != null) {
return USER_DEFINED_COUNT_CATEGORY.equals(ResourceHelper.getUUID(indicatorCategory));
}
return false;
}
public static final boolean isUserDefFrequency(IndicatorCategory indicatorCategory) {
if (indicatorCategory != null) {
return USER_DEFINED_FREQUENCY_CATEGORY.equals(ResourceHelper.getUUID(indicatorCategory));
}
return false;
}
public static final boolean isUserDefMatching(IndicatorCategory indicatorCategory) {
if (indicatorCategory != null) {
return USER_DEFINED_MATCH_CATEGORY.equals(ResourceHelper.getUUID(indicatorCategory));
}
return false;
}
public static final boolean isUserDefRealValue(IndicatorCategory indicatorCategory) {
if (indicatorCategory != null) {
return USER_DEFINED_REAL_VALUE_CATEGORY.equals(ResourceHelper.getUUID(indicatorCategory));
}
return false;
}
public static final boolean isCorrelation(IndicatorCategory indicatorCategory) {
if (indicatorCategory != null) {
return SYSTEM_CORRELATION.equals(ResourceHelper.getUUID(indicatorCategory));
}
return false;
}
public static IndicatorCategory getCategory(IndicatorDefinition indicatorDefinition) {
if (indicatorDefinition != null) {
EList<IndicatorCategory> categories = indicatorDefinition.getCategories();
if (categories != null && categories.size() > 0) {
return categories.get(0);
}
}
return null;
}
/**
* set the IndicatorCategory for the IndicatorDefinition.
*
* @param indicatorDefinition
* @param indicatorCategory
*/
public static void setCategory(IndicatorDefinition indicatorDefinition, IndicatorCategory indicatorCategory) {
if (indicatorDefinition != null && indicatorCategory != null) {
EList<IndicatorCategory> categories = indicatorDefinition.getCategories();
categories.clear();
categories.add(indicatorCategory);
}
}
public static IndicatorCategory getUDICategory(Indicator indicator) {
if (indicator != null) {
return getCategory(indicator.getIndicatorDefinition());
}
return null;
}
/**
*
* DOC qiongli Comment method "isPhoneNumberCategory".
*
* @param indicatorCategory
* @return
*/
public static final boolean isPhoneNumberCategory(IndicatorCategory indicatorCategory) {
if (indicatorCategory != null) {
return SYSTEM_PHONENUMBER.equals(ResourceHelper.getUUID(indicatorCategory));
}
return false;
}
}