public void remove(Marker marker) { if(references != null) { references.remove(marker.getName()); } }
private static Set<String> collectMarkerNames(Marker marker, Set<String> collectedMarkerNames) { if(collectedMarkerNames == null) { collectedMarkerNames = new HashSet<>(); } if(!collectedMarkerNames.contains(marker.getName())) { collectedMarkerNames.add(marker.getName()); if(marker.hasReferences()) { for(Map.Entry<String, Marker> current : marker.getReferences().entrySet()) { Marker child = current.getValue(); if(!collectedMarkerNames.contains(child.getName())) { collectMarkerNames(child, collectedMarkerNames); } } } } return collectedMarkerNames; }
protected void recursiveToString(StringBuilder result, Map<String, Marker> processedMarkers, Marker marker) if(processedMarkers.containsKey(marker.getName())) result.append("Marker[ref=").append(marker.getName()); processedMarkers.put(marker.getName(), marker); result.append("Marker[name=").append(marker.getName()); if(marker.hasReferences())
public boolean contains(Marker other) { if(other == null) { throw new IllegalArgumentException("Other cannot be null"); } if(this.name.equals(other.name)) { // see comment in c'tor return true; } if(hasReferences()) { Set<String> collectedMarkers = collectMarkerNames(this, null); return collectedMarkers.contains(other.getName()); } return false; }
if(child != null) markers.put(child.getName(), child); marker.add(child);
private void writeMarkerNode(XMLStreamWriter writer, String prefix, Marker marker, List<String> handledMarkers) throws XMLStreamException String markerName = marker.getName(); if(handledMarkers.contains(markerName))