public ConfigDiffElement(Set<String> before, Set<String> after) { _before = before; _after = after; _diff = new TreeSet<>(); _diffInfo = new TreeMap<>(); _identical = new TreeSet<>(); _inBeforeOnly = CommonUtil.difference(before, after, TreeSet::new); _inAfterOnly = CommonUtil.difference(after, before, TreeSet::new); }
private void generateDiff() { Set<String> beforeNodes = _before._nodes.keySet(); Set<String> afterNodes = _after._nodes.keySet(); _inBeforeOnly = CommonUtil.difference(beforeNodes, afterNodes, TreeSet::new); _inAfterOnly = CommonUtil.difference(afterNodes, beforeNodes, TreeSet::new); Set<String> commonNodes = CommonUtil.intersection(beforeNodes, afterNodes, TreeSet::new); for (String node : commonNodes) { Configuration before = _before._nodes.get(node); Configuration after = _after._nodes.get(node); ConfigurationDiff currentDiff = new ConfigurationDiff(before, after); if (!currentDiff.isEmpty()) { _configDiff.put(node, currentDiff); } else { _identical.add(node); } } summarizeIdentical(); if (_configDiff.isEmpty() && _inBeforeOnly.isEmpty() && _inAfterOnly.isEmpty()) { _identical = null; } }
public JsonPathDiffResult(JsonPathResult before, JsonPathResult after) { _added = new TreeMap<>(); _removed = new TreeMap<>(); // _path = before.getPath(); SortedMap<String, JsonPathResultEntry> beforeResult = before.getResult(); SortedMap<String, JsonPathResultEntry> afterResult = after.getResult(); Set<String> beforeKeys = beforeResult.keySet(); Set<String> afterKeys = afterResult.keySet(); Set<String> removed = CommonUtil.difference(beforeKeys, afterKeys, TreeSet::new); Set<String> added = CommonUtil.difference(afterKeys, beforeKeys, TreeSet::new); Set<String> common = CommonUtil.intersection(afterKeys, beforeKeys, TreeSet::new); for (String removedPath : removed) { _removed.put(removedPath, beforeResult.get(removedPath)); } for (String addedPath : added) { _added.put(addedPath, afterResult.get(addedPath)); } for (String commonPath : common) { JsonPathResultEntry beforeEntry = beforeResult.get(commonPath); JsonPathResultEntry afterEntry = afterResult.get(commonPath); JsonNode beforeNode = beforeEntry.getSuffix(); JsonNode afterNode = afterEntry.getSuffix(); if (!beforeNode.equals(afterNode)) { _removed.put(commonPath, beforeEntry); _added.put(commonPath, afterEntry); } } }
SortedSet<String> lhsOnlyKeys = CommonUtil.difference(lhsKeys, rhsKeys, TreeSet::new); SortedSet<String> rhsOnlyKeys = CommonUtil.difference(rhsKeys, lhsKeys, TreeSet::new); for (String lhsOnlyKey : lhsOnlyKeys) { String removedKeyName = REMOVED_ITEM_CODE + lhsOnlyKey;