BUG-865: replaced deprecated code from yang-binding. 44/7944/1
authorMartin Vitez <mvitez@cisco.com>
Thu, 12 Jun 2014 13:03:19 +0000 (15:03 +0200)
committerMartin Vitez <mvitez@cisco.com>
Thu, 12 Jun 2014 13:03:19 +0000 (15:03 +0200)
Removed groupId declaration from pom (duplicate of parent groupId).

Signed-off-by: Martin Vitez <mvitez@cisco.com>
yang/yang-binding/pom.xml
yang/yang-binding/src/main/java/org/opendaylight/yangtools/yang/binding/util/DataObjectReadingUtil.java

index 30c62fb271e21c19f48b2748c02ae496906e16e5..9df939d2a432005969706884c4f1e81417462f6b 100644 (file)
@@ -17,7 +17,6 @@
     </parent>
 
     <modelVersion>4.0.0</modelVersion>
-    <groupId>org.opendaylight.yangtools</groupId>
     <artifactId>yang-binding</artifactId>
     <name>${project.artifactId}</name>
     <description>Java binding for YANG</description>
index 4fd4e17c2b25c56655da9ea479727462d10e42e0..b187013b179a0c5a89f481570f15ccf554ee0044 100644 (file)
@@ -3,13 +3,17 @@ package org.opendaylight.yangtools.yang.binding.util;
 import static com.google.common.base.Preconditions.checkArgument;
 import static com.google.common.base.Preconditions.checkState;
 
+import com.google.common.base.Optional;
+import com.google.common.collect.ImmutableMap;
+import com.google.common.collect.ImmutableMap.Builder;
 import java.lang.reflect.InvocationTargetException;
 import java.lang.reflect.Method;
+import java.util.ArrayList;
 import java.util.Collections;
+import java.util.Iterator;
 import java.util.List;
 import java.util.Map;
 import java.util.Map.Entry;
-
 import org.opendaylight.yangtools.yang.binding.Augmentable;
 import org.opendaylight.yangtools.yang.binding.Augmentation;
 import org.opendaylight.yangtools.yang.binding.DataContainer;
@@ -21,10 +25,6 @@ import org.opendaylight.yangtools.yang.binding.InstanceIdentifier.IdentifiableIt
 import org.opendaylight.yangtools.yang.binding.InstanceIdentifier.Item;
 import org.opendaylight.yangtools.yang.binding.InstanceIdentifier.PathArgument;
 
-import com.google.common.base.Optional;
-import com.google.common.collect.ImmutableMap;
-import com.google.common.collect.ImmutableMap.Builder;
-
 public class DataObjectReadingUtil {
 
     private DataObjectReadingUtil() {
@@ -48,10 +48,7 @@ public class DataObjectReadingUtil {
         checkArgument(childPath != null, "Child path must not be null");
         checkArgument(parentPath.containsWildcarded(childPath), "Parent object must be parent of child.");
 
-        final int commonOffset = parentPath.getPath().size();
-        final int lastIndex = childPath.getPath().size();
-        List<PathArgument> pathArgs = childPath.getPath().subList(commonOffset, lastIndex);
-
+        List<PathArgument> pathArgs = subList(parentPath.getPathArguments(), childPath.getPathArguments());
         @SuppressWarnings("rawtypes")
         Map<InstanceIdentifier, DataContainer> lastFound = Collections
                 .<InstanceIdentifier, DataContainer> singletonMap(parentPath, parent);
@@ -316,4 +313,31 @@ public class DataObjectReadingUtil {
             return (DataContainer) potential;
         }
     }
+
+    /**
+     * Create sublist view of child from element on [size-of-parent] position to
+     * last element.
+     *
+     * @param parent
+     * @param child
+     * @return sublist view of child argument
+     * @throws IllegalArgumentException
+     *             if parent argument is bigger than child
+     */
+    private static <P, C> List<C> subList(Iterable<P> parent, Iterable<C> child) {
+        Iterator<P> iParent = parent.iterator();
+        List<C> result = new ArrayList<>();
+        for (C arg : child) {
+            if (iParent.hasNext()) {
+                iParent.next();
+            } else {
+                result.add(arg);
+            }
+        }
+        if (iParent.hasNext()) {
+            throw new IllegalArgumentException("Parent argument is bigger than child.");
+        }
+        return result;
+    }
+
 }