Search in sources :

Example 1 with IComponentFilter

use of org.talend.core.model.components.filters.IComponentFilter in project tdi-studio-se by Talend.

the class ActivateQueryLogging method execute.

@Override
public ExecutionResult execute(Item item) {
    ProcessType processType = getProcessType(item);
    if (getProject().getLanguage() != ECodeLanguage.JAVA || processType == null) {
        return ExecutionResult.NOTHING_TO_DO;
    }
    List<String> filterList = Arrays.asList("tELTTeradataMap", "tTeradataConnection", "tTeradataInput", "tTeradataOutput", "tTeradataRow");
    IComponentConversion correctBatchModeForDBComponents = new IComponentConversion() {

        public void transform(NodeType node) {
            ElementParameterType queryBand = ComponentUtilities.getNodeProperty(node, "QUERY_BAND");
            ElementParameterType activateQueryLogging = ComponentUtilities.getNodeProperty(node, "ACTIVATE_QUERY_LOGGING");
            if (activateQueryLogging == null) {
                ComponentUtilities.addNodeProperty(node, "ACTIVATE_QUERY_LOGGING", "CHECK");
                if (queryBand != null) {
                    boolean queryBandActived = "true".equalsIgnoreCase(queryBand.getValue());
                    if (queryBandActived) {
                        ComponentUtilities.getNodeProperty(node, "ACTIVATE_QUERY_LOGGING").setValue("true");
                    }
                }
            }
        }
    };
    for (String componentName : filterList) {
        IComponentFilter filter = new NameComponentFilter(componentName);
        try {
            ModifyComponentsAction.searchAndModify(item, processType, filter, Arrays.<IComponentConversion>asList(correctBatchModeForDBComponents));
        } catch (PersistenceException e) {
            ExceptionHandler.process(e);
            return ExecutionResult.FAILURE;
        }
    }
    return ExecutionResult.SUCCESS_NO_ALERT;
}
Also used : ElementParameterType(org.talend.designer.core.model.utils.emf.talendfile.ElementParameterType) ProcessType(org.talend.designer.core.model.utils.emf.talendfile.ProcessType) NodeType(org.talend.designer.core.model.utils.emf.talendfile.NodeType) IComponentFilter(org.talend.core.model.components.filters.IComponentFilter) PersistenceException(org.talend.commons.exception.PersistenceException) NameComponentFilter(org.talend.core.model.components.filters.NameComponentFilter) IComponentConversion(org.talend.core.model.components.conversions.IComponentConversion)

Example 2 with IComponentFilter

use of org.talend.core.model.components.filters.IComponentFilter in project tdi-studio-se by Talend.

the class AddNewIgnoreNullSettingForTMicrosoftCrmOutputTask method execute.

@Override
public ExecutionResult execute(Item item) {
    ProcessType processType = getProcessType(item);
    if (getProject().getLanguage() != ECodeLanguage.JAVA || processType == null) {
        return ExecutionResult.NOTHING_TO_DO;
    }
    String componentName = "tMicrosoftCrmOutput";
    try {
        IComponentFilter filter = new NameComponentFilter(componentName);
        ModifyComponentsAction.searchAndModify(item, processType, filter, Arrays.<IComponentConversion>asList(new IComponentConversion() {

            @Override
            public void transform(NodeType node) {
                if (ComponentUtilities.getNodeProperty(node, "IGNORE_NULL") == null && ComponentUtilities.getNodeProperty(node, "MS_CRM_VERSION") == null) {
                    ComponentUtilities.addNodeProperty(node, "IGNORE_NULL", "CHECK");
                    ComponentUtilities.getNodeProperty(node, "IGNORE_NULL").setValue("true");
                }
            }
        }));
        return ExecutionResult.SUCCESS_NO_ALERT;
    } catch (Exception e) {
        ExceptionHandler.process(e);
        return ExecutionResult.FAILURE;
    }
}
Also used : ProcessType(org.talend.designer.core.model.utils.emf.talendfile.ProcessType) IComponentFilter(org.talend.core.model.components.filters.IComponentFilter) NodeType(org.talend.designer.core.model.utils.emf.talendfile.NodeType) NameComponentFilter(org.talend.core.model.components.filters.NameComponentFilter) IComponentConversion(org.talend.core.model.components.conversions.IComponentConversion)

Example 3 with IComponentFilter

use of org.talend.core.model.components.filters.IComponentFilter in project tdi-studio-se by Talend.

the class AddOneOptionAndReverseTheValueOnFSComponents method execute.

