+ private static final Comparator<Entry<YangInstanceIdentifier, ?>> MAP_ENTRY_COMPARATOR = new Comparator<Entry<YangInstanceIdentifier, ?>>() {
+ @Override
+ public int compare(final Entry<YangInstanceIdentifier, ?> left,
+ final Entry<YangInstanceIdentifier, ?> right) {
+ final Iterator<?> li = left.getKey().getPathArguments().iterator();
+ final Iterator<?> ri = right.getKey().getPathArguments().iterator();
+
+ // Iterate until left is exhausted...
+ while (li.hasNext()) {
+ if (!ri.hasNext()) {
+ // Left is deeper
+ return 1;
+ }
+
+ li.next();
+ ri.next();
+ }
+
+ // Check if right is exhausted
+ return ri.hasNext() ? -1 : 0;
+ }
+ };
+
+ private static <T> Iterable<Entry<YangInstanceIdentifier,T>> sortedEntries(final Map<YangInstanceIdentifier, T> map) {
+ if (!map.isEmpty()) {
+ ArrayList<Entry<YangInstanceIdentifier, T>> entries = new ArrayList<>(map.entrySet());
+ Collections.sort(entries, MAP_ENTRY_COMPARATOR);
+ return entries;
+ } else {
+ return Collections.emptySet();
+ }
+ }
+
+ protected Set<InstanceIdentifier<?>> toBinding(InstanceIdentifier<?> path,
+ final Set<YangInstanceIdentifier> normalized) {