Search in sources :

Example 1 with Domain

use of org.talend.dataquality.domain.Domain in project tdq-studio-se by Talend.

the class FunctionalDependencyAnalysisDetailsPage method saveAnalysis.

/*
     * (non-Javadoc)
     * 
     * @see org.talend.dataprofiler.core.ui.editor.analysis.AbstractAnalysisMetadataPage#saveAnalysis()
     */
@Override
protected void saveAnalysis() throws DataprofilerCoreException {
    analysisHandler.changeDefaultRowLoaded(rowLoadedText.getText());
    analysisHandler.changeSampleDataShowWay(sampleDataShowWayCombo.getText());
    for (Domain domain : getCurrentModelElement().getParameters().getDataFilter()) {
        domain.setName(getCurrentModelElement().getName());
    }
    IRepositoryViewObject reposObject = null;
    getAnalysisHandler().clearAnalysis();
    List<RepositoryNode> columnListAANode = anaColumnCompareViewer.getColumnListA();
    List<RepositoryNode> columnListBBNode = anaColumnCompareViewer.getColumnListB();
    AnalysisBuilder anaBuilder = new AnalysisBuilder();
    anaBuilder.setAnalysis(getCurrentModelElement());
    Connection tdDataProvider = null;
    for (int i = 0; i < columnListAANode.size(); i++) {
        if (columnListBBNode.size() > i) {
            ColumnDependencyIndicator indicator = ColumnsetFactory.eINSTANCE.createColumnDependencyIndicator();
            TdColumn columnA = (TdColumn) ((MetadataColumnRepositoryObject) columnListAANode.get(i).getObject()).getTdColumn();
            TdColumn columnB = (TdColumn) ((MetadataColumnRepositoryObject) columnListBBNode.get(i).getObject()).getTdColumn();
            indicator.setColumnA(columnA);
            indicator.setColumnB(columnB);
            indicator.setIndicatorDefinition(DefinitionHandler.getInstance().getFDRuleDefaultIndicatorDefinition());
            getCurrentModelElement().getResults().getIndicators().add(indicator);
            anaBuilder.addElementToAnalyze(columnA, indicator);
            // ADD this line qiongli 2010-6-8
            anaBuilder.addElementToAnalyze(columnB, indicator);
        }
    }
    if (columnListAANode.size() > 0) {
        reposObject = columnListAANode.get(0).getObject();
        tdDataProvider = ((ConnectionItem) reposObject.getProperty().getItem()).getConnection();
        // MOD qiongli bug 14437:Add dependency
        getCurrentModelElement().getContext().setConnection(tdDataProvider);
        TypedReturnCode<Dependency> rc = DependenciesHandler.getInstance().setDependencyOn(getCurrentModelElement(), tdDataProvider);
        if (!rc.isOk()) {
            // $NON-NLS-1$
            log.info("fail to save dependency analysis:" + getCurrentModelElement().getFileName());
        }
    } else {
        getCurrentModelElement().getContext().setConnection(null);
    }
    // save the number of connections per analysis
    this.saveNumberOfConnectionsPerAnalysis();
    // 2011.1.12 MOD by zhsne to unify anlysis and connection id when saving.
    this.nameText.setText(getCurrentModelElement().getName());
    // MOD yyi 2012-02-08 TDQ-4621:Explicitly set true for updating dependencies.
    ReturnCode saved = ElementWriterFactory.getInstance().createAnalysisWrite().save(getCurrentRepNode().getObject().getProperty().getItem(), true);
    // MOD yyi 2012-02-03 TDQ-3602:Avoid to rewriting all analyzes after saving, no reason to update all analyzes
    // which is depended in the referred connection.
    // Extract saving log function.
    // @see org.talend.dataprofiler.core.ui.editor.analysis.AbstractAnalysisMetadataPage#logSaved(ReturnCode)
    logSaved(saved);
    anaColumnCompareViewer.setDirty(false);
    dataFilterComp.setDirty(false);
}
Also used : ColumnDependencyIndicator(org.talend.dataquality.indicators.columnset.ColumnDependencyIndicator) TdColumn(org.talend.cwm.relational.TdColumn) TypedReturnCode(org.talend.utils.sugars.TypedReturnCode) ReturnCode(org.talend.utils.sugars.ReturnCode) IRepositoryViewObject(org.talend.core.model.repository.IRepositoryViewObject) Connection(org.talend.core.model.metadata.builder.connection.Connection) AnalysisBuilder(org.talend.dq.analysis.AnalysisBuilder) Dependency(orgomg.cwm.objectmodel.core.Dependency) Domain(org.talend.dataquality.domain.Domain) RepositoryNode(org.talend.repository.model.RepositoryNode) IRepositoryNode(org.talend.repository.model.IRepositoryNode)

Example 2 with Domain

