Search in sources :

Example 11 with WhereRule

use of org.talend.dataquality.rules.WhereRule in project tdq-studio-se by Talend.

the class AnalysisTableTreeViewer method getOwnedWhereRuleNodes.

/**
 * DOC xqliu Comment method "getOwnedWhereRuleFiles". ADD xqliu 2009-04-30 bug 6808
 *
 * @param tableIndicator
 * @param whereRuleFolder
 * @return
 */
private Object[] getOwnedWhereRuleNodes(TableIndicator tableIndicator) {
    ArrayList<RuleRepNode> ret = new ArrayList<RuleRepNode>();
    Indicator[] indicators = tableIndicator.getIndicators();
    for (Indicator indicator : indicators) {
        if (IndicatorHelper.isWhereRuleIndicator(indicator)) {
            Object obj = indicator.getIndicatorDefinition();
            if (obj != null && obj instanceof WhereRule) {
                WhereRule wr = (WhereRule) obj;
                RuleRepNode recursiveFindRuleSql = RepositoryNodeHelper.recursiveFindRuleSql(wr);
                if (recursiveFindRuleSql != null) {
                    ret.add(recursiveFindRuleSql);
                }
            }
        }
    }
    return ret.toArray();
}
Also used : WhereRule(org.talend.dataquality.rules.WhereRule) ArrayList(java.util.ArrayList) RuleRepNode(org.talend.dq.nodes.RuleRepNode) FrequencyIndicator(org.talend.dataquality.indicators.FrequencyIndicator) RowCountIndicator(org.talend.dataquality.indicators.RowCountIndicator) Indicator(org.talend.dataquality.indicators.Indicator) CompositeIndicator(org.talend.dataquality.indicators.CompositeIndicator) TableIndicator(org.talend.dataprofiler.core.model.TableIndicator) WhereRuleIndicator(org.talend.dataquality.indicators.sql.WhereRuleIndicator)

Example 12 with WhereRule

use of org.talend.dataquality.rules.WhereRule in project tdq-studio-se by Talend.

the class DQRuleMasterDetailsPage method getWhereRuleRepNodeFromInput.

/**
 * get PatternRepNode From editorInput
 *
 * @param editorInput
 * @return
 */
private RuleRepNode getWhereRuleRepNodeFromInput(IEditorInput editorInput) {
    if (editorInput instanceof FileEditorInput) {
        FileEditorInput fileEditorInput = (FileEditorInput) editorInput;
        IFile file = fileEditorInput.getFile();
        if (file != null) {
            WhereRule whereRule = DQRuleResourceFileHelper.getInstance().findWhereRule(file);
            whereRule = (WhereRule) EObjectHelper.resolveObject(whereRule);
            return RepositoryNodeHelper.recursiveFindRuleSql(whereRule);
        }
    } else if (editorInput instanceof BusinessRuleItemEditorInput) {
        return ((BusinessRuleItemEditorInput) editorInput).getRepNode();
    }
    return null;
}
Also used : IFile(org.eclipse.core.resources.IFile) WhereRule(org.talend.dataquality.rules.WhereRule) FileEditorInput(org.eclipse.ui.part.FileEditorInput)

Example 13 with WhereRule

use of org.talend.dataquality.rules.WhereRule in project tdq-studio-se by Talend.

the class TDQResourceChangeHandler method create.

