Search in sources :

Example 66 with IComponentConversion

use of org.talend.core.model.components.conversions.IComponentConversion 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 67 with IComponentConversion

use of org.talend.core.model.components.conversions.IComponentConversion 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 68 with IComponentConversion

use of org.talend.core.model.components.conversions.IComponentConversion 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)

Example 69 with IComponentConversion

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

the class AddDoubleQuoteTotMomMigrationTask method execute.

/*
     * (non-Javadoc)
     * 
     * @see org.talend.core.model.migration.AbstractJobMigrationTask#executeOnProcess(org.talend.core.model.properties.ProcessItem)
     */
@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$
        IComponentFilter filter1 = new NameComponentFilter("tMomInput");
        //$NON-NLS-1$
        IComponentFilter filter2 = new NameComponentFilter("tMomOutput");
        //$NON-NLS-1$
        IComponentConversion addQuotesFrom = new AddQuotesInPropertyComponentConversion("FROM");
        //$NON-NLS-1$
        IComponentConversion addQuotesTo = new AddQuotesInPropertyComponentConversion("TO");
        //$NON-NLS-1$
        IComponentConversion addQuotes1 = new AddQuotesInPropertyComponentConversion("SERVERADDRESS");
        //$NON-NLS-1$
        IComponentConversion addQuotes2 = new AddQuotesInPropertyComponentConversion("SERVERPORT");
        //$NON-NLS-1$
        IComponentConversion addQuotes3 = new AddQuotesInPropertyComponentConversion("CHANNEL");
        //$NON-NLS-1$
        IComponentConversion addQuotes4 = new AddQuotesInPropertyComponentConversion("QM");
        //$NON-NLS-1$
        IComponentConversion addQuotes5 = new AddQuotesInPropertyComponentConversion("QUEUE");
        ModifyComponentsAction.searchAndModify(item, processType, filter1, Arrays.<IComponentConversion>asList(addQuotes1, addQuotes2, addQuotes3, addQuotes4, addQuotes5, addQuotesFrom));
        ModifyComponentsAction.searchAndModify(item, processType, filter2, Arrays.<IComponentConversion>asList(addQuotes1, addQuotes2, addQuotes3, addQuotes4, addQuotes5, addQuotesTo));
        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)

Example 70 with IComponentConversion

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

the class AddHashKeyFromInputConnector4tHashOutput method execute.

@Override
public ExecutionResult execute(Item item) {
    final ProcessType processType = getProcessType(item);
    //$NON-NLS-1$
    String[] compNames = { "tHashOutput" };
    IComponentConversion action = new IComponentConversion() {

        public void transform(NodeType node) {
            if (node == null) {
                return;
            }
            //$NON-NLS-1$
            ElementParameterType property = ComponentUtilities.getNodeProperty(node, "HASH_KEY_FROM_INPUT_CONNECTOR");
            if (property == null) {
                //$NON-NLS-1$ //$NON-NLS-2$
                ComponentUtilities.addNodeProperty(node, "HASH_KEY_FROM_INPUT_CONNECTOR", "CHECK");
                //$NON-NLS-1$ //$NON-NLS-2$
                ComponentUtilities.setNodeValue(node, "HASH_KEY_FROM_INPUT_CONNECTOR", "true");
            }
        }
    };
    for (String name : compNames) {
        IComponentFilter filter = new NameComponentFilter(name);
        try {
            ModifyComponentsAction.searchAndModify(item, processType, filter, Arrays.<IComponentConversion>asList(action));
        } 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)

Aggregations

IComponentConversion (org.talend.core.model.components.conversions.IComponentConversion)154 ProcessType (org.talend.designer.core.model.utils.emf.talendfile.ProcessType)154 IComponentFilter (org.talend.core.model.components.filters.IComponentFilter)150 NameComponentFilter (org.talend.core.model.components.filters.NameComponentFilter)142 NodeType (org.talend.designer.core.model.utils.emf.talendfile.NodeType)111 ElementParameterType (org.talend.designer.core.model.utils.emf.talendfile.ElementParameterType)85 PersistenceException (org.talend.commons.exception.PersistenceException)77 ElementValueType (org.talend.designer.core.model.utils.emf.talendfile.ElementValueType)15 RenameComponentConversion (org.talend.core.model.components.conversions.RenameComponentConversion)12 ArrayList (java.util.ArrayList)11 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