void (final Element element, final AntBuildFile buildFile) { List<Element> events = null; final Set<String> savedEvents = new HashSet<>(); synchronized (myEventToTargetMap) { for (final ExecutionEvent event : myEventToTargetMap.keySet()) { final Pair<AntBuildFile, String> pair = myEventToTargetMap.get(event); if (!buildFile.equals(pair.first)) { continue; } Element eventElement = new Element(EXECUTE_ON_ELEMENT); eventElement.setAttribute(EVENT_ELEMENT, event.getTypeId()); eventElement.setAttribute(TARGET_ELEMENT, pair.second); final String id = event.writeExternal(eventElement, getProject()); if (savedEvents.contains(id)) continue; savedEvents.add(id); if (events == null) { events = new ArrayList<>(); } events.add(eventElement); } } if (events != null) { events.sort(EventElementComparator.INSTANCE); for (Element eventElement : events) { element.addContent(eventElement); } } }