use of org.talend.dataquality.domain.Domain in project tdq-studio-se by Talend.

the class AbstractFilterMetadataPage method saveAnalysis.

@Override
public void saveAnalysis() throws DataprofilerCoreException {
    // ADD xqliu 2010-01-04 bug 10190
    if (isConnectionAnalysis()) {
        // MOD zshen 2010-03-19 bug 12041
        AnalysisHelper.setReloadDatabases(getCurrentModelElement(), reloadDatabasesBtn.getSelection());
    }
    // ~
    EList<Domain> dataFilters = getCurrentModelElement().getParameters().getDataFilter();
    if (!this.tableFilterText.getText().equals(DomainHelper.getTablePattern(dataFilters))) {
        DomainHelper.setDataFilterTablePattern(dataFilters, tableFilterText.getText());
        latestTableFilterValue = this.tableFilterText.getText();
    }
    if (!this.viewFilterText.getText().equals(DomainHelper.getViewPattern(dataFilters))) {
        DomainHelper.setDataFilterViewPattern(dataFilters, viewFilterText.getText());
        latestViewFilterValue = this.viewFilterText.getText();
    }
    // save the number of connections per analysis
    this.saveNumberOfConnectionsPerAnalysis();
    // 2011.1.12 MOD by zhsne to unify anlysis and connection id when saving.
    this.nameText.setText(getCurrentModelElement().getName());
    // ~
    // MOD yyi 2012-02-08 TDQ-4621:Explicitly set true for updating dependencies.
    ReturnCode saved = ElementWriterFactory.getInstance().createAnalysisWrite().save(getCurrentRepNode().getObject().getProperty().getItem(), true);
    // MOD yyi 2012-02-03 TDQ-3602:Avoid to rewriting all analyzes after saving, no reason to update all analyzes
    // which is depended in the referred connection.
    // Extract saving log function.
    // @see org.talend.dataprofiler.core.ui.editor.analysis.AbstractAnalysisMetadataPage#logSaved(ReturnCode)
    logSaved(saved);
}
Also used : ReturnCode(org.talend.utils.sugars.ReturnCode) Domain(org.talend.dataquality.domain.Domain)

Example 3 with Domain

use of org.talend.dataquality.domain.Domain in project tdq-studio-se by Talend.

the class AbstractFilterMetadataPage method createAnalysisParamSection.

/**
 * create Analysis Param Section.
 */
private void createAnalysisParamSection() {
    analysisParamSection = createSection(form, topComp, // $NON-NLS-1$
    DefaultMessagesImpl.getString("ConnectionMasterDetailsPage.analysisParameter"));
    Composite sectionClient = toolkit.createComposite(analysisParamSection);
    sectionClient.setLayout(new GridLayout(1, false));
    Composite comp1 = new Composite(sectionClient, SWT.NONE);
    this.createAnalysisLimitComposite(comp1);
    Composite comp2 = new Composite(sectionClient, SWT.NONE);
    comp2.setLayout(new GridLayout(2, false));
    GridDataFactory.fillDefaults().grab(true, true).applyTo(comp2);
    Label tableFilterLabel = new Label(comp2, SWT.None);
    // $NON-NLS-1$
    tableFilterLabel.setText(DefaultMessagesImpl.getString("ConnectionMasterDetailsPage.filterOnTable"));
    tableFilterLabel.setLayoutData(new GridData());
    tableFilterText = new Text(comp2, SWT.BORDER);
    EList<Domain> dataFilters = getCurrentModelElement().getParameters().getDataFilter();
    String tablePattern = DomainHelper.getTablePattern(dataFilters);
    latestTableFilterValue = tablePattern == null ? PluginConstant.EMPTY_STRING : tablePattern;
    tableFilterText.setText(latestTableFilterValue);
    // $NON-NLS-1$
    tableFilterText.setToolTipText(DefaultMessagesImpl.getString("AbstractFilterMetadataPage.FilterTables"));
    GridDataFactory.fillDefaults().grab(true, false).applyTo(tableFilterText);
    tableFilterText.addModifyListener(new ModifyListener() {

        public void modifyText(ModifyEvent e) {
            setDirty(true);
        }
    });
    Label viewFilterLabel = new Label(comp2, SWT.None);
    // $NON-NLS-1$
    viewFilterLabel.setText(DefaultMessagesImpl.getString("ConnectionMasterDetailsPage.filterOnView"));
    viewFilterLabel.setLayoutData(new GridData());
    viewFilterText = new Text(comp2, SWT.BORDER);
    String viewPattern = DomainHelper.getViewPattern(dataFilters);
    latestViewFilterValue = viewPattern == null ? PluginConstant.EMPTY_STRING : viewPattern;
    viewFilterText.setText(latestViewFilterValue);
    // $NON-NLS-1$
    viewFilterText.setToolTipText(DefaultMessagesImpl.getString("AbstractFilterMetadataPage.FilterViews"));
    GridDataFactory.fillDefaults().grab(true, false).applyTo(viewFilterText);
    viewFilterText.addModifyListener(new ModifyListener() {

        public void modifyText(ModifyEvent e) {
            setDirty(true);
        }
    });
    // ADD yyi 2011-05-31 16158:add whitespace check for text fields.
    addWhitespaceValidate(tableFilterText, viewFilterText);
    // ADD xqliu 2010-01-04 bug 10190
    createReloadDatabasesButton(comp2);
    // ~
    analysisParamSection.setClient(sectionClient);
}
Also used : GridLayout(org.eclipse.swt.layout.GridLayout) ModifyEvent(org.eclipse.swt.events.ModifyEvent) Composite(org.eclipse.swt.widgets.Composite) ModifyListener(org.eclipse.swt.events.ModifyListener) Label(org.eclipse.swt.widgets.Label) GridData(org.eclipse.swt.layout.GridData) Text(org.eclipse.swt.widgets.Text) Domain(org.talend.dataquality.domain.Domain)

