- 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,