public ExecutionResult execute(Item item) {
    ProcessType processType = getProcessType(item);
    if (getProject().getLanguage() != ECodeLanguage.JAVA || processType == null) {
        return ExecutionResult.NOTHING_TO_DO;
    }
    try {
        //            String[] arrFSComponentsName = new String[] { "tFSAggregate", "tFSCheck", "tFSCode", "tFSFilterColumns", //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$ //$NON-NLS-4$
        //                    "tFSFilterRows", "tFSTransform", "tFSUnique" }; //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$
        String[] arrFSComponentsName = new String[] { //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$ //$NON-NLS-4$
        "tFSAggregate", //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$ //$NON-NLS-4$
        "tFSCheck", //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$ //$NON-NLS-4$
        "tFSCode", //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$ //$NON-NLS-4$
        "tFSFilterColumns", "tFSFilterRows", "tFSTransform", "tFSUnique", //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$
        "tFSJoin" };
        for (String fsComponentsName : arrFSComponentsName) {
            IComponentFilter filter = new NameComponentFilter(fsComponentsName);
            IComponentConversion addOption = new AddSortResultsOptionConversion();
            ModifyComponentsAction.searchAndModify(item, processType, filter, Arrays.<IComponentConversion>asList(addOption));
        }
        return ExecutionResult.SUCCESS_NO_ALERT;
    } catch (Exception e) {
        ExceptionHandler.process(e);
        return ExecutionResult.FAILURE;
    }
}
Also used : ProcessType(org.talend.designer.core.model.utils.emf.talendfile.ProcessType) IComponentFilter(org.talend.core.model.components.filters.IComponentFilter) NameComponentFilter(org.talend.core.model.components.filters.NameComponentFilter) IComponentConversion(org.talend.core.model.components.conversions.IComponentConversion)

Example 4 with IComponentFilter

use of org.talend.core.model.components.filters.IComponentFilter in project tdi-studio-se by Talend.

the class AddPerlRefArrayMigrationTask method execute.

@Override
public ExecutionResult execute(Item item) {
    try {
        ProcessType processType = getProcessType(item);
        if (getProject().getLanguage() == ECodeLanguage.JAVA || processType == null) {
            return ExecutionResult.NOTHING_TO_DO;
        } else {
            List<String> namesList = new ArrayList<String>();
            for (Object o : processType.getNode()) {
                NodeType nt = (NodeType) o;
                namesList.add(ComponentUtilities.getNodeUniqueName(nt));
            }
            for (Object o : processType.getConnection()) {
                ConnectionType currentConnection = (ConnectionType) o;
                int lineStyle = currentConnection.getLineStyle();
                EConnectionType connectionType = EConnectionType.getTypeFromId(lineStyle);
                if (connectionType.hasConnectionCategory(EConnectionType.FLOW)) {
                    namesList.add(currentConnection.getLabel());
                }
            }
            final String[] namesArrays = namesList.toArray(new String[0]);
            IComponentFilter filter1 = new IComponentFilter() {

                /*
                     * (non-Javadoc)
                     * 
                     * @see org.talend.core.model.components.filters.IComponentFilter#accept(org.talend.designer.core.model.utils.emf.talendfile.NodeType)
                     */
                public boolean accept(NodeType node) {
                    return true;
                }
            };
            IComponentConversion componentConversion = new IComponentConversion() {

                RefArraySyntaxReplacerForPerl parser = new RefArraySyntaxReplacerForPerl();

                /*
                     * (non-Javadoc)
                     * 
                     * @see org.talend.core.model.components.conversions.IComponentConversion#transform(org.talend.designer.core.model.utils.emf.talendfile.NodeType)
                     */
                public void transform(NodeType node) {
                    for (Object o : node.getElementParameter()) {
                        ElementParameterType pType = (ElementParameterType) o;
                        if (pType.getField().equals("TABLE")) {
                            //$NON-NLS-1$
                            for (ElementValueType elementValue : (List<ElementValueType>) pType.getElementValue()) {
                                elementValue.getValue();
                                String value = elementValue.getValue();
                                if (value != null) {
                                    String newValue = parser.processReplacementOperations(value, namesArrays);
                                    elementValue.setValue(newValue);
                                }
                            }
                        } else {
                            String value = pType.getValue();
                            if (value != null) {
                                String newValue = parser.processReplacementOperations(value, namesArrays);
                                pType.setValue(newValue);
                            }
                        }
                    }
                }
            };
            ModifyComponentsAction.searchAndModify(item, processType, filter1, Arrays.<IComponentConversion>asList(componentConversion));
            return ExecutionResult.SUCCESS_WITH_ALERT;
        }
    } catch (Exception e) {
        ExceptionHandler.process(e);
        return ExecutionResult.FAILURE;
    }
}
Also used : EConnectionType(org.talend.core.model.process.EConnectionType) ConnectionType(org.talend.designer.core.model.utils.emf.talendfile.ConnectionType) IComponentFilter(org.talend.core.model.components.filters.IComponentFilter) ArrayList(java.util.ArrayList) MalformedPatternException(org.apache.oro.text.regex.MalformedPatternException) ElementParameterType(org.talend.designer.core.model.utils.emf.talendfile.ElementParameterType) ProcessType(org.talend.designer.core.model.utils.emf.talendfile.ProcessType) ElementValueType(org.talend.designer.core.model.utils.emf.talendfile.ElementValueType) NodeType(org.talend.designer.core.model.utils.emf.talendfile.NodeType) ArrayList(java.util.ArrayList) List(java.util.List) EConnectionType(org.talend.core.model.process.EConnectionType) IComponentConversion(org.talend.core.model.components.conversions.IComponentConversion)