@Override
public Resource create(IProject project, Item item, int classID, IPath path) {
    String fileExtension = FileConstants.ITEM_EXTENSION;
    Resource itemResource = null;
    try {
        switch(classID) {
            case org.talend.dataquality.properties.PropertiesPackage.TDQ_ANALYSIS_ITEM:
                fileExtension = FileConstants.ANA_EXTENSION;
                itemResource = xmiResourceManager.createItemResourceWithExtension(project, item, path, ERepositoryObjectType.TDQ_ANALYSIS_ELEMENT, false, fileExtension);
                AnalysisWriter createAnalysisWrite = org.talend.dq.writer.impl.ElementWriterFactory.getInstance().createAnalysisWrite();
                Analysis analysis = ((TDQAnalysisItem) item).getAnalysis();
                createAnalysisWrite.addResourceContent(itemResource, analysis);
                createAnalysisWrite.addDependencies(analysis);
                break;
            case org.talend.dataquality.properties.PropertiesPackage.TDQ_REPORT_ITEM:
                fileExtension = FileConstants.REP_EXTENSION;
                itemResource = xmiResourceManager.createItemResourceWithExtension(project, item, path, ERepositoryObjectType.TDQ_REPORT_ELEMENT, false, fileExtension);
                ReportWriter createReportWriter = org.talend.dq.writer.impl.ElementWriterFactory.getInstance().createReportWriter();
                Report report = ((TDQReportItem) item).getReport();
                createReportWriter.addResourceContent(itemResource, report);
                createReportWriter.addDependencies(report);
                break;
            case org.talend.dataquality.properties.PropertiesPackage.TDQ_INDICATOR_DEFINITION_ITEM:
                fileExtension = FileConstants.DEF_EXTENSION;
                itemResource = xmiResourceManager.createItemResourceWithExtension(project, item, path, ERepositoryObjectType.TDQ_INDICATOR_ELEMENT, false, fileExtension);
                IndicatorDefinition indicatorDefinition = ((TDQIndicatorDefinitionItem) item).getIndicatorDefinition();
                IndicatorDefinitionWriter createIndicatorDefinitionWriter = org.talend.dq.writer.impl.ElementWriterFactory.getInstance().createIndicatorDefinitionWriter();
                createIndicatorDefinitionWriter.addResourceContent(itemResource, indicatorDefinition);
                break;
            case org.talend.dataquality.properties.PropertiesPackage.TDQ_PATTERN_ITEM:
                fileExtension = FileConstants.PAT_EXTENSION;
                itemResource = xmiResourceManager.createItemResourceWithExtension(project, item, path, ERepositoryObjectType.TDQ_PATTERN_ELEMENT, false, fileExtension);
                Pattern pattern = ((TDQPatternItem) item).getPattern();
                PatternWriter createPatternWriter = org.talend.dq.writer.impl.ElementWriterFactory.getInstance().createPatternWriter();
                createPatternWriter.addResourceContent(itemResource, pattern);
                break;
            case org.talend.dataquality.properties.PropertiesPackage.TDQ_BUSINESS_RULE_ITEM:
                fileExtension = FileConstants.RULE_EXTENSION;
                // MOD gdbu 2011-6-10 bug : 21823 2011-06-27 revert the error type code by klliu
                DQRule dqrule = ((TDQBusinessRuleItem) item).getDqrule();
                if (dqrule instanceof WhereRule) {
                    itemResource = xmiResourceManager.createItemResourceWithExtension(project, item, path, ERepositoryObjectType.TDQ_RULES_SQL, false, fileExtension);
                } else {
                    itemResource = xmiResourceManager.createItemResourceWithExtension(project, item, path, ERepositoryObjectType.TDQ_RULES_PARSER, false, fileExtension);
                }
                // ~21823
                DQRuleWriter createdRuleWriter = org.talend.dq.writer.impl.ElementWriterFactory.getInstance().createdRuleWriter();
                createdRuleWriter.addResourceContent(itemResource, dqrule);
                break;
            case org.talend.dataquality.properties.PropertiesPackage.TDQ_JRXML_ITEM:
                fileExtension = FileConstants.JRXML_EXTENSION;
                itemResource = xmiResourceManager.createItemResourceWithExtension(project, item, path, ERepositoryObjectType.TDQ_JRAXML_ELEMENT, true, fileExtension);
                itemResource.getContents().add(((TDQFileItem) item).getContent());
                break;
            case org.talend.dataquality.properties.PropertiesPackage.TDQ_SOURCE_FILE_ITEM:
                fileExtension = FileConstants.SQL_EXTENSION;
                itemResource = xmiResourceManager.createItemResourceWithExtension(project, item, path, ERepositoryObjectType.TDQ_SOURCE_FILE_ELEMENT, true, fileExtension);
                itemResource.getContents().add(((TDQFileItem) item).getContent());
                break;
            case org.talend.dataquality.properties.PropertiesPackage.TDQ_MATCH_RULE_ITEM:
                fileExtension = FileConstants.RULE_EXTENSION;
                itemResource = xmiResourceManager.createItemResourceWithExtension(project, item, path, ERepositoryObjectType.TDQ_RULES_MATCHER, false, fileExtension);
                MatchRuleDefinition matchRuleDefinition = ((TDQMatchRuleItem) item).getMatchRule();
                MatchRuleDefinitionWriter matchRuleDefinitionWriter = org.talend.dq.writer.impl.ElementWriterFactory.getInstance().createdMatchRuleWriter();
                matchRuleDefinitionWriter.addResourceContent(itemResource, matchRuleDefinition);
                break;
            default:
        }
    } catch (PersistenceException e) {
        log.error(e, e);
    }
    return itemResource;
}
Also used : Pattern(org.talend.dataquality.domain.pattern.Pattern) TDQIndicatorDefinitionItem(org.talend.dataquality.properties.TDQIndicatorDefinitionItem) Report(orgomg.cwmx.analysis.informationreporting.Report) TDQMatchRuleItem(org.talend.dataquality.properties.TDQMatchRuleItem) DQRuleWriter(org.talend.dq.writer.impl.DQRuleWriter) Resource(org.eclipse.emf.ecore.resource.Resource) IResource(org.eclipse.core.resources.IResource) PatternWriter(org.talend.dq.writer.impl.PatternWriter) MatchRuleDefinition(org.talend.dataquality.rules.MatchRuleDefinition) TDQPatternItem(org.talend.dataquality.properties.TDQPatternItem) IndicatorDefinition(org.talend.dataquality.indicators.definition.IndicatorDefinition) DQRule(org.talend.dataquality.rules.DQRule) ReportWriter(org.talend.dq.writer.impl.ReportWriter) WhereRule(org.talend.dataquality.rules.WhereRule) Analysis(org.talend.dataquality.analysis.Analysis) IndicatorDefinitionWriter(org.talend.dq.writer.impl.IndicatorDefinitionWriter) PersistenceException(org.talend.commons.exception.PersistenceException) TDQBusinessRuleItem(org.talend.dataquality.properties.TDQBusinessRuleItem) MatchRuleDefinitionWriter(org.talend.dq.writer.impl.MatchRuleDefinitionWriter) AnalysisWriter(org.talend.dq.writer.impl.AnalysisWriter) TDQReportItem(org.talend.dataquality.properties.TDQReportItem) TDQAnalysisItem(org.talend.dataquality.properties.TDQAnalysisItem)

