public static List<VarNode> convertDefineFunctionsToVarNodes( MapperManager mapperManger, List<INode> iNodes) { List<VarNode> varNodes = new ArrayList<VarNode>(); if (mapperManger != null) { PigMapComponent mapperComponent = mapperManger.getMapperComponent(); iNodesDefineFunctions.clear(); defineFunctionsAlias.clear(); checkPigLoadIfDefineFunctions(mapperComponent, iNodes); iNodesDefineFunctions.addAll(iNodes); for (INode iNode : iNodes) { IElementParameter elementParameter = iNode.getElementParameter(PigMapConstants.DEFINE_FUNCTION); if (elementParameter != null && elementParameter.getValue() instanceof List) { List<Map<String, String>> defineFunctions = (List<Map<String, String>>) elementParameter.getValue(); if (defineFunctions.size() > 0) { for (Map<String, String> item : defineFunctions) { VarNode newVarNode = PigmapFactory.eINSTANCE.createVarNode(); newVarNode.setType(iNode.getUniqueName()); newVarNode.setName(item.get(PigMapConstants.FUNCTION_ALIAS)); newVarNode.setExpression(item.get(PigMapConstants.UDF_FUNCTION)); varNodes.add(newVarNode); String key = item.get(PigMapConstants.FUNCTION_ALIAS); if (!defineFunctionsAlias.containsKey(key)) { defineFunctionsAlias.put(key, item.get(PigMapConstants.UDF_FUNCTION)); } } } } } } return varNodes; }
public static void convertVarNodesToDefineFunctions(VarTable varTable) { // if you modified the configure of var define functions , we need update . defineFunctionsAlias.clear(); for (VarNode varNode : varTable.getNodes()) { Map<String, String> item = new HashMap<String, String>(); item.put( PigMapConstants.FUNCTION_ALIAS, TalendQuoteUtils.addQuotesIfNotExist(varNode.getName())); item.put( PigMapConstants.UDF_FUNCTION, TalendQuoteUtils.addQuotesIfNotExist(varNode.getExpression())); String key = varNode.getName(); if (!defineFunctionsAlias.containsKey(key)) { defineFunctionsAlias.put(key, varNode.getExpression()); } } }
public static void convertVarNodesToDefineFunctions(VarTable varTable, List<INode> iNodes) { // Send back the change to the tPigLoad node if you modified the configure of define dunctions for (INode iNode : iNodes) { IElementParameter elementParameter = iNode.getElementParameter(PigMapConstants.DEFINE_FUNCTION); if (elementParameter != null && elementParameter.getValue() instanceof List) { List<Map<String, String>> defineFunctions = (List<Map<String, String>>) elementParameter.getValue(); defineFunctions.clear(); defineFunctionsAlias.clear(); for (VarNode varNode : varTable.getNodes()) { if (iNode.getUniqueName().equals(varNode.getType())) { Map<String, String> item = new HashMap<String, String>(); item.put( PigMapConstants.FUNCTION_ALIAS, TalendQuoteUtils.addQuotesIfNotExist(varNode.getName())); if (varNode.getExpression() != null) { String newString = varNode.getExpression().trim(); if (newString.length() > 0) { newString = TalendQuoteUtils.addQuotesIfNotExist(newString); } item.put(PigMapConstants.UDF_FUNCTION, newString); } else { item.put(PigMapConstants.UDF_FUNCTION, ""); // $NON-NLS-1$ } defineFunctions.add(item); String key = varNode.getName(); if (!defineFunctionsAlias.containsKey(key)) { defineFunctionsAlias.put(key, varNode.getExpression()); } } } } } }