Search in sources :

Example 6 with DateParameters

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;
}
Also used : IndicatorParameters(org.talend.dataquality.indicators.IndicatorParameters) DateParameters(org.talend.dataquality.indicators.DateParameters)

Example 7 with DateParameters

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;
}
Also used : TextParameters(org.talend.dataquality.indicators.TextParameters) IndicatorParameters(org.talend.dataquality.indicators.IndicatorParameters) DateParameters(org.talend.dataquality.indicators.DateParameters) Domain(org.talend.dataquality.domain.Domain) FrequencyIndicator(org.talend.dataquality.indicators.FrequencyIndicator)

Example 8 with DateParameters

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;
}
Also used : IndicatorParameters(org.talend.dataquality.indicators.IndicatorParameters) DateParameters(org.talend.dataquality.indicators.DateParameters)

Example 9 with DateParameters

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;
}
Also used : DateGrain(org.talend.dataquality.indicators.DateGrain) TdExpression(org.talend.cwm.relational.TdExpression) IndicatorParameters(org.talend.dataquality.indicators.IndicatorParameters) ArrayList(java.util.ArrayList) DateParameters(org.talend.dataquality.indicators.DateParameters) IndicatorDefinition(org.talend.dataquality.indicators.definition.IndicatorDefinition) TextParameters(org.talend.dataquality.indicators.TextParameters) EClass(org.eclipse.emf.ecore.EClass) TdColumn(org.talend.cwm.relational.TdColumn) TdExpression(org.talend.cwm.relational.TdExpression) Expression(orgomg.cwm.objectmodel.core.Expression) Domain(org.talend.dataquality.domain.Domain)

Example 10 with DateParameters

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();
}
Also used : TdColumn(org.talend.cwm.relational.TdColumn) DateGrain(org.talend.dataquality.indicators.DateGrain) UDIndicatorDefinition(org.talend.dataquality.indicators.definition.userdefine.UDIndicatorDefinition) IndicatorParameters(org.talend.dataquality.indicators.IndicatorParameters) DateParameters(org.talend.dataquality.indicators.DateParameters) RangeRestriction(org.talend.dataquality.domain.RangeRestriction) Domain(org.talend.dataquality.domain.Domain) UDIndicatorDefinition(org.talend.dataquality.indicators.definition.userdefine.UDIndicatorDefinition) IndicatorDefinition(org.talend.dataquality.indicators.definition.IndicatorDefinition)

Aggregations

DateParameters (org.talend.dataquality.indicators.DateParameters)17 IndicatorParameters (org.talend.dataquality.indicators.IndicatorParameters)15 Domain (org.talend.dataquality.domain.Domain)4 DateGrain (org.talend.dataquality.indicators.DateGrain)3 FrequencyIndicator (org.talend.dataquality.indicators.FrequencyIndicator)3 TdColumn (org.talend.cwm.relational.TdColumn)2 TextParameters (org.talend.dataquality.indicators.TextParameters)2 IndicatorDefinition (org.talend.dataquality.indicators.definition.IndicatorDefinition)2 ArrayList (java.util.ArrayList)1 EClass (org.eclipse.emf.ecore.EClass)1 EFactoryImpl (org.eclipse.emf.ecore.impl.EFactoryImpl)1 ENotificationImpl (org.eclipse.emf.ecore.impl.ENotificationImpl)1 TdExpression (org.talend.cwm.relational.TdExpression)1 ModelElementIndicator (org.talend.dataprofiler.core.model.ModelElementIndicator)1 ColumnIndicatorUnit (org.talend.dataprofiler.core.ui.editor.preview.ColumnIndicatorUnit)1 IndicatorUnit (org.talend.dataprofiler.core.ui.editor.preview.IndicatorUnit)1 RangeRestriction (org.talend.dataquality.domain.RangeRestriction)1 AverageLengthIndicator (org.talend.dataquality.indicators.AverageLengthIndicator)1 AvgLengthWithBlankIndicator (org.talend.dataquality.indicators.AvgLengthWithBlankIndicator)1 AvgLengthWithBlankNullIndicator (org.talend.dataquality.indicators.AvgLengthWithBlankNullIndicator)1