use of org.talend.dataquality.indicators.definition.IndicatorCategory in project tdq-studio-se by Talend.
the class TOPRepositoryService method createParserRuleItem.
public void createParserRuleItem(ArrayList<HashMap<String, Object>> values, String parserRuleName) {
ParserRule parserRule = null;
DqRuleBuilder ruleBuilder = new DqRuleBuilder();
boolean ruleInitialized = ruleBuilder.initializeParserRuleBuilder(parserRuleName);
if (ruleInitialized) {
parserRule = ruleBuilder.getParserRule();
}
TaggedValueHelper.setValidStatus(true, parserRule);
for (HashMap<String, Object> expression : values) {
parserRule.addExpression(expression.get(RULE_NAME).toString(), expression.get(RULE_TYPE) instanceof Integer ? Integer.toString((Integer) expression.get(RULE_TYPE)) : expression.get(RULE_TYPE).toString(), expression.get(RULE_VALUE).toString());
}
IndicatorCategory ruleIndicatorCategory = DefinitionHandler.getInstance().getDQRuleIndicatorCategory();
if (ruleIndicatorCategory != null && !parserRule.getCategories().contains(ruleIndicatorCategory)) {
parserRule.getCategories().add(ruleIndicatorCategory);
}
IFolder folder = ResourceManager.getRulesParserFolder();
TypedReturnCode<Object> returnObject = ElementWriterFactory.getInstance().createdRuleWriter().create(parserRule, folder);
Object object = returnObject.getObject();
RuleRepNode parserRuleNode = RepositoryNodeHelper.recursiveFindRuleParser(parserRule);
BusinessRuleItemEditorInput parserRuleEditorInput = new BusinessRuleItemEditorInput(parserRuleNode);
CorePlugin.getDefault().openEditor(parserRuleEditorInput, DQRuleEditor.class.getName());
refresh(object);
}
use of org.talend.dataquality.indicators.definition.IndicatorCategory in project tdq-studio-se by Talend.
the class IndicatorHelper method getIndicatorValue.
/**
* DOC bZhou Comment method "getIndicatorValue".
*
* @param indicator
* @return
*/
public static String getIndicatorValue(Indicator indicator) {
IndicatorsSwitch<String> mySwitch = new IndicatorsSwitch<String>() {
@Override
public String caseAverageLengthIndicator(AverageLengthIndicator object) {
return createStandardNumber(object.getAverageLength());
}
@Override
public String caseBlankCountIndicator(BlankCountIndicator object) {
return String.valueOf(object.getBlankCount());
}
@Override
public String caseDefValueCountIndicator(DefValueCountIndicator object) {
return String.valueOf(object.getDefaultValCount());
}
@Override
public String caseDistinctCountIndicator(DistinctCountIndicator object) {
return String.valueOf(object.getDistinctValueCount());
}
@Override
public String caseDuplicateCountIndicator(DuplicateCountIndicator object) {
return String.valueOf(object.getDuplicateValueCount());
}
@Override
public String caseMaxLengthIndicator(MaxLengthIndicator object) {
return String.valueOf(object.getLength());
}
@Override
public String caseMeanIndicator(MeanIndicator object) {
return createStandardNumber(object.getMean());
}
@Override
public String caseMedianIndicator(MedianIndicator object) {
return createStandardNumber(object.getMedian());
}
@Override
public String caseMinLengthIndicator(MinLengthIndicator object) {
return String.valueOf(object.getLength());
}
@Override
public String caseModeIndicator(ModeIndicator object) {
return String.valueOf(object.getMode());
}
@Override
public String caseNullCountIndicator(NullCountIndicator object) {
return String.valueOf(object.getNullCount());
}
@Override
public String casePatternMatchingIndicator(PatternMatchingIndicator object) {
return String.valueOf(object.getMatchingValueCount());
}
@Override
public String caseRowCountIndicator(RowCountIndicator object) {
return String.valueOf(object.getCount());
}
@Override
public String caseUniqueCountIndicator(UniqueCountIndicator object) {
return String.valueOf(object.getUniqueValueCount());
}
@Override
public String caseValueIndicator(ValueIndicator object) {
return object.getValue();
}
@Override
public String caseValidPhoneCountIndicator(ValidPhoneCountIndicator object) {
return String.valueOf(object.getValidPhoneNumCount());
}
@Override
public String casePossiblePhoneCountIndicator(PossiblePhoneCountIndicator object) {
return String.valueOf(object.getPossiblePhoneCount());
}
@Override
public String caseValidRegCodeCountIndicator(ValidRegCodeCountIndicator object) {
return String.valueOf(object.getValidRegCount());
}
@Override
public String caseInvalidRegCodeCountIndicator(InvalidRegCodeCountIndicator object) {
return String.valueOf(object.getInvalidRegCount());
}
@Override
public String caseWellFormE164PhoneCountIndicator(WellFormE164PhoneCountIndicator object) {
return String.valueOf(object.getWellFormE164PhoneCount());
}
@Override
public String caseWellFormIntePhoneCountIndicator(WellFormIntePhoneCountIndicator object) {
return String.valueOf(object.getWellFormIntePhoneCount());
}
@Override
public String caseWellFormNationalPhoneCountIndicator(WellFormNationalPhoneCountIndicator object) {
return String.valueOf(object.getWellFormNatiPhoneCount());
}
};
// TDQ-11114: consider the UDI type
IndicatorSqlSwitch<String> sqlSwitch = new IndicatorSqlSwitch<String>() {
@Override
public String caseWhereRuleIndicator(WhereRuleIndicator object) {
return String.valueOf(object.getUserCount());
}
@Override
public String caseUserDefIndicator(UserDefIndicator object) {
// TDQ-11114: get the correct value for user define realvalue indicator
if (object instanceof UserDefIndicator) {
UserDefIndicator userDefineIndicator = object;
IndicatorCategory category = IndicatorCategoryHelper.getCategory(userDefineIndicator.getIndicatorDefinition());
if (IndicatorCategoryHelper.isUserDefRealValue(category)) {
return String.valueOf(userDefineIndicator.getRealValue());
}
}
// TDQ-11485: fix the match udi get result value error
return String.valueOf(object.getIntegerValue());
}
@Override
public String caseJavaUserDefIndicator(JavaUserDefIndicator object) {
return String.valueOf(object.getUserCount());
}
};
String result = mySwitch.doSwitch(indicator);
return result == null ? sqlSwitch.doSwitch(indicator) : result;
}
use of org.talend.dataquality.indicators.definition.IndicatorCategory in project tdq-studio-se by Talend.
the class UDIFactory method createIndicator.
@Deprecated
public static Indicator createIndicator(IndicatorDefinition indicatorDefinition) {
IndicatorCategory category = UDIHelper.getUDICategory(indicatorDefinition);
Indicator indicator = null;
if (category != null) {
if (category.equals(DefinitionHandler.getInstance().getUserDefinedCountIndicatorCategory())) {
indicator = IndicatorsFactory.eINSTANCE.createRowCountIndicator();
} else if (category.equals(DefinitionHandler.getInstance().getUserDefinedMatchIndicatorCategory())) {
indicator = IndicatorsFactory.eINSTANCE.createRegexpMatchingIndicator();
} else if (category.equals(DefinitionHandler.getInstance().getUserDefinedFrequencyIndicatorCategory())) {
indicator = IndicatorsFactory.eINSTANCE.createFrequencyIndicator();
}
if (indicator != null) {
IndicatorParameters indicParams = IndicatorsFactory.eINSTANCE.createIndicatorParameters();
indicator.setParameters(indicParams);
indicator.setName(indicatorDefinition.getName());
}
}
return indicator;
}
use of org.talend.dataquality.indicators.definition.IndicatorCategory in project tdq-studio-se by Talend.
the class CategoryHandler method buildCategories.
/**
* DOC xqliu Comment method "buildCategories".
*
* @return
*/
private static Map<IndicatorCategory, List<IndicatorDefinition>> buildCategories() {
Map<IndicatorCategory, List<IndicatorDefinition>> categories = new HashMap<IndicatorCategory, List<IndicatorDefinition>>();
for (IndicatorDefinition indicatorDefinition : getShowIndicatorsDefinitions()) {
IndicatorCategory category = IndicatorCategoryHelper.getCategory(indicatorDefinition);
if (category == null) {
category = getIndicatorCategory();
}
if (category != null) {
List<IndicatorDefinition> list = categories.get(category);
if (list == null) {
List<IndicatorDefinition> tempList = new ArrayList<IndicatorDefinition>();
tempList.add(indicatorDefinition);
categories.put(category, tempList);
} else {
list.add(indicatorDefinition);
}
}
}
return categories;
}
use of org.talend.dataquality.indicators.definition.IndicatorCategory in project tdq-studio-se by Talend.
the class ImportFactory method createAndStoreParserRule.
/**
* DOC klliu Comment method "createAndStoreParserRule".
*
* @param prParameters
* @param selectionFolder
*/
public static void createAndStoreParserRule(ParserRuleParameters prParameters, IFolder selectionFolder, String name) {
DqRuleBuilder ruleBuilder = new DqRuleBuilder();
boolean ruleInitialized = ruleBuilder.initializeParserRuleBuilder(prParameters.label);
if (ruleInitialized) {
ParserRule parserRule = ruleBuilder.getParserRule();
parserRule.setName(name);
TaggedValueHelper.setValidStatus(true, parserRule);
List<ParserRuleTdExpresstion> prExpresstions = prParameters.getPrExpresstions();
for (ParserRuleTdExpresstion prtde : prExpresstions) {
parserRule.addExpression(prtde.name, prtde.type, prtde.value);
}
IndicatorCategory ruleIndicatorCategory = DefinitionHandler.getInstance().getDQRuleIndicatorCategory();
if (ruleIndicatorCategory != null && !parserRule.getCategories().contains(ruleIndicatorCategory)) {
parserRule.getCategories().add(ruleIndicatorCategory);
}
ElementWriterFactory.getInstance().createdRuleWriter().create(parserRule, selectionFolder);
}
}
Aggregations