Search in sources :

Example 1 with MetadataXmlElementTypeRepositoryObject

use of org.talend.core.repository.model.repositoryObject.MetadataXmlElementTypeRepositoryObject in project tdq-studio-se by Talend.

the class AnalysisColumnTreeViewer method canDrop.

@Override
public boolean canDrop(IRepositoryNode metadataRepositoryNode) {
    IRepositoryViewObject metadataRepObject = metadataRepositoryNode.getObject();
    ConnectionItem connItem = (ConnectionItem) metadataRepObject.getProperty().getItem();
    // MOD qiongli 2010-8-19,bug 14436:could not come from diffrent connection
    Connection tdProvider = connItem.getConnection();
    if (tdProvider == null) {
        return false;
    } else if (this.getAnalysis().getContext().getConnection() != null && !ResourceHelper.areSame(tdProvider, this.getAnalysis().getContext().getConnection())) {
        return false;
    }
    // MOD mzhao, 2010-07-23 bug 14014: If the editor is dirty, save it firstly before drag and drop an elements.
    if (masterPage.isDirty()) {
        masterPage.doSave(new NullProgressMonitor());
        return false;
    }
    List<ModelElement> existModelElements = new ArrayList<ModelElement>();
    for (ModelElementIndicator modelElementIndicator : this.getAllTheElementIndicator()) {
        ModelElement me = RepositoryNodeHelper.getModelElementFromRepositoryNode(modelElementIndicator.getModelElementRepositoryNode());
        existModelElements.add(me);
    }
    // MOD mzhao 9848 2010-01-14, allowing to drag and drop table.
    if (metadataRepObject instanceof MetadataTableRepositoryObject) {
        MetadataTableRepositoryObject tableRepObject = (MetadataTableRepositoryObject) metadataRepObject;
        return !existModelElements.containsAll(ColumnSetHelper.getColumns((TdTable) tableRepObject.getTable()));
    }
    if (metadataRepObject instanceof MetadataColumnRepositoryObject) {
        if (existModelElements.contains(((MetadataColumnRepositoryObject) metadataRepObject).getTdColumn())) {
            return false;
        }
    }
    if (metadataRepObject instanceof MetadataXmlElementTypeRepositoryObject) {
        return !metadataRepositoryNode.hasChildren();
    }
    return true;
}
Also used : NullProgressMonitor(org.eclipse.core.runtime.NullProgressMonitor) ModelElement(orgomg.cwm.objectmodel.core.ModelElement) ConnectionItem(org.talend.core.model.properties.ConnectionItem) IRepositoryViewObject(org.talend.core.model.repository.IRepositoryViewObject) Connection(org.talend.core.model.metadata.builder.connection.Connection) ArrayList(java.util.ArrayList) MetadataColumnRepositoryObject(org.talend.core.repository.model.repositoryObject.MetadataColumnRepositoryObject) MetadataXmlElementTypeRepositoryObject(org.talend.core.repository.model.repositoryObject.MetadataXmlElementTypeRepositoryObject) ModelElementIndicator(org.talend.dataprofiler.core.model.ModelElementIndicator) MetadataTableRepositoryObject(org.talend.core.repository.model.repositoryObject.MetadataTableRepositoryObject)

Example 2 with MetadataXmlElementTypeRepositoryObject

use of org.talend.core.repository.model.repositoryObject.MetadataXmlElementTypeRepositoryObject in project tdq-studio-se by Talend.

the class AbstractPredefinedAnalysisAction method composePredefinedColumnIndicator.

protected ModelElementIndicator[] composePredefinedColumnIndicator(IndicatorEnum[] allowedEnum) {
    IRepositoryNode[] columns = getColumns();
    ModelElementIndicator[] predefinedColumnIndicator = new ModelElementIndicator[columns.length];
    ExecutionLanguage language = ExecutionLanguage.get(getMasterPage().getExecCombo().getText());
    for (int i = 0; i < columns.length; i++) {
        IRepositoryNode columnNode = columns[i];
        ModelElementIndicator columnIndicator = ModelElementIndicatorHelper.createModelElementIndicator(columnNode);
        for (IndicatorEnum oneEnum : allowedEnum) {
            columnIndicator.addTempIndicatorEnum(oneEnum);
            if (oneEnum.getChildren() != null) {
                for (IndicatorEnum childEnum : oneEnum.getChildren()) {
                    // MOD by zshen:need language to decide DatePatternFrequencyIndicator whether can be choose by
                    // user.
                    IRepositoryViewObject object = columnNode.getObject();
                    ModelElement element = null;
                    if (object instanceof MetadataColumnRepositoryObject) {
                        element = ((MetadataColumnRepositoryObject) object).getTdColumn();
                    } else if (object instanceof MetadataXmlElementTypeRepositoryObject) {
                        element = ((MetadataXmlElementTypeRepositoryObject) object).getModelElement();
                    }
                    if (element != null && ModelElementIndicatorRule.patternRule(childEnum, element, language)) {
                        columnIndicator.addTempIndicatorEnum(childEnum);
                    }
                }
            }
        }
        columnIndicator.storeTempIndicator();
        predefinedColumnIndicator[i] = columnIndicator;
    }
    return predefinedColumnIndicator;
}
Also used : ModelElement(orgomg.cwm.objectmodel.core.ModelElement) IRepositoryNode(org.talend.repository.model.IRepositoryNode) IndicatorEnum(org.talend.dq.nodes.indicator.type.IndicatorEnum) IRepositoryViewObject(org.talend.core.model.repository.IRepositoryViewObject) ExecutionLanguage(org.talend.dataquality.analysis.ExecutionLanguage) MetadataColumnRepositoryObject(org.talend.core.repository.model.repositoryObject.MetadataColumnRepositoryObject) MetadataXmlElementTypeRepositoryObject(org.talend.core.repository.model.repositoryObject.MetadataXmlElementTypeRepositoryObject) ModelElementIndicator(org.talend.dataprofiler.core.model.ModelElementIndicator)