Example 5 with IComponentFilter

use of org.talend.core.model.components.filters.IComponentFilter in project tdi-studio-se by Talend.

the class AddDoubleQuoteToAllDBSPNameMigrationTask method execute.

/*
     * (non-Javadoc)
     * 
     * @see org.talend.core.model.migration.AbstractItemMigrationTask#execute(org.talend.core.model.properties.Item)
     */
@Override
public ExecutionResult execute(Item item) {
    ProcessType processType = getProcessType(item);
    if (getProject().getLanguage() != ECodeLanguage.JAVA || processType == null) {
        return ExecutionResult.NOTHING_TO_DO;
    }
    try {
        //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$ //$NON-NLS-4$ //$NON-NLS-5$ //$NON-NLS-6$
        String[] componentsName = new String[] { "tOracleSP", "tMSSqlSP", "tDB2SP", "tSybaseSP", "tMysqlSP", "tJDBCSP" };
        //$NON-NLS-1$
        IComponentConversion addQuotesSPName = new AddQuotesInPropertyComponentConversion("SP_NAME");
        for (String name : componentsName) {
            //$NON-NLS-1$
            IComponentFilter filter = new NameComponentFilter(name);
            ModifyComponentsAction.searchAndModify(item, processType, filter, Arrays.<IComponentConversion>asList(addQuotesSPName));
        }
        return ExecutionResult.SUCCESS_NO_ALERT;
    } catch (Exception e) {
        ExceptionHandler.process(e);
        return ExecutionResult.FAILURE;
    }
}
Also used : ProcessType(org.talend.designer.core.model.utils.emf.talendfile.ProcessType) AddQuotesInPropertyComponentConversion(org.talend.core.model.components.conversions.AddQuotesInPropertyComponentConversion) IComponentFilter(org.talend.core.model.components.filters.IComponentFilter) NameComponentFilter(org.talend.core.model.components.filters.NameComponentFilter) IComponentConversion(org.talend.core.model.components.conversions.IComponentConversion)

Aggregations

IComponentFilter (org.talend.core.model.components.filters.IComponentFilter)154 ProcessType (org.talend.designer.core.model.utils.emf.talendfile.ProcessType)153 IComponentConversion (org.talend.core.model.components.conversions.IComponentConversion)151 NameComponentFilter (org.talend.core.model.components.filters.NameComponentFilter)145 NodeType (org.talend.designer.core.model.utils.emf.talendfile.NodeType)111 ElementParameterType (org.talend.designer.core.model.utils.emf.talendfile.ElementParameterType)84 PersistenceException (org.talend.commons.exception.PersistenceException)78 ElementValueType (org.talend.designer.core.model.utils.emf.talendfile.ElementValueType)15 RenameComponentConversion (org.talend.core.model.components.conversions.RenameComponentConversion)12 ArrayList (java.util.ArrayList)10 RemovePropertyComponentConversion (org.talend.core.model.components.conversions.RemovePropertyComponentConversion)9 List (java.util.List)7 PropertyComponentFilter (org.talend.core.model.components.filters.PropertyComponentFilter)6 ConnectionType (org.talend.designer.core.model.utils.emf.talendfile.ConnectionType)5 HashMap (java.util.HashMap)3 EConnectionType (org.talend.core.model.process.EConnectionType)3 MetadataType (org.talend.designer.core.model.utils.emf.talendfile.MetadataType)3 ComponentProperties (org.talend.components.api.properties.ComponentProperties)2 AddPropertyCSVOptionConversion (org.talend.core.model.components.conversions.AddPropertyCSVOptionConversion)2 AddPropertyLoopTypeConversion (org.talend.core.model.components.conversions.AddPropertyLoopTypeConversion)2