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; }