use of org.talend.dataquality.indicators.DateParameters in project tdq-studio-se by Talend.
the class MonthFrequencyIndicatorImpl method getParameters.
@Override
public IndicatorParameters getParameters() {
IndicatorParameters parameters = super.getParameters();
if (parameters == null) {
parameters = IndicatorsFactory.eINSTANCE.createIndicatorParameters();
}
DateParameters dateParameters = parameters.getDateParameters();
if (dateParameters == null) {
dateParameters = IndicatorsFactory.eINSTANCE.createDateParameters();
}
dateParameters.setDateAggregationType(DateGrain.MONTH);
parameters.setDateParameters(dateParameters);
this.setParameters(parameters);
return parameters;
}
use of org.talend.dataquality.indicators.DateParameters in project tdq-studio-se by Talend.
the class AbstractColumnDropTree method hasIndicatorParameters.
/**
* DOC msjian Comment method "hasIndicatorParameters".
*
* @param indicatorUnit
* @return
*/
private boolean hasIndicatorParameters(IndicatorUnit indicatorUnit) {
IndicatorParameters parameters = indicatorUnit.getIndicator().getParameters();
if (parameters == null) {
return false;
}
if (hideParameters(indicatorUnit)) {
return false;
}
if (indicatorUnit.getIndicator() instanceof FrequencyIndicator) {
// set on tree
if (parameters.getBins() == null) {
return false;
}
// ~
return true;
}
TextParameters tParameter = parameters.getTextParameter();
if (tParameter != null && !hideTextParameters(indicatorUnit)) {
return true;
}
DateParameters dParameters = parameters.getDateParameters();
if (dParameters != null) {
return true;
}
Domain indicatorValidDomain = parameters.getIndicatorValidDomain();
if (indicatorValidDomain != null) {
if (indicatorValidDomain.getRanges() != null && !indicatorValidDomain.getRanges().isEmpty()) {
return true;
}
}
Domain bins = parameters.getBins();
if (bins != null) {
return true;
}
return false;
}
use of org.talend.dataquality.indicators.DateParameters in project tdq-studio-se by Talend.
the class DateLowFrequencyIndicatorImpl method getParameters.
@Override
public IndicatorParameters getParameters() {
IndicatorParameters parameters = super.getParameters();
if (parameters == null) {
parameters = IndicatorsFactory.eINSTANCE.createIndicatorParameters();
}
DateParameters dateParameters = parameters.getDateParameters();
if (dateParameters == null) {
dateParameters = IndicatorsFactory.eINSTANCE.createDateParameters();
}
dateParameters.setDateAggregationType(DateGrain.DAY);
parameters.setDateParameters(dateParameters);
this.setParameters(parameters);
return parameters;
}
use of org.talend.dataquality.indicators.DateParameters in project tdq-studio-se by Talend.
the class ColumnAnalysisSqlExecutor method createSqlQuery.
/**
* Method "createSqlQuery".
*
* @param dataFilterExpression
* @param analysis
* @param indicator
*
* @throws ParseException
* @throws AnalysisExecutionException
*/
private boolean createSqlQuery(String dataFilterAsString, Indicator indicator) throws AnalysisExecutionException {
TypedReturnCode<TdColumn> checkResult = getTdColumn(indicator);
if (!checkResult.isOk()) {
return false;
}
TdColumn tdColumn = checkResult.getObject();
if (tdColumn.eIsProxy()) {
tdColumn = (TdColumn) EObjectHelper.resolveObject(tdColumn);
}
TypedReturnCode<String> columnName = getColumnName(indicator, tdColumn);
if (!columnName.isOk()) {
return false;
}
String colName = columnName.getObject();
TypedReturnCode<IndicatorDefinition> id = getIndicatorDefinition(indicator);
if (!id.isOk()) {
return false;
}
IndicatorDefinition indicatorDefinition = id.getObject();
// get correct language for current database
String language = dbms().getDbmsName();
// --- create select statement
// get indicator's sql columnS (generate the real SQL statement from its definition)
Expression sqlGenericExpression = dbms().getSqlExpression(indicatorDefinition);
final EClass indicatorEclass = indicator.eClass();
if (sqlGenericExpression == null || sqlGenericExpression.getBody() == null) {
// analysis, will not check the sql expression and create again(from the definition).
if (UDIHelper.isUDI(indicator) && indicator.getInstantiatedExpressions().size() > 0) {
return Boolean.TRUE;
}
// expressions.
if (IndicatorsPackage.eINSTANCE.getRegexpMatchingIndicator().equals(indicatorEclass)) {
// $NON-NLS-1$
traceError(Messages.getString("ColumnAnalysisSqlExecutor.PLEASEREMOVEALLPATTEN"));
return Boolean.FALSE;
}
traceError(Messages.getString(// $NON-NLS-1$
"ColumnAnalysisSqlExecutor.UNSUPPORTEDINDICATOR", (indicator.getName() != null ? AnalysisExecutorHelper.getIndicatorName(indicator) : indicatorEclass.getName())));
return Boolean.FALSE;
}
// --- get indicator parameters and convert them into sql expression
List<String> whereExpression = new ArrayList<String>();
if (StringUtils.isNotBlank(dataFilterAsString)) {
whereExpression.add(dataFilterAsString);
}
List<String> rangeStrings = null;
DateGrain dateAggregationType = null;
IndicatorParameters parameters = indicator.getParameters();
if (parameters != null) {
// handle bins
Domain bins = parameters.getBins();
if (bins != null) {
rangeStrings = getBinsAsGenericString(bins.getRanges(), colName);
}
DateParameters dateParameters = parameters.getDateParameters();
if (dateParameters != null) {
dateAggregationType = dateParameters.getDateAggregationType();
}
TextParameters textParameter = parameters.getTextParameter();
if (textParameter != null) {
if (textParameter.isIgnoreCase()) {
colName = dbms().toUpperCase(colName);
}
if (!textParameter.isUseBlank() && IndicatorsPackage.eINSTANCE.getLengthIndicator().isSuperTypeOf(indicatorEclass)) {
String tdColName = getQuotedColumnName(tdColumn);
// $NON-NLS-1$
tdColName = dbms().replaceNullsWithString(tdColName, "'NULL TALEND'");
} else if (textParameter.isUseBlank() && IndicatorsPackage.eINSTANCE.getFrequencyIndicator().isSuperTypeOf(indicatorEclass)) {
colName = dbms().trim(colName);
}
}
}
TypedReturnCode<String> completedQuery = getCompletedQuery(indicator, tdColumn, colName, indicatorDefinition, language, sqlGenericExpression, indicatorEclass, whereExpression, rangeStrings, dateAggregationType);
if (!completedQuery.isOk()) {
return false;
}
String finalQuery = completedQuery.getObject();
if (finalQuery != null) {
TdExpression instantiateSqlExpression = BooleanExpressionHelper.createTdExpression(language, finalQuery);
indicator.setInstantiatedExpression(instantiateSqlExpression);
return true;
}
return false;
}
use of org.talend.dataquality.indicators.DateParameters in project tdq-studio-se by Talend.
the class FrequencyStatisticsExplorer method getFreqRowsStatement.
protected String getFreqRowsStatement() {
IndicatorDefinition indicatorDefinition = this.indicator.getIndicatorDefinition();
if (indicatorDefinition instanceof UDIndicatorDefinition) {
return getQueryForUDIndicator(indicatorDefinition);
}
String clause = PluginConstant.EMPTY_STRING;
TdColumn column = (TdColumn) indicator.getAnalyzedElement();
int javaType = column.getSqlDataType().getJavaDataType();
if (Java2SqlType.isTextInSQL(javaType)) {
clause = getInstantiatedClause();
} else if (Java2SqlType.isDateInSQL(javaType)) {
// MOD scorreia 2009-09-22 first check whether the value is null
if (entity.isLabelNull()) {
clause = getInstantiatedClause();
} else {
IndicatorParameters parameters = indicator.getParameters();
if (parameters != null) {
DateParameters dateParameters = parameters.getDateParameters();
if (dateParameters != null) {
DateGrain dateGrain = dateParameters.getDateAggregationType();
clause = entity.isLabelNull() ? getInstantiatedClause() : getClauseWithDate(dateGrain, clause);
} else {
clause = getInstantiatedClause();
}
} else {
clause = getInstantiatedClause();
}
}
} else if (Java2SqlType.isNumbericInSQL(javaType)) {
IndicatorParameters parameters = indicator.getParameters();
if (parameters != null) {
// handle bins
Domain bins = parameters.getBins();
if (bins != null) {
// rangeStrings = getBinsAsGenericString(bins.getRanges());
final EList<RangeRestriction> ranges = bins.getRanges();
for (RangeRestriction rangeRestriction : ranges) {
// find the rangeLabel
if (entity.getLabel() != null && entity.getLabel().equals(rangeRestriction.getName())) {
clause = createWhereClause(rangeRestriction);
break;
}
}
} else {
// MOD hcheng 2009-05-18.Bug 7377,Frequency indicator,when bins is null,handle as textual data
clause = getInstantiatedClause();
}
} else {
// MOD scorreia 2009-05-13. Bug 7235
// no parameter set: handle as textual data
clause = getInstantiatedClause();
}
} else {
// no quote here
clause = getDefaultQuotedStatement(PluginConstant.EMPTY_STRING);
}
return // $NON-NLS-1$
"SELECT * FROM " + getFullyQualifiedTableName(column) + dbmsLanguage.where() + inBrackets(clause) + andDataFilterClause();
}
Aggregations