use of org.talend.dataquality.indicators.util.IndicatorsSwitch in project tdq-studio-se by Talend.
the class LoadSerialDataMain method main.
/**
* DOC scorreia Comment method "main".
*
* @param args
*/
public static void main(String[] args) {
EMFUtil util = new EMFUtil();
File file = new File("out/columnTest_0.1.ana");
System.out.println("Loading file " + file.getAbsolutePath());
ResourceSet rs = util.getResourceSet();
Resource r = rs.getResource(URI.createFileURI(file.getAbsolutePath()), true);
EList<EObject> contents = r.getContents();
if (contents.isEmpty()) {
System.err.println("No content in " + r);
}
System.out.println("Nb elements in contents " + contents.size());
IndicatorsSwitch<FrequencyIndicator> mySwitch = new IndicatorsSwitch<FrequencyIndicator>() {
@Override
public FrequencyIndicator caseFrequencyIndicator(FrequencyIndicator object) {
return object;
}
};
for (EObject object : contents) {
FrequencyIndicator freqI = mySwitch.doSwitch(object);
if (freqI != null) {
Long uniqueValueCount = freqI.getUniqueValueCount();
System.out.println("nb unique values = " + uniqueValueCount);
EList<Object> uniqueValues = freqI.getUniqueValues();
for (Object data : uniqueValues) {
System.out.println("unique value= " + data + " " + freqI.getCount(data));
}
}
}
}
use of org.talend.dataquality.indicators.util.IndicatorsSwitch 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.util.IndicatorsSwitch in project tdq-studio-se by Talend.
the class ChartTableFactory method isDqRule.
/**
* Added yyin TDQ-4829 20120717 To add the new feature: generate job from DQ rule
*
* @param indicator
* @return
*/
public static boolean isDqRule(Indicator indicator) {
if (indicator == null || indicator.getAnalyzedElement() == null) {
return false;
}
// only support 7 kinds of db: mysql, oracle with sid, oracle with service name, oracle oci,
// postgressql,mssql,mssql2005/2008
String[] supportDB = { EDatabaseTypeName.MYSQL.getDisplayName(), EDatabaseTypeName.PSQL.getDisplayName(), EDatabaseTypeName.ORACLEFORSID.getDisplayName(), EDatabaseTypeName.ORACLESN.getDisplayName(), EDatabaseTypeName.ORACLE_OCI.getDisplayName(), EDatabaseTypeName.MSSQL.getDisplayName(), EDatabaseTypeName.MSSQL05_08.getDisplayName() };
TdTable table = SwitchHelpers.TABLE_SWITCH.doSwitch(indicator.getAnalyzedElement());
if (table == null) {
return false;
}
Connection tdDataProvider = TableHelper.getFirstConnection(table);
if (tdDataProvider instanceof DatabaseConnection) {
String type = ((DatabaseConnection) tdDataProvider).getDatabaseType();
boolean isSupport = false;
for (String support : supportDB) {
if (support.equals(type)) {
isSupport = true;
}
}
if (!isSupport) {
return false;
}
}
// RulesSwitch<DQRule> dqRulesSwitch = new RulesSwitch<DQRule>() {
IndicatorsSwitch<Indicator> iSwitch = new IndicatorsSwitch<Indicator>() {
@Override
public WhereRuleIndicator caseIndicator(Indicator object) {
if (object instanceof WhereRuleIndicator) {
return (WhereRuleIndicator) object;
}
return null;
}
};
return iSwitch.doSwitch(indicator) != null;
}
Aggregations