Example 4 with Domain

use of org.talend.dataquality.domain.Domain in project tdq-studio-se by Talend.

the class BinFrequencyIndicatorImpl method getGroupLabel.

/*
     * (non-Javadoc)
     * 
     * if the bin parameter is set,look range name as a new name.
     */
protected String getGroupLabel(Object name) {
    if (name == null) {
        return null;
    }
    if (parameters != null) {
        Domain bins = parameters.getBins();
        if (bins != null) {
            EList<RangeRestriction> ranges = bins.getRanges();
            for (RangeRestriction range : ranges) {
                double minRealValue = DomainHelper.getRealValue(range.getLowerValue());
                double maxRealValue = DomainHelper.getRealValue(range.getUpperValue());
                double inputValue = Double.valueOf(name.toString());
                if (minRealValue <= inputValue && inputValue < maxRealValue) {
                    return range.getName();
                }
            }
            // if the data(name) is not in these ranges,return null and ignor it.
            return null;
        }
    }
    return name.toString();
}
Also used : RangeRestriction(org.talend.dataquality.domain.RangeRestriction) Domain(org.talend.dataquality.domain.Domain)

Example 5 with Domain

use of org.talend.dataquality.domain.Domain in project tdq-studio-se by Talend.

the class IndicatorParametersImpl method basicSetDataValidDomain.

/**
 * <!-- begin-user-doc --> <!-- end-user-doc -->
 *
 * @generated
 */
public NotificationChain basicSetDataValidDomain(Domain newDataValidDomain, NotificationChain msgs) {
    Domain oldDataValidDomain = dataValidDomain;
    dataValidDomain = newDataValidDomain;
    if (eNotificationRequired()) {
        ENotificationImpl notification = new ENotificationImpl(this, Notification.SET, IndicatorsPackage.INDICATOR_PARAMETERS__DATA_VALID_DOMAIN, oldDataValidDomain, newDataValidDomain);
        if (msgs == null) {
            msgs = notification;
        } else {
            msgs.add(notification);
        }
    }
    return msgs;
}
Also used : ENotificationImpl(org.eclipse.emf.ecore.impl.ENotificationImpl) Domain(org.talend.dataquality.domain.Domain)

Aggregations

Domain (org.talend.dataquality.domain.Domain)68 IndicatorParameters (org.talend.dataquality.indicators.IndicatorParameters)27 Pattern (org.talend.dataquality.domain.pattern.Pattern)16 RegularExpression (org.talend.dataquality.domain.pattern.RegularExpression)14 Expression (orgomg.cwm.objectmodel.core.Expression)14 TdColumn (org.talend.cwm.relational.TdColumn)13 TdExpression (org.talend.cwm.relational.TdExpression)13 RangeRestriction (org.talend.dataquality.domain.RangeRestriction)13 Test (org.junit.Test)12 Analysis (org.talend.dataquality.analysis.Analysis)12 ArrayList (java.util.ArrayList)10 ReturnCode (org.talend.utils.sugars.ReturnCode)9 Indicator (org.talend.dataquality.indicators.Indicator)6 PatternMatchingIndicator (org.talend.dataquality.indicators.PatternMatchingIndicator)6 IRepositoryNode (org.talend.repository.model.IRepositoryNode)6 ModelElement (orgomg.cwm.objectmodel.core.ModelElement)6 Connection (org.talend.core.model.metadata.builder.connection.Connection)5 DatabaseConnection (org.talend.core.model.metadata.builder.connection.DatabaseConnection)5 IRepositoryViewObject (org.talend.core.model.repository.IRepositoryViewObject)5 AnalysisContext (org.talend.dataquality.analysis.AnalysisContext)5