@Override public void loadXML(Element element, Properties context) { super.loadXML(element, context); Element[] cs = XMLUtilities.getChildren(element, KbXMLStoreConstants.TAG_FUNCTION); for (Element e : cs) { ELFunction f = new ELFunction(); f.loadXML(e, context); addFunction(f); } }
public void mergeFunctions(FunctionTagLib c, Change children) { Map<Object, ELFunction> functionMap = new HashMap<Object, ELFunction>(); for (IELFunction f : getFunctions()) functionMap.put(((KbObject) f).getId(), (ELFunction) f); for (IELFunction f : c.getFunctions()) { ELFunction loaded = (ELFunction) f; ELFunction current = functionMap.get(loaded.getId()); if (current == null) { addFunction(loaded); Change change = new Change(this, null, null, loaded); children.addChildren(Change.addChange(null, change)); } else { List<Change> rc = current.merge(loaded); if (rc != null) children.addChildren(rc); } } for (ELFunction f : functionMap.values()) { ELFunction removed = f; synchronized (functions) { if (functions.contains(removed)) { continue; } functions.remove(removed.getName()); functionArray = null; } Change change = new Change(this, null, removed, null); children.addChildren(Change.addChange(null, change)); } }