Merge "Bug 576 Fixes of critical issues for YT components"
authorTony Tkacik <ttkacik@cisco.com>
Mon, 15 Sep 2014 14:52:52 +0000 (14:52 +0000)
committerGerrit Code Review <gerrit@opendaylight.org>
Mon, 15 Sep 2014 14:52:52 +0000 (14:52 +0000)
code-generator/binding-generator-impl/src/main/java/org/opendaylight/yangtools/sal/binding/generator/impl/LazyGeneratedCodecRegistry.java
common/features-test/src/main/java/org/opendaylight/yangtools/featuretest/PerRepoTestRunner.java
common/util/src/main/java/org/opendaylight/yangtools/util/Identifiables.java
yang/yang-data-impl/src/main/java/org/opendaylight/yangtools/yang/data/impl/CompositeNodeTOImpl.java
yang/yang-data-impl/src/main/java/org/opendaylight/yangtools/yang/data/impl/ImmutableCompositeNode.java
yang/yang-data-impl/src/main/java/org/opendaylight/yangtools/yang/data/impl/NodeUtils.java
yang/yang-data-impl/src/main/java/org/opendaylight/yangtools/yang/data/impl/codec/xml/XmlDocumentUtils.java
yang/yang-data-impl/src/main/java/org/opendaylight/yangtools/yang/data/impl/codec/xml/XmlStreamUtils.java
yang/yang-data-impl/src/main/java/org/opendaylight/yangtools/yang/data/impl/schema/SchemaUtils.java
yang/yang-data-impl/src/main/java/org/opendaylight/yangtools/yang/data/impl/schema/tree/ModifiedNode.java
yang/yang-data-impl/src/main/java/org/opendaylight/yangtools/yang/data/impl/schema/tree/NormalizedNodeContainerModificationStrategy.java

index 65e80d05843cb5566be494788b2551d6980dd607..f600d8fbdf78458127de1c79c3409e33577a9f91 100644 (file)
@@ -679,8 +679,7 @@ class LazyGeneratedCodecRegistry implements CodecRegistry, SchemaContextListener
             if (implementation == null) {
                 implementation = tryToLoadImplementationImpl(inputType);
             }