Example 14 with WhereRule

use of org.talend.dataquality.rules.WhereRule in project tdq-studio-se by Talend.

the class TableAnalysisWizard method initCWMResourceBuilder.

@Override
public ModelElement initCWMResourceBuilder() {
    Analysis analysis = (Analysis) super.initCWMResourceBuilder();
    NamedColumnSet[] ncss = getNamedColumnSet();
    Connection tdp = getTdDataProvider();
    if (ncss != null && getAnalysisBuilder() != null) {
        List<Indicator> indicatorList = new ArrayList<Indicator>();
        WhereRule[] whereRules = getWhereRules(dqruleSelectPage.getCViewer().getCheckedElements());
        for (NamedColumnSet ncs : ncss) {
            // add RowCountIndicator
            RowCountIndicator rowCountIndicator = IndicatorsFactory.eINSTANCE.createRowCountIndicator();
            DefinitionHandler.getInstance().setDefaultIndicatorDefinition(rowCountIndicator);
            rowCountIndicator.setAnalyzedElement(ncs);
            indicatorList.add(rowCountIndicator);
            // add user selected WhereRuleIndicator
            if (whereRules != null) {
                for (WhereRule whereRule : whereRules) {
                    WhereRuleIndicator[] compositeWhereRuleIndicator = DQRuleUtilities.createCompositeWhereRuleIndicator(ncs, whereRule);
                    indicatorList.addAll(Arrays.asList(compositeWhereRuleIndicator));
                }
            }
        }
        getAnalysisBuilder().addElementsToAnalyze(ncss, indicatorList.toArray(new Indicator[indicatorList.size()]));
        getAnalysisBuilder().setAnalysisConnection(tdp);
    }
    return analysis;
}
Also used : WhereRule(org.talend.dataquality.rules.WhereRule) WhereRuleIndicator(org.talend.dataquality.indicators.sql.WhereRuleIndicator) Analysis(org.talend.dataquality.analysis.Analysis) Connection(org.talend.core.model.metadata.builder.connection.Connection) ArrayList(java.util.ArrayList) RowCountIndicator(org.talend.dataquality.indicators.RowCountIndicator) NamedColumnSet(orgomg.cwm.resource.relational.NamedColumnSet) Indicator(org.talend.dataquality.indicators.Indicator) RowCountIndicator(org.talend.dataquality.indicators.RowCountIndicator) WhereRuleIndicator(org.talend.dataquality.indicators.sql.WhereRuleIndicator)

