Ejemplo n.º 1
0
 public static EConnectionType getTypeFromName(String name) {
   EConnectionType[] listConnectionType = EConnectionType.values();
   for (int i = 0; i < listConnectionType.length; i++) {
     if (listConnectionType[i].getName().equals(name)) {
       return listConnectionType[i];
     }
   }
   return null;
 }
Ejemplo n.º 2
0
 public static EConnectionType getTypeFromId(int id) {
   EConnectionType[] listConnectionType = EConnectionType.values();
   for (int i = 0; i < listConnectionType.length; i++) {
     if ((listConnectionType[i].getId()) == id) {
       return listConnectionType[i];
     }
   }
   // Default Value
   return EConnectionType.FLOW_MAIN;
 }
  @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;
    }
  }