-
-            return null;
+            return implementation;
         }
 
         private T tryToLoadImplementationImpl(final Class<? extends DataContainer> inputType) {
index 9170326c3d4d6a49bd81e98b6ecb8eafcf270ec0..3ab30dd1e412a92a27e03e9f4fec2c63ed550fe1 100644 (file)
@@ -76,10 +76,9 @@ public class PerRepoTestRunner extends ParentRunner<PerFeatureRunner> {
     }
 
     protected List<PerFeatureRunner> runnersFromFeatures(final URL repoURL, final Features features,final Class<?> testClass) throws InitializationError {
-        List<PerFeatureRunner> runners = new ArrayList<PerFeatureRunner>();
-        List<Feature> featureList = new ArrayList<Feature>();
-        featureList = features.getFeature();
-        for(Feature f : featureList) {
+        final List<PerFeatureRunner> runners = new ArrayList<>();
+        final List<Feature> featureList = features.getFeature();
+        for(final Feature f : featureList) {
             runners.add(new PerFeatureRunner(repoURL, f.getName(), f.getVersion(),testClass));
         }
         return runners;
index e8b14bf29d2ef41a98a6468d8b7381ab2946a237..2e5ca558b71487a567066e4833304cea4379857a 100644 (file)
@@ -7,6 +7,8 @@
  */
 package org.opendaylight.yangtools.util;
 
+import com.google.common.base.Preconditions;
+import javax.annotation.Nonnull;
 import org.opendaylight.yangtools.concepts.Identifiable;
 
 import com.google.common.base.Function;
@@ -14,7 +16,8 @@ import com.google.common.base.Function;
 public final class Identifiables {
     private static final Function<Identifiable<Object>, Object> EXTRACT_IDENTIFIER = new Function<Identifiable<Object>, Object>() {
         @Override
-        public Object apply(final Identifiable<Object> input) {
+        public Object apply(final @Nonnull Identifiable<Object> input) {
+            Preconditions.checkNotNull(input);
             return input.getIdentifier();
         }
     };
index 7d5b8bb330e8cd46966d4213ab62e1f0b58dbfc4..3e59659d2e106eb397ef5fefa429df967ba7baa4 100644 (file)
@@ -155,7 +155,7 @@ public class CompositeNodeTOImpl extends AbstractNodeTO<List<Node<?>>> implement
 
     @Override
     public String toString() {
-        return super.toString() + ", children.size = " + (getChildren() != null ? getChildren().size() : "n/a");
+        return super.toString() + ", children.size = " + (!getChildren().isEmpty() ? getChildren().size() : "n/a");
     }
 
     @Override
index 1d56fd660104b4cdb6fef0b244194e0380d49b29..fc37a26923ccc971e7053e31a1aa500ac9fc91b8 100644 (file)
@@ -180,7 +180,7 @@ public final class ImmutableCompositeNode extends AbstractNodeTO<List<Node<?>>>
 
     @Override
     public String toString() {
-        return super.toString() + ", children.size = " + (getChildren() != null ? getChildren().size() : "n/a");
+        return super.toString() + ", children.size = " + (!getChildren().isEmpty() ? getChildren().size() : "n/a");
     }
 
     @Override
index f3a0d7b2db38d3873254c2954fa38ce98adc6a1f..b1ff225026b543affbbc2ef432f5a776b9fab0e1 100644 (file)
@@ -9,6 +9,7 @@ package org.opendaylight.yangtools.yang.data.impl;
 
 import com.google.common.base.Function;
 import com.google.common.base.Joiner;
+import com.google.common.base.Preconditions;
 import com.google.common.collect.Iterables;
 import com.google.common.collect.Lists;
 import com.google.common.collect.Maps;
@@ -21,6 +22,7 @@ import java.util.HashMap;
 import java.util.List;
 import java.util.Map;
 
+import javax.annotation.Nonnull;
 import javax.xml.parsers.DocumentBuilder;
 import javax.xml.parsers.DocumentBuilderFactory;
 import javax.xml.parsers.ParserConfigurationException;
@@ -56,7 +58,8 @@ public abstract class NodeUtils {
     private static final Logger LOG = LoggerFactory.getLogger(NodeUtils.class);
     private static final Function<QName, String> LOCALNAME_FUNCTION = new Function<QName, String>() {
         @Override
-        public String apply(final QName input) {
+        public String apply(final @Nonnull QName input) {
+            Preconditions.checkNotNull(input);
             return input.getLocalName();
         }
     };
index d49d7e599d65f4f162360e37f647d4204d7a6717..0375310ad80bf94193c12b4c388311a3fcf4623f 100644 (file)
@@ -26,6 +26,7 @@ import java.util.Map.Entry;
 import java.util.Set;
 
 import javax.activation.UnsupportedDataTypeException;
+import javax.annotation.Nonnull;
 import javax.xml.parsers.DocumentBuilder;
 import javax.xml.parsers.DocumentBuilderFactory;
 import javax.xml.parsers.ParserConfigurationException;
@@ -335,11 +336,12 @@ public class XmlDocumentUtils {
     }
 
     public static List<Node<?>> toDomNodes(final Element element, final Optional<? extends Iterable<DataSchemaNode>> context, final SchemaContext schemaCtx) {
-        return forEachChild(element.getChildNodes(),schemaCtx, new Function<ElementWithSchemaContext, Optional<Node<?>>>() {
+        return forEachChild(element.getChildNodes(), schemaCtx, new Function<ElementWithSchemaContext, Optional<Node<?>>>() {
 
             @Override
-            public Optional<Node<?>> apply(final ElementWithSchemaContext input) {
+            public Optional<Node<?>> apply(final @Nonnull ElementWithSchemaContext input) {
                 if (context.isPresent()) {
+                    Preconditions.checkNotNull(input);
                     QName partialQName = qNameFromElement(input.getElement());
                     Optional<DataSchemaNode> schemaNode = findFirstSchema(partialQName, context.get());
                     if (schemaNode.isPresent()) {
@@ -351,7 +353,6 @@ public class XmlDocumentUtils {
             }
 
         });
-
     }
 
     public static List<Node<?>> toDomNodes(final Element element, final Optional<? extends Iterable<DataSchemaNode>> context) {
index aa379dc963f11606150fe370339eb21895d7edb8..8d3890980bfedc11d39b1dbb09efcd663d0c6885 100644 (file)
@@ -118,12 +118,11 @@ public class XmlStreamUtils {
     }
 
     /**
-     * Short-hand for {@link #writeDataDocument(XMLStreamWriter, CompositeNode, SchemaNode, XmlCodecProvider)} with
+     * Short-hand for {@link #writeDocument(XMLStreamWriter, CompositeNode, SchemaNode)})} with
      * null SchemaNode.
      *
      * @param writer XML Stream writer
      * @param data data node
-     * @param schema corresponding schema node, may be null
      * @throws XMLStreamException if an encoding problem occurs
      */
     public void writeDocument(final XMLStreamWriter writer, final CompositeNode data) throws XMLStreamException {
@@ -194,13 +193,9 @@ public class XmlStreamUtils {
                 DataSchemaNode childSchema = null;
                 if (schema instanceof DataNodeContainer) {
                     childSchema = SchemaUtils.findFirstSchema(child.getNodeType(), ((DataNodeContainer) schema).getChildNodes()).orNull();
-                    if (LOG.isDebugEnabled()) {
-                        if (childSchema == null) {
-                            LOG.debug("Probably the data node \"{}\" does not conform to schema", child == null ? "" : child.getNodeType().getLocalName());
-                        }
-                    }
+                } else if ((childSchema == null) && LOG.isDebugEnabled()) {
+                    LOG.debug("Probably the data node \"{}\" does not conform to schema", child == null ? "" : child.getNodeType().getLocalName());
                 }
-
                 writeElement(writer, child, childSchema);
             }
         }
index 84ad453df877a9f7226d8a2e6f218b01c3e7207c..9b00b71259bc6d59bc7c4a073d2a07cf0de4711a 100644 (file)
@@ -18,6 +18,7 @@ import java.util.Collections;
 import java.util.HashSet;
 import java.util.Map;
 import java.util.Set;
+import javax.annotation.Nonnull;
 import org.opendaylight.yangtools.yang.common.QName;
 import org.opendaylight.yangtools.yang.data.api.YangInstanceIdentifier;
 import org.opendaylight.yangtools.yang.data.api.schema.AugmentationNode;
@@ -90,7 +91,8 @@ public final class SchemaUtils {
 
             HashSet<QName> qNamesFromAugment = Sets.newHashSet(Collections2.transform(augment.getChildNodes(), new Function<DataSchemaNode, QName>() {
                 @Override
-                public QName apply(final DataSchemaNode input) {
+                public QName apply(final @Nonnull DataSchemaNode input) {
+                    Preconditions.checkNotNull(input);
                     return input.getQName();
                 }
             }));
index 27b42cc8fe55116e8a979f8602cf87cd0acc84cb..c4933d08b3aeb22c46d76f778cb8a358ece0ecfc 100644 (file)
@@ -8,8 +8,10 @@
 package org.opendaylight.yangtools.yang.data.impl.schema.tree;
 
 import com.google.common.base.Optional;
+import com.google.common.base.Preconditions;
 import com.google.common.base.Predicate;
 import java.util.HashMap;
+import javax.annotation.Nonnull;
 import org.opendaylight.yangtools.concepts.Identifiable;
 import org.opendaylight.yangtools.yang.data.api.YangInstanceIdentifier.PathArgument;
 import org.opendaylight.yangtools.yang.data.api.schema.NormalizedNode;
@@ -34,7 +36,8 @@ final class ModifiedNode implements StoreTreeNode<ModifiedNode>, Identifiable<Pa
 
     public static final Predicate<ModifiedNode> IS_TERMINAL_PREDICATE = new Predicate<ModifiedNode>() {
         @Override
-        public boolean apply(final ModifiedNode input) {
+        public boolean apply(final @Nonnull ModifiedNode input) {
+            Preconditions.checkNotNull(input);
             switch (input.getType()) {
             case DELETE:
             case MERGE:
index 03b7c3ee23d8eb76033e644d2d79a8a173f0ec04..7ca902092c6bd9d852b0006fb5aee9ad458a531b 100644 (file)
@@ -51,9 +51,6 @@ abstract class NormalizedNodeContainerModificationStrategy extends SchemaAwareAp
 
     @Override
     public void verifyStructure(final ModifiedNode modification) throws IllegalArgumentException {
-        if (modification.getType() == ModificationType.WRITE) {
-
-        }
         for (ModifiedNode childModification : modification.getChildren()) {
             resolveChildOperation(childModification.getIdentifier()).verifyStructure(childModification);
         }