Example 15 with WhereRule

use of org.talend.dataquality.rules.WhereRule in project tdq-studio-se by Talend.

the class DQRuleLabelProvider method getImage.

@Override
public Image getImage(Object element) {
    if (element instanceof IFolder) {
        return ImageLib.getImage(ImageLib.FOLDERNODE_IMAGE);
    }
    if (element instanceof IFile && FactoriesUtil.DQRULE.equals(((IFile) element).getFileExtension())) {
        IFile file = (IFile) element;
        ModelElement me = DQRuleResourceFileHelper.getInstance().getModelElement(file);
        // add support for match rule
        ModelElement modelElement = DQRuleResourceFileHelper.getInstance().getModelElement(file);
        ModelElement rule = DQRuleResourceFileHelper.getInstance().doSwitch(modelElement);
        if (rule != null && rule instanceof MatchRuleDefinition) {
            ImageDescriptor imageDescriptor = ImageLib.getImageDescriptor(ImageLib.MATCH_RULE_ICON);
            return imageDescriptor.createImage();
        }
        // ~
        ImageDescriptor imageDescriptor = ImageLib.getImageDescriptor(ImageLib.DQ_RULE);
        if (rule != null && rule instanceof WhereRule) {
            boolean validStatus = TaggedValueHelper.getValidStatus(rule);
            if (!validStatus) {
                ImageDescriptor warnImg = PlatformUI.getWorkbench().getSharedImages().getImageDescriptor(ISharedImages.IMG_OBJS_WARN_TSK);
                DecorationOverlayIcon icon = new DecorationOverlayIcon(imageDescriptor.createImage(), warnImg, IDecoration.BOTTOM_RIGHT);
                imageDescriptor = icon;
            }
        }
        return imageDescriptor.createImage();
    }
    return null;
}
Also used : ModelElement(orgomg.cwm.objectmodel.core.ModelElement) DecorationOverlayIcon(org.eclipse.jface.viewers.DecorationOverlayIcon) IFile(org.eclipse.core.resources.IFile) WhereRule(org.talend.dataquality.rules.WhereRule) MatchRuleDefinition(org.talend.dataquality.rules.MatchRuleDefinition) ImageDescriptor(org.eclipse.jface.resource.ImageDescriptor) IFolder(org.eclipse.core.resources.IFolder)

Aggregations

WhereRule (org.talend.dataquality.rules.WhereRule)15 ArrayList (java.util.ArrayList)5 IndicatorDefinition (org.talend.dataquality.indicators.definition.IndicatorDefinition)5 IFile (org.eclipse.core.resources.IFile)4 IFolder (org.eclipse.core.resources.IFolder)3 TDQBusinessRuleItem (org.talend.dataquality.properties.TDQBusinessRuleItem)3 MatchRuleDefinition (org.talend.dataquality.rules.MatchRuleDefinition)3 ModelElement (orgomg.cwm.objectmodel.core.ModelElement)3 NamedColumnSet (orgomg.cwm.resource.relational.NamedColumnSet)3 Resource (org.eclipse.emf.ecore.resource.Resource)2 Test (org.junit.Test)2 Item (org.talend.core.model.properties.Item)2 TdExpression (org.talend.cwm.relational.TdExpression)2 Analysis (org.talend.dataquality.analysis.Analysis)2 Indicator (org.talend.dataquality.indicators.Indicator)2 RowCountIndicator (org.talend.dataquality.indicators.RowCountIndicator)2 WhereRuleIndicator (org.talend.dataquality.indicators.sql.WhereRuleIndicator)2 TDQAnalysisItem (org.talend.dataquality.properties.TDQAnalysisItem)2 TDQIndicatorDefinitionItem (org.talend.dataquality.properties.TDQIndicatorDefinitionItem)2 TDQPatternItem (org.talend.dataquality.properties.TDQPatternItem)2