use of org.talend.dataquality.domain.RangeRestriction in project tdq-studio-se by Talend.
the class IndicatorHelper method setDataThreshold.
public static void setDataThreshold(IndicatorParameters parameters, String min, String max) {
assert parameters != null;
Domain validDomain = parameters.getDataValidDomain();
if (validDomain == null) {
// $NON-NLS-1$
validDomain = DomainHelper.createDomain("Data threshold");
parameters.setDataValidDomain(validDomain);
}
// remove previous ranges
assert validDomain.getRanges().size() < 2;
validDomain.getRanges().clear();
RangeRestriction rangeRestriction = DomainHelper.createStringRangeRestriction(min, max);
validDomain.getRanges().add(rangeRestriction);
}
use of org.talend.dataquality.domain.RangeRestriction in project tdq-studio-se by Talend.
the class AnalysisHelper method setStringDataFilter.
/**
* DOC xqliu Comment method "setStringDataFilter".
*
* @param analysis
* @param datafilterString
* @param index 0 for DataFilterA, 1 for DataFilterB
* @return
*/
public static boolean setStringDataFilter(Analysis analysis, String datafilterString, int index) {
if (index == 1) {
EList<Domain> dataFilters = analysis.getParameters().getDataFilter();
int size = dataFilters.size();
if (size == 0) {
// $NON-NLS-1$
dataFilters.add(createDomain(analysis, ""));
// $NON-NLS-1$
return dataFilters.add(createDomain(analysis, datafilterString, "1"));
} else if (size == 1) {
// $NON-NLS-1$
return dataFilters.add(createDomain(analysis, datafilterString, "1"));
} else if (size == 2) {
Domain domain = dataFilters.get(1);
EList<RangeRestriction> ranges = domain.getRanges();
RangeRestriction rangeRestriction = (ranges.isEmpty()) ? DomainHelper.addRangeRestriction(domain) : ranges.get(0);
BooleanExpressionNode expressions = rangeRestriction.getExpressions();
if (expressions == null) {
expressions = BooleanExpressionHelper.createBooleanExpressionNode(datafilterString);
rangeRestriction.setExpressions(expressions);
} else {
Expression expression = expressions.getExpression();
if (expression == null) {
expression = BooleanExpressionHelper.createTdExpression(BooleanExpressionHelper.DEFAULT_LANGUAGE, datafilterString);
expressions.setExpression(expression);
} else {
expression.setBody(datafilterString);
}
}
return false;
} else {
return false;
}
} else {
return setStringDataFilter(analysis, datafilterString);
}
}
use of org.talend.dataquality.domain.RangeRestriction in project tdq-studio-se by Talend.
the class AnalysisHelper method getStringDataFilter.
/**
* DOC xqliu Comment method "getStringDataFilter".
*
* @param analysis
* @param index 0 for DataFilterA, 1 for DataFilterB
* @return
*/
public static String getStringDataFilter(Analysis analysis, int index) {
AnalysisParameters parameters = analysis.getParameters();
if (parameters == null) {
return null;
}
EList<Domain> dataFilters = parameters.getDataFilter();
// remove existing filters
if (dataFilters == null || dataFilters.isEmpty()) {
return null;
}
int i = 0;
for (Domain domain : dataFilters) {
if (domain == null) {
continue;
}
EList<RangeRestriction> ranges = domain.getRanges();
for (RangeRestriction rangeRestriction : ranges) {
BooleanExpressionNode expressions = rangeRestriction.getExpressions();
if (expressions == null) {
continue;
}
Expression expression = expressions.getExpression();
if (expression == null) {
continue;
}
if (i == index) {
// MOD klliu 2011-07-14 bug 23150 solve an NPE
String body = expression.getBody();
if (body == null) {
continue;
}
// ~
return body.trim();
} else if (i > index) {
return null;
}
}
i++;
}
return null;
}
use of org.talend.dataquality.domain.RangeRestriction in project tdq-studio-se by Talend.
the class AnalysisHelper method setStringDataFilter.
public static boolean setStringDataFilter(Analysis analysis, String datafilterString) {
EList<Domain> dataFilters = analysis.getParameters().getDataFilter();
// update existing filters
if (!dataFilters.isEmpty()) {
Domain domain = dataFilters.get(0);
EList<RangeRestriction> ranges = domain.getRanges();
RangeRestriction rangeRestriction = (ranges.isEmpty()) ? DomainHelper.addRangeRestriction(domain) : ranges.get(0);
BooleanExpressionNode expressions = rangeRestriction.getExpressions();
if (expressions == null) {
expressions = BooleanExpressionHelper.createBooleanExpressionNode(datafilterString);
rangeRestriction.setExpressions(expressions);
} else {
Expression expression = expressions.getExpression();
if (expression == null) {
expression = BooleanExpressionHelper.createTdExpression(BooleanExpressionHelper.DEFAULT_LANGUAGE, datafilterString);
expressions.setExpression(expression);
} else {
expression.setBody(datafilterString);
}
}
return false;
}
// else
return dataFilters.add(createDomain(analysis, datafilterString));
}
use of org.talend.dataquality.domain.RangeRestriction in project tdq-studio-se by Talend.
the class DomainHelper method getMaxBinValue.
/**
* Method "getMaxBinValue".
*
* @param domain
* @return the higher value of the last bin.
* @throws IllegalArgumentException
*/
public static double getMaxBinValue(Domain domain) {
EList<RangeRestriction> ranges = domain.getRanges();
if (ranges.isEmpty()) {
// $NON-NLS-1$
throw new IllegalArgumentException(Messages.getString("DomainHelper.NoRangeMax", domain.getName()));
}
int lastIdx = ranges.size() - 1;
RangeRestriction r1 = ranges.get(lastIdx);
if (r1 == null) {
// $NON-NLS-1$
throw new IllegalArgumentException(Messages.getString("DomainHelper.LastRangeMax", domain.getName()));
}
return getRealValue(r1.getUpperValue());
}
Aggregations