for (NodeDefinition def1 : defs1) { for (NodeDefinition def2 : defs2) { diffs.add(new ChildNodeDefDiff(def1, def2)); diffs.add(new ChildNodeDefDiff(def1, null)); diffs.add(new ChildNodeDefDiff(null, def2)); final List<ChildNodeDefDiff> results = new ArrayList<ChildNodeDefDiff>(); for (ChildNodeDefDiff diff : diffs) { if (!alreadyMatched(results, diff.getNewDef(), diff.getOldDef(), allowedNewNull, allowedOldNull)) { results.add(diff); if (diff.getNewDef() == null) { allowedNewNull.decrementAndGet(); if (diff.getOldDef() == null) { allowedOldNull.decrementAndGet();
/** * @return diff type */ private int buildChildNodeDefDiffs() { int maxType = NONE; final Map<NodeDefinitionId, List<NodeDefinition>> oldDefs = collectChildNodeDefs(oldDef.getDeclaredChildNodeDefinitions()); final Map<NodeDefinitionId, List<NodeDefinition>> newDefs = collectChildNodeDefs(newDef.getDeclaredChildNodeDefinitions()); for (NodeDefinitionId defId : oldDefs.keySet()) { final ChildNodeDefDiffs childNodeDefDiffs = new ChildNodeDefDiffs(oldDefs.get(defId), newDefs.get(defId)); this.childNodeDefDiffs.addAll(childNodeDefDiffs.getChildNodeDefDiffs()); newDefs.remove(defId); } for (NodeDefinitionId defId : newDefs.keySet()) { final ChildNodeDefDiffs childNodeDefDiffs = new ChildNodeDefDiffs(null, newDefs.get(defId)); this.childNodeDefDiffs.addAll(childNodeDefDiffs.getChildNodeDefDiffs()); } for (ChildNodeDefDiff diff : childNodeDefDiffs) { if (diff.getType() > maxType) { maxType = diff.getType(); } } return maxType; }
for (NodeDefinition def1 : defs1) { for (NodeDefinition def2 : defs2) { diffs.add(new ChildNodeDefDiff(def1, def2)); diffs.add(new ChildNodeDefDiff(def1, null)); diffs.add(new ChildNodeDefDiff(null, def2)); final List<ChildNodeDefDiff> results = new ArrayList<ChildNodeDefDiff>(); for (ChildNodeDefDiff diff : diffs) { if (!alreadyMatched(results, diff.getNewDef(), diff.getOldDef(), allowedNewNull, allowedOldNull)) { results.add(diff); if (diff.getNewDef() == null) { allowedNewNull.decrementAndGet(); if (diff.getOldDef() == null) { allowedOldNull.decrementAndGet();
for (NodeDefinition def1 : defs1) { for (NodeDefinition def2 : defs2) { diffs.add(new ChildNodeDefDiff(def1, def2)); diffs.add(new ChildNodeDefDiff(def1, null)); diffs.add(new ChildNodeDefDiff(null, def2)); final List<ChildNodeDefDiff> results = new ArrayList<ChildNodeDefDiff>(); for (ChildNodeDefDiff diff : diffs) { if (!alreadyMatched(results, diff.getNewDef(), diff.getOldDef(), allowedNewNull, allowedOldNull)) { results.add(diff); if (diff.getNewDef() == null) { allowedNewNull.decrementAndGet(); if (diff.getOldDef() == null) { allowedOldNull.decrementAndGet();
if (isModified() && type == TRIVIAL) { boolean b1 = getOldDef().allowsSameNameSiblings(); boolean b2 = getNewDef().allowsSameNameSiblings(); if (b1 != b2 && !b2) { Set<String> s1 = new HashSet<String>(Arrays.asList(getOldDef().getRequiredPrimaryTypeNames())); Set<String> s2 = new HashSet<String>(Arrays.asList(getNewDef().getRequiredPrimaryTypeNames()));
if (isModified() && type == TRIVIAL) { boolean b1 = getOldDef().allowsSameNameSiblings(); boolean b2 = getNewDef().allowsSameNameSiblings(); if (b1 != b2 && !b2) { Set<String> s1 = new HashSet<String>(Arrays.asList(getOldDef().getRequiredPrimaryTypeNames())); Set<String> s2 = new HashSet<String>(Arrays.asList(getNewDef().getRequiredPrimaryTypeNames()));
if (isModified() && type == TRIVIAL) { boolean b1 = getOldDef().allowsSameNameSiblings(); boolean b2 = getNewDef().allowsSameNameSiblings(); if (b1 != b2 && !b2) { Set<String> s1 = new HashSet<String>(Arrays.asList(getOldDef().getRequiredPrimaryTypeNames())); Set<String> s2 = new HashSet<String>(Arrays.asList(getNewDef().getRequiredPrimaryTypeNames()));
private boolean alreadyMatched(final List<ChildNodeDefDiff> result, final NodeDefinition newDef, final NodeDefinition oldDef, final AtomicInteger allowedNewNull, final AtomicInteger allowedOldNull) { boolean containsNewDef = false, containsOldDef = false; for (ChildNodeDefDiff d : result) { if (d.getNewDef() != null && d.getNewDef().equals(newDef)) { containsNewDef = true; break; } if (d.getOldDef() != null && d.getOldDef().equals(oldDef)) { containsOldDef = true; break; } } if (oldDef == null) { if (allowedOldNull.get() < 1) { containsOldDef = true; } } if (newDef == null) { if (allowedNewNull.get() < 1) { containsNewDef = true; } } return containsNewDef || containsOldDef; } }
private boolean alreadyMatched(final List<ChildNodeDefDiff> result, final NodeDefinition newDef, final NodeDefinition oldDef, final AtomicInteger allowedNewNull, final AtomicInteger allowedOldNull) { boolean containsNewDef = false, containsOldDef = false; for (ChildNodeDefDiff d : result) { if (d.getNewDef() != null && d.getNewDef().equals(newDef)) { containsNewDef = true; break; } if (d.getOldDef() != null && d.getOldDef().equals(oldDef)) { containsOldDef = true; break; } } if (oldDef == null) { if (allowedOldNull.get() < 1) { containsOldDef = true; } } if (newDef == null) { if (allowedNewNull.get() < 1) { containsNewDef = true; } } return containsNewDef || containsOldDef; } }
/** * @return diff type */ private int buildChildNodeDefDiffs() { int maxType = NONE; final Map<NodeDefinitionId, List<NodeDefinition>> oldDefs = collectChildNodeDefs(oldDef.getDeclaredChildNodeDefinitions()); final Map<NodeDefinitionId, List<NodeDefinition>> newDefs = collectChildNodeDefs(newDef.getDeclaredChildNodeDefinitions()); for (NodeDefinitionId defId : oldDefs.keySet()) { final ChildNodeDefDiffs childNodeDefDiffs = new ChildNodeDefDiffs(oldDefs.get(defId), newDefs.get(defId)); this.childNodeDefDiffs.addAll(childNodeDefDiffs.getChildNodeDefDiffs()); newDefs.remove(defId); } for (NodeDefinitionId defId : newDefs.keySet()) { final ChildNodeDefDiffs childNodeDefDiffs = new ChildNodeDefDiffs(null, newDefs.get(defId)); this.childNodeDefDiffs.addAll(childNodeDefDiffs.getChildNodeDefDiffs()); } for (ChildNodeDefDiff diff : childNodeDefDiffs) { if (diff.getType() > maxType) { maxType = diff.getType(); } } return maxType; }
/** * @return diff type */ private int buildChildNodeDefDiffs() { int maxType = NONE; final Map<NodeDefinitionId, List<NodeDefinition>> oldDefs = collectChildNodeDefs(oldDef.getDeclaredChildNodeDefinitions()); final Map<NodeDefinitionId, List<NodeDefinition>> newDefs = collectChildNodeDefs(newDef.getDeclaredChildNodeDefinitions()); for (NodeDefinitionId defId : oldDefs.keySet()) { final ChildNodeDefDiffs childNodeDefDiffs = new ChildNodeDefDiffs(oldDefs.get(defId), newDefs.get(defId)); this.childNodeDefDiffs.addAll(childNodeDefDiffs.getChildNodeDefDiffs()); newDefs.remove(defId); } for (NodeDefinitionId defId : newDefs.keySet()) { final ChildNodeDefDiffs childNodeDefDiffs = new ChildNodeDefDiffs(null, newDefs.get(defId)); this.childNodeDefDiffs.addAll(childNodeDefDiffs.getChildNodeDefDiffs()); } for (ChildNodeDefDiff diff : childNodeDefDiffs) { if (diff.getType() > maxType) { maxType = diff.getType(); } } return maxType; }
private boolean alreadyMatched(final List<ChildNodeDefDiff> result, final NodeDefinition newDef, final NodeDefinition oldDef, final AtomicInteger allowedNewNull, final AtomicInteger allowedOldNull) { boolean containsNewDef = false, containsOldDef = false; for (ChildNodeDefDiff d : result) { if (d.getNewDef() != null && d.getNewDef().equals(newDef)) { containsNewDef = true; break; } if (d.getOldDef() != null && d.getOldDef().equals(oldDef)) { containsOldDef = true; break; } } if (oldDef == null) { if (allowedOldNull.get() < 1) { containsOldDef = true; } } if (newDef == null) { if (allowedNewNull.get() < 1) { containsNewDef = true; } } return containsNewDef || containsOldDef; } }