Example 3 with MetadataXmlElementTypeRepositoryObject

use of org.talend.core.repository.model.repositoryObject.MetadataXmlElementTypeRepositoryObject in project tdq-studio-se by Talend.

the class ColumnWizard method composePredefinedColumnIndicator.

protected ModelElementIndicator[] composePredefinedColumnIndicator(IndicatorEnum[] allowedEnum) {
    List<IRepositoryNode> nodes;
    // from the right menu
    if (selectionPage == null) {
        nodes = Arrays.asList(((AnalysisLabelParameter) parameter).getColumnNodes());
    } else {
        // TDQ-11240: get all the column nodes
        nodes = Arrays.asList(RepositoryNodeHelper.getAllColumnNodes(selectionPage.nodes.toArray(new IRepositoryNode[selectionPage.nodes.size()])));
    }
    ModelElementIndicator[] predefinedColumnIndicator = new ModelElementIndicator[nodes.size()];
    for (int i = 0; i < nodes.size(); i++) {
        IRepositoryNode columnNode = nodes.get(i);
        ModelElementIndicator columnIndicator = ModelElementIndicatorHelper.createModelElementIndicator(columnNode);
        for (IndicatorEnum oneEnum : allowedEnum) {
            columnIndicator.addTempIndicatorEnum(oneEnum);
            if (oneEnum.getChildren() != null) {
                for (IndicatorEnum childEnum : oneEnum.getChildren()) {
                    // MOD by zshen:need language to decide DatePatternFrequencyIndicator whether can be choose by
                    // user.
                    IRepositoryViewObject object = columnNode.getObject();
                    ModelElement element = null;
                    if (object instanceof MetadataColumnRepositoryObject) {
                        element = ((MetadataColumnRepositoryObject) object).getTdColumn();
                    } else if (object instanceof MetadataXmlElementTypeRepositoryObject) {
                        element = ((MetadataXmlElementTypeRepositoryObject) object).getModelElement();
                    }
                    if (element != null && ModelElementIndicatorRule.patternRule(childEnum, element, ExecutionLanguage.SQL)) {
                        columnIndicator.addTempIndicatorEnum(childEnum);
                    }
                }
            }
        }
        columnIndicator.storeTempIndicator();
        predefinedColumnIndicator[i] = columnIndicator;
    }
    return predefinedColumnIndicator;
}
Also used : ModelElement(orgomg.cwm.objectmodel.core.ModelElement) IRepositoryNode(org.talend.repository.model.IRepositoryNode) IndicatorEnum(org.talend.dq.nodes.indicator.type.IndicatorEnum) IRepositoryViewObject(org.talend.core.model.repository.IRepositoryViewObject) MetadataColumnRepositoryObject(org.talend.core.repository.model.repositoryObject.MetadataColumnRepositoryObject) MetadataXmlElementTypeRepositoryObject(org.talend.core.repository.model.repositoryObject.MetadataXmlElementTypeRepositoryObject) AnalysisLabelParameter(org.talend.dq.analysis.parameters.AnalysisLabelParameter) ModelElementIndicator(org.talend.dataprofiler.core.model.ModelElementIndicator)

Aggregations

IRepositoryViewObject (org.talend.core.model.repository.IRepositoryViewObject)3 MetadataColumnRepositoryObject (org.talend.core.repository.model.repositoryObject.MetadataColumnRepositoryObject)3 MetadataXmlElementTypeRepositoryObject (org.talend.core.repository.model.repositoryObject.MetadataXmlElementTypeRepositoryObject)3 ModelElementIndicator (org.talend.dataprofiler.core.model.ModelElementIndicator)3 ModelElement (orgomg.cwm.objectmodel.core.ModelElement)3 IndicatorEnum (org.talend.dq.nodes.indicator.type.IndicatorEnum)2 IRepositoryNode (org.talend.repository.model.IRepositoryNode)2 ArrayList (java.util.ArrayList)1 NullProgressMonitor (org.eclipse.core.runtime.NullProgressMonitor)1 Connection (org.talend.core.model.metadata.builder.connection.Connection)1 ConnectionItem (org.talend.core.model.properties.ConnectionItem)1 MetadataTableRepositoryObject (org.talend.core.repository.model.repositoryObject.MetadataTableRepositoryObject)1 ExecutionLanguage (org.talend.dataquality.analysis.ExecutionLanguage)1 AnalysisLabelParameter (org.talend.dq.analysis.parameters.AnalysisLabelParameter)1