BUG 1131: untangling package cyclic dependencies in yang-parser-impl 66/7866/10
authorTony Tkacik <ttkacik@cisco.com>
Wed, 4 Jun 2014 13:54:22 +0000 (15:54 +0200)
committerRobert Varga <rovarga@cisco.com>
Sat, 21 Jun 2014 10:01:15 +0000 (12:01 +0200)
This untanglement of package cyclic dependencies introduced
better code organization, when more-obvious components
logical blocks are available, most of moved classes
were private to parser and was never meant for public consumption.

  - yang.model.util - Utility and simple implementations of yang-model-api
  - yang.parser.builder.* - Builders for yang-model-api with
semantic functionality
  - yang.parser.impl - Actual implementation of YANG Parser
  - yang.parser.impl.util - Utility functions on top of YANG Parser
  - yang.parser.util - Utility classes, potential candidates for movements.

Change-Id: Ia5718f4712d91df7cea0f55d4cc1a502d376faea
Signed-off-by: Tony Tkacik <ttkacik@cisco.com>
Signed-off-by: Robert Varga <rovarga@cisco.com>
69 files changed:
code-generator/binding-generator-impl/src/test/java/org/opendaylight/yangtools/sal/binding/generator/impl/RefineTest.java
code-generator/binding-type-provider/src/main/java/org/opendaylight/yangtools/sal/binding/yang/types/TypeProviderImpl.java
yang/yang-model-util/src/main/java/org/opendaylight/yangtools/yang/model/util/BitImpl.java [moved from yang/yang-parser-impl/src/main/java/org/opendaylight/yangtools/yang/parser/util/BitImpl.java with 80% similarity]
yang/yang-model-util/src/main/java/org/opendaylight/yangtools/yang/model/util/ModuleImportImpl.java [moved from yang/yang-parser-impl/src/main/java/org/opendaylight/yangtools/yang/parser/util/ModuleImportImpl.java with 97% similarity]
yang/yang-model-util/src/main/java/org/opendaylight/yangtools/yang/model/util/MustDefinitionImpl.java [moved from yang/yang-parser-impl/src/main/java/org/opendaylight/yangtools/yang/parser/util/MustDefinitionImpl.java with 58% similarity]
yang/yang-model-util/src/test/java/org/opendaylight/yangtools/yang/model/util/BitImplTest.java [moved from yang/yang-parser-impl/src/test/java/org/opendaylight/yangtools/yang/parser/util/BitImplTest.java with 78% similarity]
yang/yang-model-util/src/test/java/org/opendaylight/yangtools/yang/model/util/MustDefinitionImplTest.java [new file with mode: 0644]
yang/yang-parser-impl/src/main/java/org/opendaylight/yangtools/yang/parser/builder/api/Builder.java
yang/yang-parser-impl/src/main/java/org/opendaylight/yangtools/yang/parser/builder/api/ConstraintsBuilder.java [new file with mode: 0644]
yang/yang-parser-impl/src/main/java/org/opendaylight/yangtools/yang/parser/builder/api/DataSchemaNodeBuilder.java
yang/yang-parser-impl/src/main/java/org/opendaylight/yangtools/yang/parser/builder/api/ExtensionBuilder.java [new file with mode: 0644]
yang/yang-parser-impl/src/main/java/org/opendaylight/yangtools/yang/parser/builder/api/GroupingBuilder.java
yang/yang-parser-impl/src/main/java/org/opendaylight/yangtools/yang/parser/builder/api/RefineBuilder.java [new file with mode: 0644]
yang/yang-parser-impl/src/main/java/org/opendaylight/yangtools/yang/parser/builder/api/UnknownSchemaNodeBuilder.java [new file with mode: 0644]
yang/yang-parser-impl/src/main/java/org/opendaylight/yangtools/yang/parser/builder/api/UsesNodeBuilder.java
yang/yang-parser-impl/src/main/java/org/opendaylight/yangtools/yang/parser/builder/impl/AnyXmlBuilder.java
yang/yang-parser-impl/src/main/java/org/opendaylight/yangtools/yang/parser/builder/impl/AugmentationSchemaBuilderImpl.java
yang/yang-parser-impl/src/main/java/org/opendaylight/yangtools/yang/parser/builder/impl/BuilderUtils.java [moved from yang/yang-parser-impl/src/main/java/org/opendaylight/yangtools/yang/parser/util/ParserUtils.java with 93% similarity]
yang/yang-parser-impl/src/main/java/org/opendaylight/yangtools/yang/parser/builder/impl/ChoiceBuilder.java
yang/yang-parser-impl/src/main/java/org/opendaylight/yangtools/yang/parser/builder/impl/ChoiceCaseBuilder.java
yang/yang-parser-impl/src/main/java/org/opendaylight/yangtools/yang/parser/builder/impl/ConstraintsBuilderImpl.java [moved from yang/yang-parser-impl/src/main/java/org/opendaylight/yangtools/yang/parser/builder/impl/ConstraintsBuilder.java with 77% similarity]
yang/yang-parser-impl/src/main/java/org/opendaylight/yangtools/yang/parser/builder/impl/ContainerSchemaNodeBuilder.java
yang/yang-parser-impl/src/main/java/org/opendaylight/yangtools/yang/parser/builder/impl/CopyUtils.java [moved from yang/yang-parser-impl/src/main/java/org/opendaylight/yangtools/yang/parser/util/CopyUtils.java with 92% similarity]
yang/yang-parser-impl/src/main/java/org/opendaylight/yangtools/yang/parser/builder/impl/DeviationBuilder.java
yang/yang-parser-impl/src/main/java/org/opendaylight/yangtools/yang/parser/builder/impl/ExtensionBuilderImpl.java [moved from yang/yang-parser-impl/src/main/java/org/opendaylight/yangtools/yang/parser/builder/impl/ExtensionBuilder.java with 83% similarity]
yang/yang-parser-impl/src/main/java/org/opendaylight/yangtools/yang/parser/builder/impl/FeatureBuilder.java
yang/yang-parser-impl/src/main/java/org/opendaylight/yangtools/yang/parser/builder/impl/GroupingBuilderImpl.java
yang/yang-parser-impl/src/main/java/org/opendaylight/yangtools/yang/parser/builder/impl/GroupingUtils.java [moved from yang/yang-parser-impl/src/main/java/org/opendaylight/yangtools/yang/parser/util/GroupingUtils.java with 87% similarity]
yang/yang-parser-impl/src/main/java/org/opendaylight/yangtools/yang/parser/builder/impl/IdentitySchemaNodeBuilder.java
yang/yang-parser-impl/src/main/java/org/opendaylight/yangtools/yang/parser/builder/impl/IdentityrefTypeBuilder.java
yang/yang-parser-impl/src/main/java/org/opendaylight/yangtools/yang/parser/builder/impl/LeafListSchemaNodeBuilder.java
yang/yang-parser-impl/src/main/java/org/opendaylight/yangtools/yang/parser/builder/impl/LeafSchemaNodeBuilder.java
yang/yang-parser-impl/src/main/java/org/opendaylight/yangtools/yang/parser/builder/impl/ListSchemaNodeBuilder.java
yang/yang-parser-impl/src/main/java/org/opendaylight/yangtools/yang/parser/builder/impl/ModuleBuilder.java
yang/yang-parser-impl/src/main/java/org/opendaylight/yangtools/yang/parser/builder/impl/NotificationBuilder.java
yang/yang-parser-impl/src/main/java/org/opendaylight/yangtools/yang/parser/builder/impl/RefineHolderImpl.java [moved from yang/yang-parser-impl/src/main/java/org/opendaylight/yangtools/yang/parser/util/RefineHolder.java with 58% similarity]
yang/yang-parser-impl/src/main/java/org/opendaylight/yangtools/yang/parser/builder/impl/RefineUtils.java [moved from yang/yang-parser-impl/src/main/java/org/opendaylight/yangtools/yang/parser/util/RefineUtils.java with 85% similarity]
yang/yang-parser-impl/src/main/java/org/opendaylight/yangtools/yang/parser/builder/impl/RpcDefinitionBuilder.java
yang/yang-parser-impl/src/main/java/org/opendaylight/yangtools/yang/parser/builder/impl/TypeDefinitionBuilderImpl.java
yang/yang-parser-impl/src/main/java/org/opendaylight/yangtools/yang/parser/builder/impl/TypeUtils.java [moved from yang/yang-parser-impl/src/main/java/org/opendaylight/yangtools/yang/parser/util/TypeUtils.java with 97% similarity]
yang/yang-parser-impl/src/main/java/org/opendaylight/yangtools/yang/parser/builder/impl/UnionTypeBuilder.java
yang/yang-parser-impl/src/main/java/org/opendaylight/yangtools/yang/parser/builder/impl/UnknownSchemaNodeBuilderImpl.java [moved from yang/yang-parser-impl/src/main/java/org/opendaylight/yangtools/yang/parser/builder/impl/UnknownSchemaNodeBuilder.java with 73% similarity]
yang/yang-parser-impl/src/main/java/org/opendaylight/yangtools/yang/parser/builder/impl/UsesNodeBuilderImpl.java
yang/yang-parser-impl/src/main/java/org/opendaylight/yangtools/yang/parser/builder/util/AbstractBuilder.java [moved from yang/yang-parser-impl/src/main/java/org/opendaylight/yangtools/yang/parser/builder/api/AbstractBuilder.java with 85% similarity]
yang/yang-parser-impl/src/main/java/org/opendaylight/yangtools/yang/parser/builder/util/AbstractDataNodeContainerBuilder.java [moved from yang/yang-parser-impl/src/main/java/org/opendaylight/yangtools/yang/parser/builder/api/AbstractDataNodeContainerBuilder.java with 92% similarity]
yang/yang-parser-impl/src/main/java/org/opendaylight/yangtools/yang/parser/builder/util/AbstractSchemaNodeBuilder.java [moved from yang/yang-parser-impl/src/main/java/org/opendaylight/yangtools/yang/parser/builder/api/AbstractSchemaNodeBuilder.java with 95% similarity]
yang/yang-parser-impl/src/main/java/org/opendaylight/yangtools/yang/parser/builder/util/AbstractTypeAwareBuilder.java [moved from yang/yang-parser-impl/src/main/java/org/opendaylight/yangtools/yang/parser/builder/api/AbstractTypeAwareBuilder.java with 86% similarity]
yang/yang-parser-impl/src/main/java/org/opendaylight/yangtools/yang/parser/builder/util/Comparators.java [moved from yang/yang-parser-impl/src/main/java/org/opendaylight/yangtools/yang/parser/util/Comparators.java with 84% similarity]
yang/yang-parser-impl/src/main/java/org/opendaylight/yangtools/yang/parser/impl/BasicValidations.java [moved from yang/yang-parser-impl/src/main/java/org/opendaylight/yangtools/yang/validator/BasicValidations.java with 99% similarity]
yang/yang-parser-impl/src/main/java/org/opendaylight/yangtools/yang/parser/impl/GroupingSort.java [moved from yang/yang-parser-impl/src/main/java/org/opendaylight/yangtools/yang/parser/util/GroupingSort.java with 97% similarity]
yang/yang-parser-impl/src/main/java/org/opendaylight/yangtools/yang/parser/impl/ParserListenerUtils.java [moved from yang/yang-parser-impl/src/main/java/org/opendaylight/yangtools/yang/parser/util/ParserListenerUtils.java with 97% similarity]
yang/yang-parser-impl/src/main/java/org/opendaylight/yangtools/yang/parser/impl/ValidationUtil.java [moved from yang/yang-parser-impl/src/main/java/org/opendaylight/yangtools/yang/validator/ValidationUtil.java with 96% similarity]
yang/yang-parser-impl/src/main/java/org/opendaylight/yangtools/yang/parser/impl/YangModelBasicValidationListener.java [moved from yang/yang-parser-impl/src/main/java/org/opendaylight/yangtools/yang/validator/YangModelBasicValidationListener.java with 99% similarity]
yang/yang-parser-impl/src/main/java/org/opendaylight/yangtools/yang/parser/impl/YangModelBasicValidator.java [moved from yang/yang-parser-impl/src/main/java/org/opendaylight/yangtools/yang/validator/YangModelBasicValidator.java with 96% similarity]
yang/yang-parser-impl/src/main/java/org/opendaylight/yangtools/yang/parser/impl/YangParserImpl.java
yang/yang-parser-impl/src/main/java/org/opendaylight/yangtools/yang/parser/impl/YangParserListenerImpl.java
yang/yang-parser-impl/src/main/java/org/opendaylight/yangtools/yang/parser/impl/util/YangModelDependencyInfo.java
yang/yang-parser-impl/src/main/java/org/opendaylight/yangtools/yang/parser/util/ModuleDependencySort.java
yang/yang-parser-impl/src/main/java/org/opendaylight/yangtools/yang/parser/util/NodeWrappedType.java
yang/yang-parser-impl/src/main/java/org/opendaylight/yangtools/yang/parser/util/UnknownBoundaryNumber.java
yang/yang-parser-impl/src/test/java/org/opendaylight/yangtools/yang/parser/impl/TestUtils.java
yang/yang-parser-impl/src/test/java/org/opendaylight/yangtools/yang/parser/impl/YangModelValidationListTest.java [moved from yang/yang-parser-impl/src/test/java/org/opendaylight/yangtools/yang/validator/YangModelValidationListTest.java with 96% similarity]
yang/yang-parser-impl/src/test/java/org/opendaylight/yangtools/yang/parser/impl/YangModelValidationModuleTest.java [moved from yang/yang-parser-impl/src/test/java/org/opendaylight/yangtools/yang/validator/YangModelValidationModuleTest.java with 97% similarity]
yang/yang-parser-impl/src/test/java/org/opendaylight/yangtools/yang/parser/impl/YangModelValidationSubModuleTest.java [moved from yang/yang-parser-impl/src/test/java/org/opendaylight/yangtools/yang/validator/YangModelValidationSubModuleTest.java with 95% similarity]
yang/yang-parser-impl/src/test/java/org/opendaylight/yangtools/yang/parser/impl/YangModelValidationTest.java [moved from yang/yang-parser-impl/src/test/java/org/opendaylight/yangtools/yang/validator/YangModelValidationTest.java with 97% similarity]
yang/yang-parser-impl/src/test/java/org/opendaylight/yangtools/yang/parser/impl/YangParserTest.java
yang/yang-parser-impl/src/test/java/org/opendaylight/yangtools/yang/parser/util/ModuleDependencySortTest.java
yang/yang-parser-impl/src/test/java/org/opendaylight/yangtools/yang/parser/util/MustDefinitionImplTest.java [deleted file]
yang/yang-parser-impl/src/test/java/org/opendaylight/yangtools/yang/parser/util/RefineHolderTest.java

index daf7f97f0e9d0f69ef91f0064a368de330eea4b0..b6178bcd4ab6febdab2002c319e275ce2382990f 100644 (file)
@@ -33,17 +33,17 @@ import org.opendaylight.yangtools.yang.common.QName;
 import org.opendaylight.yangtools.yang.model.api.MustDefinition;
 import org.opendaylight.yangtools.yang.model.api.SchemaContext;
 import org.opendaylight.yangtools.yang.model.api.SchemaPath;
+import org.opendaylight.yangtools.yang.parser.builder.api.ConstraintsBuilder;
 import org.opendaylight.yangtools.yang.parser.builder.api.DataSchemaNodeBuilder;
+import org.opendaylight.yangtools.yang.parser.builder.api.RefineBuilder;
+import org.opendaylight.yangtools.yang.parser.builder.api.UnknownSchemaNodeBuilder;
 import org.opendaylight.yangtools.yang.parser.builder.api.UsesNodeBuilder;
 import org.opendaylight.yangtools.yang.parser.builder.impl.AnyXmlBuilder;
 import org.opendaylight.yangtools.yang.parser.builder.impl.ChoiceBuilder;
-import org.opendaylight.yangtools.yang.parser.builder.impl.ConstraintsBuilder;
 import org.opendaylight.yangtools.yang.parser.builder.impl.LeafListSchemaNodeBuilder;
 import org.opendaylight.yangtools.yang.parser.builder.impl.ModuleBuilder;
-import org.opendaylight.yangtools.yang.parser.builder.impl.UnknownSchemaNodeBuilder;
+import org.opendaylight.yangtools.yang.parser.builder.impl.RefineUtils;
 import org.opendaylight.yangtools.yang.parser.impl.YangParserImpl;
-import org.opendaylight.yangtools.yang.parser.util.RefineHolder;
-import org.opendaylight.yangtools.yang.parser.util.RefineUtils;
 
 import com.google.common.collect.Lists;
 import com.google.common.collect.Maps;
@@ -91,23 +91,23 @@ public class RefineTest {
         assertEquals("Incorrect number of test files.", 1, testModels.size());
 
         Set<UsesNodeBuilder> usesNodeBuilders = getModuleBuilder().getUsesNodeBuilders();
-        List<RefineHolder> refineHolders = null;
+        List<RefineBuilder> RefineBuilders = null;
         Set<DataSchemaNodeBuilder> dataSchemaNodeBuilders = null;
         for (UsesNodeBuilder usesNodeBuilder : usesNodeBuilders) {
             if (usesNodeBuilder.getGroupingPathAsString().equals("grp")) {
-                refineHolders = usesNodeBuilder.getRefines();
+                RefineBuilders = usesNodeBuilder.getRefines();
                 dataSchemaNodeBuilders = usesNodeBuilder.getParent().getChildNodeBuilders();
                 break;
             }
         }
 
-        assertNotNull("List of refine holders wasn't initialized.", refineHolders);
-        assertEquals("Incorrect number of refine holders", 4, refineHolders.size());
+        assertNotNull("List of refine holders wasn't initialized.", RefineBuilders);
+        assertEquals("Incorrect number of refine holders", 4, RefineBuilders.size());
 
-        checkLflstRefineHolderAndSchemaNodeBuilder("lflst", refineHolders, dataSchemaNodeBuilders);
-        checkChcRefineHolderAndSchemaNodeBuilder("chc", refineHolders, dataSchemaNodeBuilders);
-        checkChc2RefineHolderAndSchemaNodeBuilder("chc2", refineHolders, dataSchemaNodeBuilders);
-        checkAnyXmlRefineHolderAndSchemaNodeBuilder("data", refineHolders, dataSchemaNodeBuilders);
+        checkLflstRefineBuilderAndSchemaNodeBuilder("lflst", RefineBuilders, dataSchemaNodeBuilders);
+        checkChcRefineBuilderAndSchemaNodeBuilder("chc", RefineBuilders, dataSchemaNodeBuilders);
+        checkChc2RefineBuilderAndSchemaNodeBuilder("chc2", RefineBuilders, dataSchemaNodeBuilders);
+        checkAnyXmlRefineBuilderAndSchemaNodeBuilder("data", RefineBuilders, dataSchemaNodeBuilders);
     }
 
     private ModuleBuilder getModuleBuilder() {
@@ -152,9 +152,9 @@ public class RefineTest {
         return moduleBuilder;
     }
 
-    private void checkAnyXmlRefineHolderAndSchemaNodeBuilder(final String string, final List<RefineHolder> refineHolders,
+    private void checkAnyXmlRefineBuilderAndSchemaNodeBuilder(final String string, final List<RefineBuilder> RefineBuilders,
             final Set<DataSchemaNodeBuilder> dataSchemaNodeBuilders) {
-        RefineHolder refHolderData = getRefineHolder("data", refineHolders);
+        RefineBuilder refHolderData = getRefineBuilder("data", RefineBuilders);
 
         QName qname = createQname();
         DataSchemaNodeBuilder builderData = new AnyXmlBuilder("module", 4, qname, createSchemaPath(qname));
@@ -173,9 +173,9 @@ public class RefineTest {
 
     }
 
-    private void checkChc2RefineHolderAndSchemaNodeBuilder(final String nodeName, final List<RefineHolder> refineHolders,
+    private void checkChc2RefineBuilderAndSchemaNodeBuilder(final String nodeName, final List<RefineBuilder> RefineBuilders,
             final Set<DataSchemaNodeBuilder> dataSchemaNodeBuilders) {
-        RefineHolder refHolderChc2 = getRefineHolder("chc2", refineHolders);
+        RefineBuilder refHolderChc2 = getRefineBuilder("chc2", RefineBuilders);
 
         QName qname = createQname();
         List<QName> path = Lists.newArrayList(qname);
@@ -189,9 +189,9 @@ public class RefineTest {
         assertFalse("'chc2' has incorrect value for 'mandatory'", conDefChc2.isMandatory());
     }
 
-    private void checkChcRefineHolderAndSchemaNodeBuilder(final String nodeName, final List<RefineHolder> refineHolders,
+    private void checkChcRefineBuilderAndSchemaNodeBuilder(final String nodeName, final List<RefineBuilder> RefineBuilders,
             final Set<DataSchemaNodeBuilder> dataSchemaNodeBuilders) {
-        RefineHolder refHolderChc = getRefineHolder("chc", refineHolders);
+        RefineBuilder refHolderChc = getRefineBuilder("chc", RefineBuilders);
 
         QName qname = createQname();
         List<QName> path = Lists.newArrayList(qname);
@@ -212,9 +212,9 @@ public class RefineTest {
         findUnknownNode(choiceBuilder, unknownNodeChcValue, unknownNodeChcName);
     }
 
-    private void checkLflstRefineHolderAndSchemaNodeBuilder(final String nodeName, final List<RefineHolder> refineHolders,
+    private void checkLflstRefineBuilderAndSchemaNodeBuilder(final String nodeName, final List<RefineBuilder> RefineBuilders,
             final Set<DataSchemaNodeBuilder> dataSchemaNodeBuilders) {
-        RefineHolder refHolderLflst = getRefineHolder(nodeName, refineHolders);
+        RefineBuilder refHolderLflst = getRefineBuilder(nodeName, RefineBuilders);
 
         QName qname = createQname();
         DataSchemaNodeBuilder builderLflst = new LeafListSchemaNodeBuilder("module", 4, qname, createSchemaPath(qname));
@@ -245,10 +245,10 @@ public class RefineTest {
 
     }
 
-    private RefineHolder getRefineHolder(final String refHolderName, final List<RefineHolder> refineHolders) {
-        for (RefineHolder refineHolder : refineHolders) {
-            if (refineHolder.getName().equals(refHolderName)) {
-                return refineHolder;
+    private RefineBuilder getRefineBuilder(final String refHolderName, final List<RefineBuilder> RefineBuilders) {
+        for (RefineBuilder RefineBuilder : RefineBuilders) {
+            if (RefineBuilder.getTargetPathString().equals(refHolderName)) {
+                return RefineBuilder;
             }
         }
         return null;
index 9b2c2cc90c519d54b2ba0dc3e2719e96b9dc06aa..1dec469b954480df49ed442d788fa38f9d53b46b 100644 (file)
@@ -14,9 +14,6 @@ import static org.opendaylight.yangtools.yang.model.util.SchemaContextUtil.findD
 import static org.opendaylight.yangtools.yang.model.util.SchemaContextUtil.findDataSchemaNodeForRelativeXPath;
 import static org.opendaylight.yangtools.yang.model.util.SchemaContextUtil.findParentModule;
 
-import com.google.common.base.Preconditions;
-import com.google.common.collect.Sets;
-import com.google.common.io.BaseEncoding;
 import java.math.BigDecimal;
 import java.math.BigInteger;
 import java.net.URI;
@@ -33,6 +30,7 @@ import java.util.Set;
 import java.util.TreeMap;
 import java.util.regex.Matcher;
 import java.util.regex.Pattern;
+
 import org.apache.commons.lang3.StringEscapeUtils;
 import org.opendaylight.yangtools.binding.generator.util.BindingGeneratorUtil;
 import org.opendaylight.yangtools.binding.generator.util.TypeConstants;
@@ -89,7 +87,11 @@ import org.opendaylight.yangtools.yang.model.util.Uint32;
 import org.opendaylight.yangtools.yang.model.util.Uint64;
 import org.opendaylight.yangtools.yang.model.util.Uint8;
 import org.opendaylight.yangtools.yang.model.util.UnionType;
-import org.opendaylight.yangtools.yang.parser.util.ModuleDependencySort;
+
+import com.google.common.base.Preconditions;
+import com.google.common.collect.Sets;
+import com.google.common.io.BaseEncoding;
+
 
 public final class TypeProviderImpl implements TypeProvider {
     private static final Pattern NUMBERS_PATTERN = Pattern.compile("[0-9]+\\z");
@@ -606,7 +608,7 @@ public final class TypeProviderImpl implements TypeProvider {
         for (Module modul : modules) {
             modulesArray[i++] = modul;
         }
-        final List<Module> modulesSortedByDependency = ModuleDependencySort.sort(modulesArray);
+        final List<Module> modulesSortedByDependency = org.opendaylight.yangtools.yang.parser.util.ModuleDependencySort.sort(modulesArray);
 
         for (final Module module : modulesSortedByDependency) {
             Map<Date, Map<String, Type>> dateTypeMap = genTypeDefsContextMap.get(module.getName());
similarity index 80%
rename from yang/yang-parser-impl/src/main/java/org/opendaylight/yangtools/yang/parser/util/BitImpl.java
rename to yang/yang-model-util/src/main/java/org/opendaylight/yangtools/yang/model/util/BitImpl.java
index 635e57e0679a836ab9d11c0770e6a83603ad8f19..92f94f27ffc629ce30907d39c3469b7946599ebb 100644 (file)
@@ -5,7 +5,7 @@
  * terms of the Eclipse Public License v1.0 which accompanies this distribution,
  * and is available at http://www.eclipse.org/legal/epl-v10.html
  */
-package org.opendaylight.yangtools.yang.parser.util;
+package org.opendaylight.yangtools.yang.model.util;
 
 import java.util.Collections;
 import java.util.List;
@@ -18,7 +18,9 @@ import org.opendaylight.yangtools.yang.model.api.UnknownSchemaNode;
 import org.opendaylight.yangtools.yang.model.api.type.BitsTypeDefinition;
 import org.opendaylight.yangtools.yang.model.api.type.BitsTypeDefinition.Bit;
 
-final class BitImpl implements BitsTypeDefinition.Bit, Immutable {
+import com.google.common.base.Preconditions;
+
+public final class BitImpl implements BitsTypeDefinition.Bit, Immutable {
     private final Long position;
     private final QName qname;
     private final SchemaPath schemaPath;
@@ -27,11 +29,11 @@ final class BitImpl implements BitsTypeDefinition.Bit, Immutable {
     private final Status status;
     private List<UnknownSchemaNode> unknownNodes = Collections.emptyList();
 
-    BitImpl(final Long position, final QName qname, final SchemaPath schemaPath, final String description,
+    public BitImpl(final Long position, final QName qname, final SchemaPath schemaPath, final String description,
             final String reference, final Status status, final List<UnknownSchemaNode> unknownNodes) {
-        this.position = position;
-        this.qname = qname;
-        this.schemaPath = schemaPath;
+        this.position = Preconditions.checkNotNull(position, "Position should not be null");
+        this.qname = Preconditions.checkNotNull(qname, "QName should not be null");
+        this.schemaPath = Preconditions.checkNotNull(schemaPath, "Schema Path should not be null");
         this.description = description;
         this.reference = reference;
         this.status = status;
@@ -84,15 +86,15 @@ final class BitImpl implements BitsTypeDefinition.Bit, Immutable {
     public int hashCode() {
         final int prime = 31;
         int result = 1;
-        result = prime * result + ((qname == null) ? 0 : qname.hashCode());
-        result = prime * result + ((schemaPath == null) ? 0 : schemaPath.hashCode());
-        result = prime * result + ((position == null) ? 0 : position.hashCode());
+        result = prime * result + qname.hashCode();
+        result = prime * result + schemaPath.hashCode();
+        result = prime * result + position.hashCode();
         result = prime * result + ((unknownNodes == null) ? 0 : unknownNodes.hashCode());
         return result;
     }
 
     @Override
-    public boolean equals(Object obj) {
+    public boolean equals(final Object obj) {
         if (this == obj) {
             return true;
         }
similarity index 97%
rename from yang/yang-parser-impl/src/main/java/org/opendaylight/yangtools/yang/parser/util/ModuleImportImpl.java
rename to yang/yang-model-util/src/main/java/org/opendaylight/yangtools/yang/model/util/ModuleImportImpl.java
index 63f07f80b827d4997e6491a4ed4e9212b1a18c0c..b3e956825ae9f601d306f9c52e4e9058b07931f0 100644 (file)
@@ -5,7 +5,7 @@
  * terms of the Eclipse Public License v1.0 which accompanies this distribution,
  * and is available at http://www.eclipse.org/legal/epl-v10.html
  */
-package org.opendaylight.yangtools.yang.parser.util;
+package org.opendaylight.yangtools.yang.model.util;
 
 import java.util.Date;
 
similarity index 58%
rename from yang/yang-parser-impl/src/main/java/org/opendaylight/yangtools/yang/parser/util/MustDefinitionImpl.java
rename to yang/yang-model-util/src/main/java/org/opendaylight/yangtools/yang/model/util/MustDefinitionImpl.java
index d0b232c550c133f2aae369180ace3835292e5a99..38ebb1b05b67f35ce979bb34238fd84b65f4d8d7 100644 (file)
@@ -5,26 +5,60 @@
  * terms of the Eclipse Public License v1.0 which accompanies this distribution,
  * and is available at http://www.eclipse.org/legal/epl-v10.html
  */
-package org.opendaylight.yangtools.yang.parser.util;
+package org.opendaylight.yangtools.yang.model.util;
 
 import org.opendaylight.yangtools.yang.model.api.MustDefinition;
 import org.opendaylight.yangtools.yang.model.api.RevisionAwareXPath;
 
-final class MustDefinitionImpl implements MustDefinition {
+import com.google.common.base.Optional;
+import com.google.common.base.Preconditions;
+
+/**
+ *
+ * Immutable implementation of {@link MustDefinition}
+ *
+ */
+public final class MustDefinitionImpl implements MustDefinition {
     private final String mustStr;
     private final String description;
     private final String reference;
     private final String errorAppTag;
     private final String errorMessage;
 
-    MustDefinitionImpl(String mustStr, String description, String reference, String errorAppTag, String errorMessage) {
-        this.mustStr = mustStr;
+    /**
+     *
+     * Creates new Must Definition
+     *
+     * @param mustStr must string statement, Must not be null.
+     * @param description Description of condition
+     * @param reference Reference for condition
+     * @param errorAppTag error application tag which should be used for error reporting when condition fails
+     * @param errorMessage message  which should be used for error reporting when condition fails
+     * @deprecated Use {@link #create(String, Optional, Optional, Optional, Optional)} instead.
+     */
+    @Deprecated
+    public MustDefinitionImpl(final String mustStr, final String description, final String reference, final String errorAppTag, final String errorMessage) {
+        this.mustStr = Preconditions.checkNotNull(mustStr);
         this.description = description;
         this.reference = reference;
         this.errorAppTag = errorAppTag;
         this.errorMessage = errorMessage;
     }
 
+    /**
+    *
+    * Creates new Must Definition
+    *
+    * @param mustStr must string statement, Must not be null.
+    * @param description Description of condition
+    * @param reference Reference for condition
+    * @param errorAppTag error application tag which should be used for error reporting when condition fails
+    * @param errorMessage message  which should be used for error reporting when condition fails
+    */
+    public static MustDefinitionImpl create(final String mustStr, final Optional<String> description, final Optional<String> reference, final Optional<String> errorAppTag, final Optional<String> errorMessage) {
+        return new MustDefinitionImpl(mustStr, description.orNull(), reference.orNull(), errorAppTag.orNull(), errorMessage.orNull());
+    }
+
     @Override
     public String getDescription() {
         return description;
@@ -61,7 +95,7 @@ final class MustDefinitionImpl implements MustDefinition {
     }
 
     @Override
-    public boolean equals(Object obj) {
+    public boolean equals(final Object obj) {
         if (this == obj) {
             return true;
         }
similarity index 78%
rename from yang/yang-parser-impl/src/test/java/org/opendaylight/yangtools/yang/parser/util/BitImplTest.java
rename to yang/yang-model-util/src/test/java/org/opendaylight/yangtools/yang/model/util/BitImplTest.java
index 4a0d552962ccf8a0b8b95abedf556f8ff7bd4181..04d086c4b69e43975c825c697a3a4d17605e81b5 100644 (file)
@@ -5,7 +5,7 @@
  * terms of the Eclipse Public License v1.0 which accompanies this distribution,
  * and is available at http://www.eclipse.org/legal/epl-v10.html
  */
-package org.opendaylight.yangtools.yang.parser.util;
+package org.opendaylight.yangtools.yang.model.util;
 
 import static org.junit.Assert.assertEquals;
 import static org.junit.Assert.assertFalse;
@@ -14,15 +14,14 @@ import static org.junit.Assert.assertTrue;
 import java.net.URI;
 import java.net.URISyntaxException;
 import java.util.ArrayList;
+import java.util.Collections;
 import java.util.Date;
 import java.util.List;
+
 import org.junit.Test;
 import org.opendaylight.yangtools.yang.common.QName;
 import org.opendaylight.yangtools.yang.model.api.SchemaPath;
 import org.opendaylight.yangtools.yang.model.api.Status;
-import org.opendaylight.yangtools.yang.model.api.UnknownSchemaNode;
-import org.opendaylight.yangtools.yang.parser.builder.impl.ModuleBuilder;
-import org.opendaylight.yangtools.yang.parser.builder.impl.UnknownSchemaNodeBuilder;
 
 public class BitImplTest {
 
@@ -76,12 +75,6 @@ public class BitImplTest {
         assertFalse("biA shouldn't equal to null", biA.equals(null));
         assertFalse("biA shouldn't equal to object of other type", biA.equals(new String("str")));
 
-        // test of equals method
-        // // test qname
-        biA = new BitImpl(55L, null, schemaPathA, "description", "reference", Status.CURRENT, null);
-        biB = new BitImpl(55L, qnameB, schemaPathA, "description", "reference", Status.CURRENT, null);
-        assertFalse("biA shouldn't equal to biB", biA.equals(biB));
-
         biA = new BitImpl(55L, qnameB, schemaPathA, "description", "reference", Status.CURRENT, null);
         biB = new BitImpl(55L, qnameB, schemaPathA, "description", "reference", Status.CURRENT, null);
         assertEquals("biA should equal to biB", biA, biB);
@@ -91,7 +84,7 @@ public class BitImplTest {
         assertFalse("biA shouldn't equal to biB", biA.equals(biB));
 
         // // test schemaPath
-        biA = new BitImpl(55L, qnameA, null, "description", "reference", Status.CURRENT, null);
+        biA = new BitImpl(55L, qnameA, schemaPathA, "description", "reference", Status.CURRENT, null);
         biB = new BitImpl(55L, qnameA, schemaPathB, "description", "reference", Status.CURRENT, null);
         assertFalse("biA shouldn't equal to biB", biA.equals(biB));
 
@@ -107,19 +100,7 @@ public class BitImplTest {
         biB = new BitImpl(55L, qnameA, schemaPathA, "description", "reference", Status.CURRENT, null);
         assertEquals("biA should equal to biB", biA, biB);
 
-        // test of hashCode method
-        biA = new BitImpl(null, null, null, "description", "reference", Status.CURRENT, null);
-        assertEquals("Incorrect hash code for biA.", 923522, biA.hashCode());
-
-        List<UnknownSchemaNode> unknownNodes = new ArrayList<>();
-        SchemaPath path = org.mockito.Mockito.mock(SchemaPath.class);
-        UnknownSchemaNodeBuilder usnb = new UnknownSchemaNodeBuilder("module", 3, qnameB, path);
-        ModuleBuilder parent = org.mockito.Mockito.mock(ModuleBuilder.class);
-        usnb.setParent(parent);
-
-        unknownNodes.add(usnb.build());
-
-        biA = new BitImpl(55L, qnameA, schemaPathA, "description", "reference", Status.CURRENT, unknownNodes);
+        biA = new BitImpl(55L, qnameA, schemaPathA, "description", "reference", Status.CURRENT,null);
 
         // test of getter methods
         assertEquals("Incorrect value for qname.", qnameA, biA.getQName());
@@ -127,7 +108,7 @@ public class BitImplTest {
         assertEquals("Incorrect value for description.", "description", biA.getDescription());
         assertEquals("Incorrect value for reference.", "reference", biA.getReference());
         assertEquals("Incorrect value for status.", Status.CURRENT, biA.getStatus());
-        assertEquals("Incorrect value for unknown nodes.", unknownNodes, biA.getUnknownSchemaNodes());
+        assertEquals("Incorrect value for unknown nodes.", Collections.emptyList(), biA.getUnknownSchemaNodes());
 
         // test of toString method
         assertEquals("toString method doesn't return correct value", "Bit[name=some name, position=55]", biA.toString());
diff --git a/yang/yang-model-util/src/test/java/org/opendaylight/yangtools/yang/model/util/MustDefinitionImplTest.java b/yang/yang-model-util/src/test/java/org/opendaylight/yangtools/yang/model/util/MustDefinitionImplTest.java
new file mode 100644 (file)
index 0000000..838d795
--- /dev/null
@@ -0,0 +1,69 @@
+/*
+ * Copyright (c) 2014 Cisco Systems, Inc. and others.  All rights reserved.
+ *
+ * This program and the accompanying materials are made available under the
+ * terms of the Eclipse Public License v1.0 which accompanies this distribution,
+ * and is available at http://www.eclipse.org/legal/epl-v10.html
+ */
+package org.opendaylight.yangtools.yang.model.util;
+
+import static org.junit.Assert.assertEquals;
+import static org.junit.Assert.assertFalse;
+
+import org.junit.Test;
+
+import com.google.common.base.Optional;
+
+public class MustDefinitionImplTest {
+
+    @Test
+    public void test() {
+        MustDefinitionImpl mdiA;
+        MustDefinitionImpl mdiB;
+        mdiA = MustDefinitionImpl.create("mustStrA", Optional.of("descriptionA"), Optional.of("referenceA"), Optional.of("errorAppTagA"), Optional.of("errorMessageA"));
+
+        assertEquals("mdiA should equals to itsefl", mdiA, mdiA);
+        assertFalse("mdiA shouldn't equal to null", mdiA.equals(null));
+        assertFalse("mdiA shouldn't equal to object of other type", mdiA.equals(new String("str")));
+
+        // test of equals method
+
+        Optional<String> description = Optional.of("description");
+        Optional<String> reference = Optional.of("reference");
+        Optional<String> errorAppTag = Optional.of("errorAppTag");
+        Optional<String> errorMessage = Optional.of("errorMesage");
+        // //confirmation of equality
+        mdiA = MustDefinitionImpl.create("mustStr", description, reference, errorAppTag, errorMessage);
+        mdiB = MustDefinitionImpl.create("mustStr", description, reference, errorAppTag, errorMessage);
+        assertEquals("mdiA should equal to mdiB", mdiA, mdiB);
+
+        // // mustStr
+        mdiA = MustDefinitionImpl.create("mstr", description, reference, errorAppTag, errorMessage);
+        mdiB = MustDefinitionImpl.create("mustStr", description, reference, errorAppTag, errorMessage);
+        assertFalse("mdiA shouldn't equal to mdiB", mdiA.equals(mdiB));
+
+        mdiA = MustDefinitionImpl.create("mustStrA", description, reference, errorAppTag, errorMessage);
+        mdiB = MustDefinitionImpl.create("mustStrB", description, reference, errorAppTag, errorMessage);
+        assertFalse("mdiA shouldn't equal to mdiB", mdiA.equals(mdiB));
+
+        // //description
+        mdiA = MustDefinitionImpl.create("mustStr", Optional.<String>absent(), reference, errorAppTag, errorMessage);
+        mdiB = MustDefinitionImpl.create("mustStr", description, reference, errorAppTag, errorMessage);
+        assertFalse("mdiA shouldn't equal to mdiB", mdiA.equals(mdiB));
+
+        mdiA = MustDefinitionImpl.create("mustStr", Optional.of("descriptionA"), reference, errorAppTag, errorMessage);
+        mdiB = MustDefinitionImpl.create("mustStr", Optional.of("descriptionB"), reference, errorAppTag, errorMessage);
+        assertFalse("mdiA shouldn't equal to mdiB", mdiA.equals(mdiB));
+
+        // //reference
+        mdiA = MustDefinitionImpl.create("mustStr", description, Optional.<String>absent(), errorAppTag, errorMessage);
+        mdiB = MustDefinitionImpl.create("mustStr", description, reference, errorAppTag, errorMessage);
+        assertFalse("mdiA shouldn't equal to mdiB", mdiA.equals(mdiB));
+
+        mdiA = MustDefinitionImpl.create("mustStr", description, Optional.of("referenceA"), errorAppTag, errorMessage);
+        mdiB = MustDefinitionImpl.create("mustStr", description, Optional.of("referenceB"), errorAppTag, errorMessage);
+        assertFalse("mdiA shouldn't equal to mdiB", mdiA.equals(mdiB));
+
+    }
+
+}
index 963bcc922a73debb5928a39e1d88852fa92207df..0bc48108f7c295f04b1be9f713d74b183acf2e5d 100644 (file)
@@ -10,7 +10,6 @@ package org.opendaylight.yangtools.yang.parser.builder.api;
 import java.util.List;
 
 import org.opendaylight.yangtools.concepts.Mutable;
-import org.opendaylight.yangtools.yang.parser.builder.impl.UnknownSchemaNodeBuilder;
 
 /**
  * Parent interface for all builder interfaces.
diff --git a/yang/yang-parser-impl/src/main/java/org/opendaylight/yangtools/yang/parser/builder/api/ConstraintsBuilder.java b/yang/yang-parser-impl/src/main/java/org/opendaylight/yangtools/yang/parser/builder/api/ConstraintsBuilder.java
new file mode 100644 (file)
index 0000000..2d36496
--- /dev/null
@@ -0,0 +1,127 @@
+/*
+ * Copyright (c) 2013 Cisco Systems, Inc. and others. All rights reserved.
+ * This program and the accompanying materials are made available under the
+ * terms of the Eclipse Public License v1.0 which accompanies this distribution,
+ * and is available at http://www.eclipse.org/legal/epl-v10.html
+ */
+package org.opendaylight.yangtools.yang.parser.builder.api;
+
+import java.util.Set;
+
+import org.opendaylight.yangtools.concepts.Builder;
+import org.opendaylight.yangtools.yang.model.api.ConstraintDefinition;
+import org.opendaylight.yangtools.yang.model.api.MustDefinition;
+
+public interface ConstraintsBuilder extends Builder<ConstraintDefinition> {
+
+    /**
+     * Returns module name in which constraint is defined.
+     *
+     * @return module name
+     */
+    String getModuleName();
+
+    /**
+     *
+     * Return line on which constraints were defined.
+     *
+     * @return line
+     */
+    int getLine();
+
+    /**
+     *
+     * Returns number of minimum required elements.
+     *
+     * This constraint has meaning only if associated node is list or leaf-list.
+     *
+     * @return number of minimum required elements.
+     */
+    Integer getMinElements();
+
+    /**
+     *
+     * Sets number of minimum required elements.
+     *
+     * This constraint has meaning only if associated node is list or leaf-list.
+     *
+     * @param minElements
+     *            number of minimum required elements.
+     */
+    void setMinElements(Integer minElements);
+
+    /**
+     *
+     * Returns number of maximum required elements.
+     *
+     * This constraint has meaning only if associated node is list or leaf-list.
+     *
+     * @return number of maximum required elements.
+     */
+    Integer getMaxElements();
+
+    /**
+     *
+     * Sets number of maximum required elements.
+     *
+     * This constraint has meaning only if associated node is list or leaf-list.
+     *
+     * @param minElements
+     *            number of maximum required elements.
+     */
+    void setMaxElements(Integer maxElements);
+
+    /**
+     * Returns <code>must</code> definition associated with this builder.
+     *
+     * @return <code>must</code> definition associated with this builder.
+     */
+    Set<MustDefinition> getMustDefinitions();
+
+    /**
+     * Adds must definition to product of this builder.
+     *
+     * @param must
+     *            <code>must</code> definition which should be associated with
+     *            parent node.
+     */
+    void addMustDefinition(MustDefinition must);
+
+    /**
+     * Returns when condition associated with this constraints.
+     *
+     * @return when condition associated with this constraints.
+     */
+    String getWhenCondition();
+
+    /**
+     * Sets when condition associated with this constraints.
+     *
+     * @param whenCondition
+     *            when condition.
+     */
+    void addWhenCondition(String whenCondition);
+
+    /**
+     * Returns true if associated node is mandatory.
+     *
+     *
+     * @return true if associated node is mandatory.
+     */
+    boolean isMandatory();
+
+    /**
+     * Sets mandatory status of parent node
+     *
+     * @param mandatory
+     */
+    void setMandatory(boolean mandatory);
+
+    /**
+     * Build constraint definition
+     *
+     * @return
+     */
+    ConstraintDefinition toInstance();
+
+}
\ No newline at end of file
index 8fd0009a698b70c5224e3e38505b2a5736d93b99..c4d24d36024d164d2fa80c5531163c34bec57389 100644 (file)
@@ -8,7 +8,6 @@
 package org.opendaylight.yangtools.yang.parser.builder.api;
 
 import org.opendaylight.yangtools.yang.model.api.DataSchemaNode;
-import org.opendaylight.yangtools.yang.parser.builder.impl.ConstraintsBuilder;
 
 /**
  * Interface for all yang data-schema nodes [anyxml, case, container, grouping,
diff --git a/yang/yang-parser-impl/src/main/java/org/opendaylight/yangtools/yang/parser/builder/api/ExtensionBuilder.java b/yang/yang-parser-impl/src/main/java/org/opendaylight/yangtools/yang/parser/builder/api/ExtensionBuilder.java
new file mode 100644 (file)
index 0000000..6516eef
--- /dev/null
@@ -0,0 +1,40 @@
+/*
+ * Copyright (c) 2014 Cisco Systems, Inc. and others. All rights reserved.
+ * This program and the accompanying materials are made available under the
+ * terms of the Eclipse Public License v1.0 which accompanies this distribution,
+ * and is available at http://www.eclipse.org/legal/epl-v10.html
+ */
+package org.opendaylight.yangtools.yang.parser.builder.api;
+
+import org.opendaylight.yangtools.yang.model.api.ExtensionDefinition;
+
+/**
+ * Builder for extension statement.
+ *
+ */
+public interface ExtensionBuilder extends SchemaNodeBuilder {
+
+    /**
+     * Sets argument name as was defined in YANG source
+     *
+     * @param argument argument name
+     */
+    void setArgument(String argument);
+
+    /**
+     * Sets if extension should be represented in YIN format as element.
+     *
+     *
+     * @param yin true if extension should be represented in YIN as element.
+     */
+    void setYinElement(boolean yin);
+
+    /**
+     *
+     * Builds definition of extednsion
+     *
+     */
+    @Override
+    ExtensionDefinition build();
+
+}
\ No newline at end of file
index fb7b9c8d61739c909c37cee6092b65688bab8b82..61e455cc1fc7e245c73dfa9010c8b18dbd6a2675 100644 (file)
@@ -10,7 +10,6 @@ package org.opendaylight.yangtools.yang.parser.builder.api;
 import java.util.Set;
 
 import org.opendaylight.yangtools.yang.model.api.GroupingDefinition;
-import org.opendaylight.yangtools.yang.parser.builder.impl.UnknownSchemaNodeBuilder;
 
 /**
  * Interface for builders of 'grouping' statement.
diff --git a/yang/yang-parser-impl/src/main/java/org/opendaylight/yangtools/yang/parser/builder/api/RefineBuilder.java b/yang/yang-parser-impl/src/main/java/org/opendaylight/yangtools/yang/parser/builder/api/RefineBuilder.java
new file mode 100644 (file)
index 0000000..83aa383
--- /dev/null
@@ -0,0 +1,155 @@
+/*
+ * Copyright (c) 2014 Cisco Systems, Inc. and others. All rights reserved.
+ * This program and the accompanying materials are made available under the
+ * terms of the Eclipse Public License v1.0 which accompanies this distribution,
+ * and is available at http://www.eclipse.org/legal/epl-v10.html
+ */
+package org.opendaylight.yangtools.yang.parser.builder.api;
+
+import java.util.List;
+
+import org.opendaylight.yangtools.yang.model.api.MustDefinition;
+
+/**
+ * Mutable holder for information contained in <code>refine</code>
+ *
+ * Represents a local change to node introduced by uses statement
+ * e.g. change in documentation, configuration or properties.
+ *
+ *
+ */
+public interface RefineBuilder extends DocumentedNodeBuilder {
+
+    /**
+     * Get value of config statement.
+     *
+     * @return value of config statement
+     */
+    Boolean isConfiguration();
+
+    /**
+     * Set config statement to the product.
+     *
+     *
+     * @param config true if config true was set, false if config false was set.
+     */
+    void setConfiguration(Boolean config);
+
+    /**
+     * Returns mandatory state of node or NULL if state was not refined.
+     *
+     *
+     * @return mandatory state of node or NULL if state was not refined.
+     */
+    Boolean isMandatory();
+
+    void setMandatory(Boolean mandatory);
+
+    /**
+     *
+     * Returns presence state of refined container.
+     *
+     * @return Presence state of refined container.
+     */
+    Boolean isPresence();
+
+    void setPresence(Boolean presence);
+
+    /**
+     * Returns <code>must</code> definition associated with this builder.
+     *
+     * @return <code>must</code> definition associated with this builder.
+     */
+    MustDefinition getMust();
+
+    /**
+     * Adds must definition to product of this builder.
+     *
+     * @param must <code>must</code> definition which should be associated with parent node.
+     */
+    void setMust(MustDefinition must);
+
+
+    /**
+    *
+    * Returns number of minimum required elements or NULL if minimum elements was not overriden.
+    *
+    * This constraint has meaning only if associated node is list or leaf-list.
+    *
+    * @return number of minimum required elements.
+    */
+   Integer getMinElements();
+
+   /**
+    *
+    * Sets number of minimum required elements.
+    *
+    * This constraint has meaning only if associated node is list or leaf-list.
+    *
+    * @param minElements
+    *            number of minimum required elements.
+    */
+   void setMinElements(Integer minElements);
+
+   /**
+   *
+   * Returns number of maximum elements or NULL if maximum elements was not overriden.
+   *
+   * This constraint has meaning only if associated node is list or leaf-list.
+   *
+   * @return number of maximum required elements.
+   */
+   Integer getMaxElements();
+
+   /**
+   *
+   * Sets number of maximum required elements.
+   *
+   * This constraint has meaning only if associated node is list or leaf-list.
+   *
+   * @param minElements number of maximum required elements.
+   */
+   void setMaxElements(Integer maxElements);
+
+    /**
+     *
+     * Returns string representation of path to refine target, which is relative to grouping root
+     *
+     * This string representation does not need to contain prefixes, since parent uses
+     * element introduces elements with namespace local to parent module.
+     *
+     * @return string representation of path to refine target, which is relative to grouping root
+     */
+    String getTargetPathString();
+
+    /**
+     *
+     * Returns module (source) name in which refine statement was defined.
+     *
+     * @return module (source) name in which refine statement was defined.
+     */
+    String getModuleName();
+
+    /**
+     * Line on which element was defined.
+     *
+     * @return Line on which element was defined.
+     */
+    int getLine();
+
+    /**
+     * Returns list of unknown schema node builders, which are associated
+     * with refine statement.
+     *
+     * @return Set of unknown schema node builders.
+     */
+    List<UnknownSchemaNodeBuilder> getUnknownNodes();
+
+    /**
+     * Returns string representation of default value or null, if default value was not refined.
+     *
+     * @return  string representation of default value or null, if default value was not refined.
+     */
+    String getDefaultStr();
+
+}
\ No newline at end of file
diff --git a/yang/yang-parser-impl/src/main/java/org/opendaylight/yangtools/yang/parser/builder/api/UnknownSchemaNodeBuilder.java b/yang/yang-parser-impl/src/main/java/org/opendaylight/yangtools/yang/parser/builder/api/UnknownSchemaNodeBuilder.java
new file mode 100644 (file)
index 0000000..3b0cb96
--- /dev/null
@@ -0,0 +1,89 @@
+/*
+ * Copyright (c) 2014 Cisco Systems, Inc. and others. All rights reserved.
+ * This program and the accompanying materials are made available under the
+ * terms of the Eclipse Public License v1.0 which accompanies this distribution,
+ * and is available at http://www.eclipse.org/legal/epl-v10.html
+ */
+package org.opendaylight.yangtools.yang.parser.builder.api;
+
+import org.opendaylight.yangtools.yang.common.QName;
+import org.opendaylight.yangtools.yang.model.api.ExtensionDefinition;
+import org.opendaylight.yangtools.yang.model.api.SchemaPath;
+import org.opendaylight.yangtools.yang.model.api.UnknownSchemaNode;
+
+public interface UnknownSchemaNodeBuilder extends SchemaNodeBuilder, DocumentedNodeBuilder {
+
+    @Override
+    SchemaPath getPath();
+
+    /**
+     * Returns true if node was added via uses statement
+     *
+     * @return true if node was added via uses statement
+     */
+    boolean isAddedByUses();
+
+    /**
+     * Sets flag if node was introduced by uses statement
+     *
+     * @param addedByUses true if node was introduced by uses, false otherwise
+     */
+    void setAddedByUses(boolean addedByUses);
+
+    /**
+     *
+     * Returns QName associated with this unknown node.
+     *
+     * @return QName associated with this unknown node.
+     */
+    QName getNodeType();
+
+    /**
+     * Returns string representation of argument associated with this unknown node.
+     *
+     * @return string representation of argument associated with this unknown node.
+     */
+    String getNodeParameter();
+
+    /**
+     * Sets string representation of argument associated with this unknown node.
+     * @param nodeParameter string representation of argument associated with this unknown node.
+     */
+    void setNodeParameter(String nodeParameter);
+
+    /**
+     * Returns extension definition, which declares this unknown node
+     * @return extension definition, which declares this unknown node
+     */
+    ExtensionDefinition getExtensionDefinition();
+
+    /**
+     * Sets extension definition, which declares this unknown node
+     * @param extensionDefinition extension definition, which declares this unknown node
+     */
+    void setExtensionDefinition(ExtensionDefinition extensionDefinition);
+
+    /**
+     * Returns builder for extension, which declares this unknown node.
+     *
+     * @return builder for extension, which declares this unknown node.
+     */
+    ExtensionBuilder getExtensionBuilder();
+
+    /**
+     * Sets extension builder, which declares this unknown node
+     * @param extensionBuilder extension definition, which declares this unknown node
+     */
+    void setExtensionBuilder(ExtensionBuilder extension);
+
+    @Override
+    UnknownSchemaNode build();
+
+    /**
+     * Sets node type associated with this unknown schema node
+     *
+     * @param qName node type associated with this unknown schema node
+     */
+    void setNodeType(QName qName);
+
+}
\ No newline at end of file
index ddff749d5e998815489b467958057350d5b678ba..3576995cba8fce58a8e102e2bb79c380f1f14ce3 100644 (file)
@@ -13,7 +13,6 @@ import java.util.Set;
 import org.opendaylight.yangtools.yang.model.api.GroupingDefinition;
 import org.opendaylight.yangtools.yang.model.api.SchemaPath;
 import org.opendaylight.yangtools.yang.model.api.UsesNode;
-import org.opendaylight.yangtools.yang.parser.util.RefineHolder;
 
 /**
  * Builder for  'uses' statement.
@@ -107,7 +106,7 @@ public interface UsesNodeBuilder extends GroupingMember {
      *
      * @return list of RefineHolder objects
      */
-    List<RefineHolder> getRefines();
+    List<RefineBuilder> getRefines();
 
     /**
      * Get refined nodes.
@@ -122,7 +121,7 @@ public interface UsesNodeBuilder extends GroupingMember {
      * @param refine
      *            new RefineHolder object
      */
-    void addRefine(RefineHolder refine);
+    void addRefine(RefineBuilder refine);
 
     /**
      * Add refine node.
index 7fd48b6a9bf6945481d6052f79d7dd1d0d116d85..f69b4f8810915e3c56f101722563bcd133c053b2 100644 (file)
@@ -15,8 +15,10 @@ import org.opendaylight.yangtools.yang.model.api.ConstraintDefinition;
 import org.opendaylight.yangtools.yang.model.api.SchemaPath;
 import org.opendaylight.yangtools.yang.model.api.Status;
 import org.opendaylight.yangtools.yang.model.api.UnknownSchemaNode;
-import org.opendaylight.yangtools.yang.parser.builder.api.AbstractSchemaNodeBuilder;
 import org.opendaylight.yangtools.yang.parser.builder.api.DataSchemaNodeBuilder;
+import org.opendaylight.yangtools.yang.parser.builder.api.ConstraintsBuilder;
+import org.opendaylight.yangtools.yang.parser.builder.api.UnknownSchemaNodeBuilder;
+import org.opendaylight.yangtools.yang.parser.builder.util.AbstractSchemaNodeBuilder;
 
 import com.google.common.collect.ImmutableList;
 
@@ -32,14 +34,14 @@ public final class AnyXmlBuilder extends AbstractSchemaNodeBuilder implements Da
     public AnyXmlBuilder(final String moduleName, final int line, final QName qname, final SchemaPath path) {
         super(moduleName, line, qname);
         this.schemaPath = path;
-        constraints = new ConstraintsBuilder(moduleName, line);
+        constraints = new ConstraintsBuilderImpl(moduleName, line);
     }
 
     public AnyXmlBuilder(final String moduleName, final int line, final QName qname, final SchemaPath path,
             final AnyXmlSchemaNode base) {
         super(moduleName, line, qname);
         this.schemaPath = path;
-        constraints = new ConstraintsBuilder(moduleName, line, base.getConstraints());
+        constraints = new ConstraintsBuilderImpl(moduleName, line, base.getConstraints());
 
         description = base.getDescription();
         reference = base.getReference();
@@ -65,7 +67,7 @@ public final class AnyXmlBuilder extends AbstractSchemaNodeBuilder implements Da
         instance.addedByUses = addedByUses;
         instance.configuration = configuration;
 
-        instance.constraintsDef = constraints.build();
+        instance.constraintsDef = constraints.toInstance();
 
         // UNKNOWN NODES
         for (UnknownSchemaNodeBuilder b : addedUnknownNodes) {
index 3e4abd301dc1602f301e81b2890340ba18b7b3cf..2a73848c29c498828c67b1e94e9c3957e547fc38 100644 (file)
@@ -7,6 +7,11 @@
  */
 package org.opendaylight.yangtools.yang.parser.builder.impl;
 
+import com.google.common.base.Optional;
+import com.google.common.base.Preconditions;
+import com.google.common.collect.ImmutableList;
+import com.google.common.collect.ImmutableSet;
+
 import java.net.URI;
 import java.util.ArrayList;
 import java.util.Collections;
@@ -28,21 +33,16 @@ import org.opendaylight.yangtools.yang.model.api.TypeDefinition;
 import org.opendaylight.yangtools.yang.model.api.UnknownSchemaNode;
 import org.opendaylight.yangtools.yang.model.api.UsesNode;
 import org.opendaylight.yangtools.yang.model.util.RevisionAwareXPathImpl;
-import org.opendaylight.yangtools.yang.parser.builder.api.AbstractDataNodeContainerBuilder;
 import org.opendaylight.yangtools.yang.parser.builder.api.AugmentationSchemaBuilder;
 import org.opendaylight.yangtools.yang.parser.builder.api.Builder;
 import org.opendaylight.yangtools.yang.parser.builder.api.DataSchemaNodeBuilder;
 import org.opendaylight.yangtools.yang.parser.builder.api.GroupingBuilder;
+import org.opendaylight.yangtools.yang.parser.builder.api.UnknownSchemaNodeBuilder;
 import org.opendaylight.yangtools.yang.parser.builder.api.TypeDefinitionBuilder;
 import org.opendaylight.yangtools.yang.parser.builder.api.UsesNodeBuilder;
-import org.opendaylight.yangtools.yang.parser.util.ParserUtils;
+import org.opendaylight.yangtools.yang.parser.builder.util.AbstractDataNodeContainerBuilder;
 import org.opendaylight.yangtools.yang.parser.util.YangParseException;
 
-import com.google.common.base.Optional;
-import com.google.common.base.Preconditions;
-import com.google.common.collect.ImmutableList;
-import com.google.common.collect.ImmutableSet;
-
 public final class AugmentationSchemaBuilderImpl extends AbstractDataNodeContainerBuilder implements
         AugmentationSchemaBuilder {
     private final int order;
@@ -64,7 +64,7 @@ public final class AugmentationSchemaBuilderImpl extends AbstractDataNodeContain
         super(moduleName, line, null);
         this.order = order;
         this.augmentTargetStr = augmentTargetStr;
-        targetPath = ParserUtils.parseXPathString(augmentTargetStr);
+        targetPath = BuilderUtils.parseXPathString(augmentTargetStr);
     }
 
     @Override
@@ -107,7 +107,7 @@ public final class AugmentationSchemaBuilderImpl extends AbstractDataNodeContain
         }
 
         if (parent instanceof UsesNodeBuilder) {
-            final ModuleBuilder mb = ParserUtils.getParentModule(this);
+            final ModuleBuilder mb = BuilderUtils.getParentModule(this);
             final QNameModule qm = QNameModule.create(mb.getNamespace(), mb.getRevision());
 
             List<QName> newPath = new ArrayList<>();
similarity index 93%
rename from yang/yang-parser-impl/src/main/java/org/opendaylight/yangtools/yang/parser/util/ParserUtils.java
rename to yang/yang-parser-impl/src/main/java/org/opendaylight/yangtools/yang/parser/builder/impl/BuilderUtils.java
index 9e123e343e63ac64c0abd671355cb6b5048386e7..19daf45e8822afe39d6026c5f99ded4743cf7a92 100644 (file)
@@ -5,7 +5,7 @@
  * terms of the Eclipse Public License v1.0 which accompanies this distribution,
  * and is available at http://www.eclipse.org/legal/epl-v10.html
  */
-package org.opendaylight.yangtools.yang.parser.util;
+package org.opendaylight.yangtools.yang.parser.builder.impl;
 
 import java.io.ByteArrayOutputStream;
 import java.io.File;
@@ -53,20 +53,9 @@ import org.opendaylight.yangtools.yang.parser.builder.api.GroupingMember;
 import org.opendaylight.yangtools.yang.parser.builder.api.SchemaNodeBuilder;
 import org.opendaylight.yangtools.yang.parser.builder.api.TypeDefinitionBuilder;
 import org.opendaylight.yangtools.yang.parser.builder.api.UsesNodeBuilder;
-import org.opendaylight.yangtools.yang.parser.builder.impl.AnyXmlBuilder;
-import org.opendaylight.yangtools.yang.parser.builder.impl.ChoiceBuilder;
-import org.opendaylight.yangtools.yang.parser.builder.impl.ChoiceCaseBuilder;
-import org.opendaylight.yangtools.yang.parser.builder.impl.ContainerSchemaNodeBuilder;
-import org.opendaylight.yangtools.yang.parser.builder.impl.GroupingBuilderImpl;
-import org.opendaylight.yangtools.yang.parser.builder.impl.IdentitySchemaNodeBuilder;
-import org.opendaylight.yangtools.yang.parser.builder.impl.LeafListSchemaNodeBuilder;
-import org.opendaylight.yangtools.yang.parser.builder.impl.LeafSchemaNodeBuilder;
-import org.opendaylight.yangtools.yang.parser.builder.impl.ListSchemaNodeBuilder;
-import org.opendaylight.yangtools.yang.parser.builder.impl.ModuleBuilder;
-import org.opendaylight.yangtools.yang.parser.builder.impl.NotificationBuilder;
-import org.opendaylight.yangtools.yang.parser.builder.impl.RpcDefinitionBuilder;
-import org.opendaylight.yangtools.yang.parser.builder.impl.TypeDefinitionBuilderImpl;
-import org.opendaylight.yangtools.yang.parser.builder.impl.UnknownSchemaNodeBuilder;
+import org.opendaylight.yangtools.yang.parser.util.NamedByteArrayInputStream;
+import org.opendaylight.yangtools.yang.parser.util.NamedFileInputStream;
+import org.opendaylight.yangtools.yang.parser.util.YangParseException;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
 
@@ -77,15 +66,15 @@ import com.google.common.base.Splitter;
 import com.google.common.collect.Collections2;
 import com.google.common.io.ByteSource;
 
-public final class ParserUtils {
+public final class BuilderUtils {
 
-    private static final Logger LOG = LoggerFactory.getLogger(ParserUtils.class);
+    private static final Logger LOG = LoggerFactory.getLogger(BuilderUtils.class);
     private static final Splitter SLASH_SPLITTER = Splitter.on('/');
     private static final Splitter COLON_SPLITTER = Splitter.on(':');
     private static final String INPUT = "input";
     private static final String OUTPUT = "output";
 
-    private ParserUtils() {
+    private BuilderUtils() {
     }
 
     public static Collection<ByteSource> streamsToByteSources(final Collection<InputStream> streams) throws IOException {
@@ -255,7 +244,7 @@ public final class ParserUtils {
         }
         TreeMap<Date, Module> modulesByRevision = new TreeMap<>();
 
-        ModuleImport dependentModuleImport = ParserUtils.getModuleImport(currentModule, prefix);
+        ModuleImport dependentModuleImport = BuilderUtils.getModuleImport(currentModule, prefix);
         if (dependentModuleImport == null) {
             throw new YangParseException(currentModule.getName(), line, "No import found with prefix '" + prefix + "'.");
         }
@@ -510,7 +499,7 @@ public final class ParserUtils {
         return currentNode;
     }
 
-    private static Optional<SchemaNodeBuilder> findDataChild(SchemaNodeBuilder parent, QName child) {
+    private static Optional<SchemaNodeBuilder> findDataChild(final SchemaNodeBuilder parent, final QName child) {
         if (parent instanceof DataNodeContainerBuilder) {
             return castOptional(SchemaNodeBuilder.class,
                     findDataChildInDataNodeContainer((DataNodeContainerBuilder) parent, child));
@@ -534,7 +523,7 @@ public final class ParserUtils {
      *            Original value
      * @return
      */
-    private static <T> Optional<T> castOptional(Class<T> cls, Optional<?> optional) {
+    private static <T> Optional<T> castOptional(final Class<T> cls, final Optional<?> optional) {
         if (optional.isPresent()) {
             Object value = optional.get();
             if (cls.isInstance(value)) {
@@ -560,7 +549,7 @@ public final class ParserUtils {
      * @return Optional of input/output if defined and QName is input/output.
      *         Otherwise {@link Optional#absent()}.
      */
-    private static Optional<ContainerSchemaNodeBuilder> findContainerInRpc(RpcDefinitionBuilder parent, QName child) {
+    private static Optional<ContainerSchemaNodeBuilder> findContainerInRpc(final RpcDefinitionBuilder parent, final QName child) {
         if (INPUT.equals(child.getLocalName())) {
             return Optional.of(parent.getInput());
         } else if (OUTPUT.equals(child.getLocalName())) {
@@ -581,7 +570,7 @@ public final class ParserUtils {
      * @return Optional of child if found.
      */
 
-    private static Optional<ChoiceCaseBuilder> findCaseInChoice(ChoiceBuilder parent, QName child) {
+    private static Optional<ChoiceCaseBuilder> findCaseInChoice(final ChoiceBuilder parent, final QName child) {
         for (ChoiceCaseBuilder caze : parent.getCases()) {
             if (caze.getQName().equals(child)) {
                 return Optional.of(caze);
@@ -601,8 +590,8 @@ public final class ParserUtils {
      *            QName of child
      * @return Optional of child if found.
      */
-    private static Optional<DataSchemaNodeBuilder> findDataChildInDataNodeContainer(DataNodeContainerBuilder parent,
-            QName child) {
+    private static Optional<DataSchemaNodeBuilder> findDataChildInDataNodeContainer(final DataNodeContainerBuilder parent,
+            final QName child) {
         for (DataSchemaNodeBuilder childNode : parent.getChildNodeBuilders()) {
             if (childNode.getQName().equals(child)) {
                 return Optional.of(childNode);
@@ -630,7 +619,7 @@ public final class ParserUtils {
      *            ModuleBuilder to start lookup in
      * @return Node Builder if found, {@link Optional#absent()} otherwise.
      */
-    private static Optional<SchemaNodeBuilder> getDataNamespaceChild(ModuleBuilder module, QName child) {
+    private static Optional<SchemaNodeBuilder> getDataNamespaceChild(final ModuleBuilder module, final QName child) {
         /*
          * First we do lookup in data tree, if node is found we return it.
          */
@@ -662,7 +651,7 @@ public final class ParserUtils {
         return Optional.absent();
     }
 
-    private static Optional<SchemaNodeBuilder> getDataChildByQName(DataNodeContainerBuilder builder, QName child) {
+    private static Optional<SchemaNodeBuilder> getDataChildByQName(final DataNodeContainerBuilder builder, final QName child) {
         for (DataSchemaNodeBuilder childNode : builder.getChildNodeBuilders()) {
             if (childNode.getQName().equals(child)) {
                 return Optional.<SchemaNodeBuilder> of(childNode);
@@ -819,16 +808,16 @@ public final class ParserUtils {
         return result;
     }
 
-    public static List<UnknownSchemaNodeBuilder> wrapUnknownNodes(final String moduleName, final int line,
+    public static List<UnknownSchemaNodeBuilderImpl> wrapUnknownNodes(final String moduleName, final int line,
             final List<UnknownSchemaNode> nodes, final SchemaPath parentPath, final URI ns, final Date rev,
             final String pref) {
-        List<UnknownSchemaNodeBuilder> result = new ArrayList<>();
+        List<UnknownSchemaNodeBuilderImpl> result = new ArrayList<>();
         for (UnknownSchemaNode node : nodes) {
             QName qname = new QName(ns, rev, pref, node.getQName().getLocalName());
             List<QName> path = new ArrayList<>(parentPath.getPath());
             path.add(qname);
             SchemaPath schemaPath = SchemaPath.create(path, parentPath.isAbsolute());
-            result.add(new UnknownSchemaNodeBuilder(moduleName, line, qname, schemaPath, node));
+            result.add(new UnknownSchemaNodeBuilderImpl(moduleName, line, qname, schemaPath, node));
         }
         return result;
     }
@@ -837,7 +826,7 @@ public final class ParserUtils {
         private final String toString;
         private final ByteArrayOutputStream output = new ByteArrayOutputStream();
 
-        private ByteSourceImpl(InputStream input) throws IOException {
+        private ByteSourceImpl(final InputStream input) throws IOException {
             toString = input.toString();
             IOUtils.copy(input, output);
         }
index 3bd7a7390e6b6b4eabc1521480b2909b9e65a4ac..6dac4e29a7b584a8524ead46c88480d35990fd7f 100644 (file)
@@ -24,12 +24,13 @@ import org.opendaylight.yangtools.yang.model.api.DataSchemaNode;
 import org.opendaylight.yangtools.yang.model.api.SchemaPath;
 import org.opendaylight.yangtools.yang.model.api.Status;
 import org.opendaylight.yangtools.yang.model.api.UnknownSchemaNode;
-import org.opendaylight.yangtools.yang.parser.builder.api.AbstractSchemaNodeBuilder;
 import org.opendaylight.yangtools.yang.parser.builder.api.AugmentationSchemaBuilder;
 import org.opendaylight.yangtools.yang.parser.builder.api.AugmentationTargetBuilder;
 import org.opendaylight.yangtools.yang.parser.builder.api.DataSchemaNodeBuilder;
-import org.opendaylight.yangtools.yang.parser.util.Comparators;
-import org.opendaylight.yangtools.yang.parser.util.ParserUtils;
+import org.opendaylight.yangtools.yang.parser.builder.api.ConstraintsBuilder;
+import org.opendaylight.yangtools.yang.parser.builder.api.UnknownSchemaNodeBuilder;
+import org.opendaylight.yangtools.yang.parser.builder.util.AbstractSchemaNodeBuilder;
+import org.opendaylight.yangtools.yang.parser.builder.util.Comparators;
 import org.opendaylight.yangtools.yang.parser.util.YangParseException;
 
 import com.google.common.collect.ImmutableList;
@@ -54,14 +55,14 @@ public final class ChoiceBuilder extends AbstractSchemaNodeBuilder implements Da
     public ChoiceBuilder(final String moduleName, final int line, final QName qname, final SchemaPath path) {
         super(moduleName, line, qname);
         this.schemaPath = path;
-        constraints = new ConstraintsBuilder(moduleName, line);
+        constraints = new ConstraintsBuilderImpl(moduleName, line);
     }
 
     public ChoiceBuilder(final String moduleName, final int line, final QName qname, final SchemaPath path,
             final ChoiceNode base) {
         super(moduleName, line, qname);
         this.schemaPath = path;
-        constraints = new ConstraintsBuilder(moduleName, line, base.getConstraints());
+        constraints = new ConstraintsBuilderImpl(moduleName, line, base.getConstraints());
 
         description = base.getDescription();
         reference = base.getReference();
@@ -74,7 +75,7 @@ public final class ChoiceBuilder extends AbstractSchemaNodeBuilder implements Da
         URI ns = qname.getNamespace();
         Date rev = qname.getRevision();
         String pref = qname.getPrefix();
-        Set<DataSchemaNodeBuilder> wrapped = ParserUtils.wrapChildNodes(moduleName, line, new HashSet<DataSchemaNode>(
+        Set<DataSchemaNodeBuilder> wrapped = BuilderUtils.wrapChildNodes(moduleName, line, new HashSet<DataSchemaNode>(
                 base.getCases()), path, ns, rev, pref);
         for (DataSchemaNodeBuilder wrap : wrapped) {
             if (wrap instanceof ChoiceCaseBuilder) {
@@ -82,7 +83,7 @@ public final class ChoiceBuilder extends AbstractSchemaNodeBuilder implements Da
             }
         }
 
-        addedUnknownNodes.addAll(ParserUtils.wrapUnknownNodes(moduleName, line, base.getUnknownSchemaNodes(), path, ns,
+        addedUnknownNodes.addAll(BuilderUtils.wrapUnknownNodes(moduleName, line, base.getUnknownSchemaNodes(), path, ns,
                 rev, pref));
     }
 
@@ -101,7 +102,7 @@ public final class ChoiceBuilder extends AbstractSchemaNodeBuilder implements Da
         instance.addedByUses = addedByUses;
         instance.configuration = configuration;
 
-        instance.constraints = constraints.build();
+        instance.constraints = constraints.toInstance();
         instance.defaultCase = defaultCase;
 
         // CASES
index bd94b0f6cc3997aeb7aa555fd2979af4060ff5de..643a22f6d4abc89e18e384b72e60fd25637d95a2 100644 (file)
@@ -25,13 +25,14 @@ import org.opendaylight.yangtools.yang.model.api.Status;
 import org.opendaylight.yangtools.yang.model.api.TypeDefinition;
 import org.opendaylight.yangtools.yang.model.api.UnknownSchemaNode;
 import org.opendaylight.yangtools.yang.model.api.UsesNode;
-import org.opendaylight.yangtools.yang.parser.builder.api.AbstractDataNodeContainerBuilder;
 import org.opendaylight.yangtools.yang.parser.builder.api.AugmentationSchemaBuilder;
 import org.opendaylight.yangtools.yang.parser.builder.api.AugmentationTargetBuilder;
+import org.opendaylight.yangtools.yang.parser.builder.api.ConstraintsBuilder;
 import org.opendaylight.yangtools.yang.parser.builder.api.DataSchemaNodeBuilder;
 import org.opendaylight.yangtools.yang.parser.builder.api.TypeDefinitionBuilder;
+import org.opendaylight.yangtools.yang.parser.builder.api.UnknownSchemaNodeBuilder;
 import org.opendaylight.yangtools.yang.parser.builder.api.UsesNodeBuilder;
-import org.opendaylight.yangtools.yang.parser.util.ParserUtils;
+import org.opendaylight.yangtools.yang.parser.builder.util.AbstractDataNodeContainerBuilder;
 import org.opendaylight.yangtools.yang.parser.util.YangParseException;
 
 import com.google.common.base.Preconditions;
@@ -56,15 +57,15 @@ public final class ChoiceCaseBuilder extends AbstractDataNodeContainerBuilder im
 
     public ChoiceCaseBuilder(final String moduleName, final int line, final QName qname, final SchemaPath path) {
         super(moduleName, line, qname);
-        this.schemaPath = path;
-        constraints = new ConstraintsBuilder(moduleName, line);
+        this.schemaPath = Preconditions.checkNotNull(path, "Schema Path must not be null");
+        constraints = new ConstraintsBuilderImpl(moduleName, line);
     }
 
     public ChoiceCaseBuilder(final String moduleName, final int line, final QName qname, final SchemaPath path,
             final ChoiceCaseNode base) {
         super(moduleName, line, qname);
-        this.schemaPath = path;
-        constraints = new ConstraintsBuilder(moduleName, line, base.getConstraints());
+        this.schemaPath = Preconditions.checkNotNull(path, "Schema Path must not be null");
+        constraints = new ConstraintsBuilderImpl(moduleName, line, base.getConstraints());
 
         description = base.getDescription();
         reference = base.getReference();
@@ -75,9 +76,9 @@ public final class ChoiceCaseBuilder extends AbstractDataNodeContainerBuilder im
         URI ns = qname.getNamespace();
         Date rev = qname.getRevision();
         String pref = qname.getPrefix();
-        addedChildNodes.addAll(ParserUtils.wrapChildNodes(moduleName, line, base.getChildNodes(), path, ns, rev, pref));
-        addedGroupings.addAll(ParserUtils.wrapGroupings(moduleName, line, base.getGroupings(), path, ns, rev, pref));
-        addedUnknownNodes.addAll(ParserUtils.wrapUnknownNodes(moduleName, line, base.getUnknownSchemaNodes(), path, ns,
+        addedChildNodes.addAll(BuilderUtils.wrapChildNodes(moduleName, line, base.getChildNodes(), path, ns, rev, pref));
+        addedGroupings.addAll(BuilderUtils.wrapGroupings(moduleName, line, base.getGroupings(), path, ns, rev, pref));
+        addedUnknownNodes.addAll(BuilderUtils.wrapUnknownNodes(moduleName, line, base.getUnknownSchemaNodes(), path, ns,
                 rev, pref));
 
         augmentations.addAll(base.getAvailableAugmentations());
@@ -98,7 +99,7 @@ public final class ChoiceCaseBuilder extends AbstractDataNodeContainerBuilder im
         instance.augmenting = augmenting;
         instance.addedByUses = addedByUses;
 
-        instance.constraints = constraints.build();
+        instance.constraints = constraints.toInstance();
 
         // CHILD NODES
         for (DataSchemaNodeBuilder node : addedChildNodes) {
@@ -15,10 +15,11 @@ import org.opendaylight.yangtools.yang.model.api.ConstraintDefinition;
 import org.opendaylight.yangtools.yang.model.api.MustDefinition;
 import org.opendaylight.yangtools.yang.model.api.RevisionAwareXPath;
 import org.opendaylight.yangtools.yang.model.util.RevisionAwareXPathImpl;
+import org.opendaylight.yangtools.yang.parser.builder.api.ConstraintsBuilder;
 
 import com.google.common.collect.ImmutableSet;
 
-public final class ConstraintsBuilder {
+public final class ConstraintsBuilderImpl implements ConstraintsBuilder {
     private static final ConstraintDefinitionImpl EMPTY_CONSTRAINT = new ConstraintDefinitionImpl();
     private static final ConstraintDefinitionImpl EMPTY_MANDATORY_CONSTRAINT;
 
@@ -39,13 +40,13 @@ public final class ConstraintsBuilder {
     private Integer min;
     private Integer max;
 
-    public ConstraintsBuilder(final String moduleName, final int line) {
+    public ConstraintsBuilderImpl(final String moduleName, final int line) {
         this.moduleName = moduleName;
         this.line = line;
         mustDefinitions = new HashSet<MustDefinition>();
     }
 
-    ConstraintsBuilder(final ConstraintsBuilder b) {
+    ConstraintsBuilderImpl(final ConstraintsBuilder b) {
         this.moduleName = b.getModuleName();
         this.line = b.getLine();
         mustDefinitions = new HashSet<MustDefinition>(b.getMustDefinitions());
@@ -55,7 +56,7 @@ public final class ConstraintsBuilder {
         max = b.getMaxElements();
     }
 
-    ConstraintsBuilder(final String moduleName, final int line, final ConstraintDefinition base) {
+    ConstraintsBuilderImpl(final String moduleName, final int line, final ConstraintDefinition base) {
         this.moduleName = moduleName;
         this.line = line;
         whenStmt = base.getWhenCondition();
@@ -65,7 +66,11 @@ public final class ConstraintsBuilder {
         max = base.getMaxElements();
     }
 
-    public ConstraintDefinition build() {
+    /* (non-Javadoc)
+     * @see org.opendaylight.yangtools.yang.parser.builder.impl.IConstraintsBuilder#build()
+     */
+    @Override
+    public ConstraintDefinition toInstance() {
         if (instance != null) {
             return instance;
         }
@@ -97,50 +102,98 @@ public final class ConstraintsBuilder {
         return instance;
     }
 
+    /* (non-Javadoc)
+     * @see org.opendaylight.yangtools.yang.parser.builder.impl.IConstraintsBuilder#getModuleName()
+     */
+    @Override
     public String getModuleName() {
         return moduleName;
     }
 
+    /* (non-Javadoc)
+     * @see org.opendaylight.yangtools.yang.parser.builder.impl.IConstraintsBuilder#getLine()
+     */
+    @Override
     public int getLine() {
         return line;
     }
 
+    /* (non-Javadoc)
+     * @see org.opendaylight.yangtools.yang.parser.builder.impl.IConstraintsBuilder#getMinElements()
+     */
+    @Override
     public Integer getMinElements() {
         return min;
     }
 
+    /* (non-Javadoc)
+     * @see org.opendaylight.yangtools.yang.parser.builder.impl.IConstraintsBuilder#setMinElements(java.lang.Integer)
+     */
+    @Override
     public void setMinElements(final Integer minElements) {
         this.min = minElements;
     }
 
+    /* (non-Javadoc)
+     * @see org.opendaylight.yangtools.yang.parser.builder.impl.IConstraintsBuilder#getMaxElements()
+     */
+    @Override
     public Integer getMaxElements() {
         return max;
     }
 
+    /* (non-Javadoc)
+     * @see org.opendaylight.yangtools.yang.parser.builder.impl.IConstraintsBuilder#setMaxElements(java.lang.Integer)
+     */
+    @Override
     public void setMaxElements(final Integer maxElements) {
         this.max = maxElements;
     }
 
+    /* (non-Javadoc)
+     * @see org.opendaylight.yangtools.yang.parser.builder.impl.IConstraintsBuilder#getMustDefinitions()
+     */
+    @Override
     public Set<MustDefinition> getMustDefinitions() {
         return mustDefinitions;
     }
 
+    /* (non-Javadoc)
+     * @see org.opendaylight.yangtools.yang.parser.builder.impl.IConstraintsBuilder#addMustDefinition(org.opendaylight.yangtools.yang.model.api.MustDefinition)
+     */
+    @Override
     public void addMustDefinition(final MustDefinition must) {
         mustDefinitions.add(must);
     }
 
+    /* (non-Javadoc)
+     * @see org.opendaylight.yangtools.yang.parser.builder.impl.IConstraintsBuilder#getWhenCondition()
+     */
+    @Override
     public String getWhenCondition() {
         return whenCondition;
     }
 
+    /* (non-Javadoc)
+     * @see org.opendaylight.yangtools.yang.parser.builder.impl.IConstraintsBuilder#addWhenCondition(java.lang.String)
+     */
+    @Override
     public void addWhenCondition(final String whenCondition) {
         this.whenCondition = whenCondition;
     }
 
+    /* (non-Javadoc)
+     * @see org.opendaylight.yangtools.yang.parser.builder.impl.IConstraintsBuilder#isMandatory()
+     */
+    @Override
     public boolean isMandatory() {
         return mandatory;
     }
 
+    /* (non-Javadoc)
+     * @see org.opendaylight.yangtools.yang.parser.builder.impl.IConstraintsBuilder#setMandatory(boolean)
+     */
+    @Override
     public void setMandatory(final boolean mandatory) {
         this.mandatory = mandatory;
     }
index 516837151081a16ef985bcdcc1571f754689431c..5de90e46b24a2174ed8a252aea2b294d11f0ba83 100644 (file)
@@ -24,14 +24,15 @@ import org.opendaylight.yangtools.yang.model.api.Status;
 import org.opendaylight.yangtools.yang.model.api.TypeDefinition;
 import org.opendaylight.yangtools.yang.model.api.UnknownSchemaNode;
 import org.opendaylight.yangtools.yang.model.api.UsesNode;
-import org.opendaylight.yangtools.yang.parser.builder.api.AbstractDataNodeContainerBuilder;
 import org.opendaylight.yangtools.yang.parser.builder.api.AugmentationSchemaBuilder;
 import org.opendaylight.yangtools.yang.parser.builder.api.AugmentationTargetBuilder;
+import org.opendaylight.yangtools.yang.parser.builder.api.ConstraintsBuilder;
 import org.opendaylight.yangtools.yang.parser.builder.api.DataSchemaNodeBuilder;
 import org.opendaylight.yangtools.yang.parser.builder.api.GroupingBuilder;
 import org.opendaylight.yangtools.yang.parser.builder.api.TypeDefinitionBuilder;
+import org.opendaylight.yangtools.yang.parser.builder.api.UnknownSchemaNodeBuilder;
 import org.opendaylight.yangtools.yang.parser.builder.api.UsesNodeBuilder;
-import org.opendaylight.yangtools.yang.parser.util.ParserUtils;
+import org.opendaylight.yangtools.yang.parser.builder.util.AbstractDataNodeContainerBuilder;
 import org.opendaylight.yangtools.yang.parser.util.YangParseException;
 
 import com.google.common.base.Preconditions;
@@ -58,16 +59,16 @@ public final class ContainerSchemaNodeBuilder extends AbstractDataNodeContainerB
 
     public ContainerSchemaNodeBuilder(final String moduleName, final int line, final QName qname, final SchemaPath path) {
         super(moduleName, line, qname);
-        this.path = path;
-        this.constraints = new ConstraintsBuilder(moduleName, line);
+        this.path = Preconditions.checkNotNull(path, "Schema Path must not be null");
+        this.constraints = new ConstraintsBuilderImpl(moduleName, line);
     }
 
     // constructor for uses
     public ContainerSchemaNodeBuilder(final String moduleName, final int line, final QName qname,
             final SchemaPath path, final ContainerSchemaNode base) {
         super(moduleName, line, qname);
-        this.path = path;
-        constraints = new ConstraintsBuilder(moduleName, line, base.getConstraints());
+        this.path = Preconditions.checkNotNull(path, "Schema Path must not be null");
+        constraints = new ConstraintsBuilderImpl(moduleName, line, base.getConstraints());
 
         description = base.getDescription();
         reference = base.getReference();
@@ -80,10 +81,10 @@ public final class ContainerSchemaNodeBuilder extends AbstractDataNodeContainerB
         URI ns = qname.getNamespace();
         Date rev = qname.getRevision();
         String pref = qname.getPrefix();
-        addedChildNodes.addAll(ParserUtils.wrapChildNodes(moduleName, line, base.getChildNodes(), path, ns, rev, pref));
-        addedGroupings.addAll(ParserUtils.wrapGroupings(moduleName, line, base.getGroupings(), path, ns, rev, pref));
-        addedTypedefs.addAll(ParserUtils.wrapTypedefs(moduleName, line, base, path, ns, rev, pref));
-        addedUnknownNodes.addAll(ParserUtils.wrapUnknownNodes(moduleName, line, base.getUnknownSchemaNodes(), path, ns,
+        addedChildNodes.addAll(BuilderUtils.wrapChildNodes(moduleName, line, base.getChildNodes(), path, ns, rev, pref));
+        addedGroupings.addAll(BuilderUtils.wrapGroupings(moduleName, line, base.getGroupings(), path, ns, rev, pref));
+        addedTypedefs.addAll(BuilderUtils.wrapTypedefs(moduleName, line, base, path, ns, rev, pref));
+        addedUnknownNodes.addAll(BuilderUtils.wrapUnknownNodes(moduleName, line, base.getUnknownSchemaNodes(), path, ns,
                 rev, pref));
 
         augmentations.addAll(base.getAvailableAugmentations());
@@ -104,7 +105,7 @@ public final class ContainerSchemaNodeBuilder extends AbstractDataNodeContainerB
         instance.augmenting = augmenting;
         instance.addedByUses = addedByUses;
         instance.configuration = configuration;
-        instance.constraints = constraints.build();
+        instance.constraints = constraints.toInstance();
         instance.presence = presence;
 
         // CHILD NODES
similarity index 92%
rename from yang/yang-parser-impl/src/main/java/org/opendaylight/yangtools/yang/parser/util/CopyUtils.java
rename to yang/yang-parser-impl/src/main/java/org/opendaylight/yangtools/yang/parser/builder/impl/CopyUtils.java
index 2b3e29bb7faf95abe89cf257a24835f4da7267f6..ce88a3b7f0015de0571c98f9d3dff560ebc8ff16 100644 (file)
@@ -5,11 +5,12 @@
  * terms of the Eclipse Public License v1.0 which accompanies this distribution,
  * and is available at http://www.eclipse.org/legal/epl-v10.html
  */
-package org.opendaylight.yangtools.yang.parser.util;
+package org.opendaylight.yangtools.yang.parser.builder.impl;
 
 import java.util.ArrayList;
 import java.util.Collections;
 import java.util.List;
+
 import org.opendaylight.yangtools.yang.common.QName;
 import org.opendaylight.yangtools.yang.model.api.SchemaPath;
 import org.opendaylight.yangtools.yang.model.api.TypeDefinition;
@@ -17,25 +18,12 @@ import org.opendaylight.yangtools.yang.parser.builder.api.AugmentationSchemaBuil
 import org.opendaylight.yangtools.yang.parser.builder.api.Builder;
 import org.opendaylight.yangtools.yang.parser.builder.api.DataSchemaNodeBuilder;
 import org.opendaylight.yangtools.yang.parser.builder.api.GroupingBuilder;
+import org.opendaylight.yangtools.yang.parser.builder.api.ConstraintsBuilder;
 import org.opendaylight.yangtools.yang.parser.builder.api.SchemaNodeBuilder;
 import org.opendaylight.yangtools.yang.parser.builder.api.TypeDefinitionBuilder;
+import org.opendaylight.yangtools.yang.parser.builder.api.UnknownSchemaNodeBuilder;
 import org.opendaylight.yangtools.yang.parser.builder.api.UsesNodeBuilder;
-import org.opendaylight.yangtools.yang.parser.builder.impl.AnyXmlBuilder;
-import org.opendaylight.yangtools.yang.parser.builder.impl.AugmentationSchemaBuilderImpl;
-import org.opendaylight.yangtools.yang.parser.builder.impl.ChoiceBuilder;
-import org.opendaylight.yangtools.yang.parser.builder.impl.ChoiceCaseBuilder;
-import org.opendaylight.yangtools.yang.parser.builder.impl.ConstraintsBuilder;
-import org.opendaylight.yangtools.yang.parser.builder.impl.ContainerSchemaNodeBuilder;
-import org.opendaylight.yangtools.yang.parser.builder.impl.GroupingBuilderImpl;
-import org.opendaylight.yangtools.yang.parser.builder.impl.IdentityrefTypeBuilder;
-import org.opendaylight.yangtools.yang.parser.builder.impl.LeafListSchemaNodeBuilder;
-import org.opendaylight.yangtools.yang.parser.builder.impl.LeafSchemaNodeBuilder;
-import org.opendaylight.yangtools.yang.parser.builder.impl.ListSchemaNodeBuilder;
-import org.opendaylight.yangtools.yang.parser.builder.impl.ModuleBuilder;
-import org.opendaylight.yangtools.yang.parser.builder.impl.TypeDefinitionBuilderImpl;
-import org.opendaylight.yangtools.yang.parser.builder.impl.UnionTypeBuilder;
-import org.opendaylight.yangtools.yang.parser.builder.impl.UnknownSchemaNodeBuilder;
-import org.opendaylight.yangtools.yang.parser.builder.impl.UsesNodeBuilderImpl;
+import org.opendaylight.yangtools.yang.parser.util.YangParseException;
 
 public final class CopyUtils {
 
@@ -424,12 +412,12 @@ public final class CopyUtils {
         return copy;
     }
 
-    public static UnknownSchemaNodeBuilder copy(final UnknownSchemaNodeBuilder old, final Builder newParent, final boolean updateQName) {
+    public static UnknownSchemaNodeBuilderImpl copy(final UnknownSchemaNodeBuilder old, final Builder newParent, final boolean updateQName) {
         DataBean data = getdata(old, newParent, updateQName);
         QName newQName = data.qname;
         SchemaPath newSchemaPath = data.schemaPath;
 
-        UnknownSchemaNodeBuilder c = new UnknownSchemaNodeBuilder(newParent.getModuleName(), newParent.getLine(),
+        UnknownSchemaNodeBuilderImpl c = new UnknownSchemaNodeBuilderImpl(newParent.getModuleName(), newParent.getLine(),
                 newQName, newSchemaPath);
 
         c.setNodeType(old.getNodeType());
@@ -463,7 +451,7 @@ public final class CopyUtils {
             }
         } else if (newParent instanceof AugmentationSchemaBuilder) {
             AugmentationSchemaBuilder augment = (AugmentationSchemaBuilder) newParent;
-            ModuleBuilder parent = ParserUtils.getParentModule(newParent);
+            ModuleBuilder parent = BuilderUtils.getParentModule(newParent);
             if (updateQName) {
                 newQName = new QName(parent.getNamespace(), parent.getRevision(), parent.getPrefix(), old.getQName()
                         .getLocalName());
index 7d9805761391cfb4158a0ba642c08548a347873e..2608d7bff2c4df33072d97284cf90d7f681b683a 100644 (file)
@@ -13,8 +13,8 @@ import org.opendaylight.yangtools.yang.model.api.Deviation;
 import org.opendaylight.yangtools.yang.model.api.Deviation.Deviate;
 import org.opendaylight.yangtools.yang.model.api.SchemaPath;
 import org.opendaylight.yangtools.yang.model.api.UnknownSchemaNode;
-import org.opendaylight.yangtools.yang.parser.builder.api.AbstractBuilder;
-import org.opendaylight.yangtools.yang.parser.util.ParserUtils;
+import org.opendaylight.yangtools.yang.parser.builder.api.UnknownSchemaNodeBuilder;
+import org.opendaylight.yangtools.yang.parser.builder.util.AbstractBuilder;
 import org.opendaylight.yangtools.yang.parser.util.YangParseException;
 
 import com.google.common.collect.ImmutableList;
@@ -33,7 +33,7 @@ public final class DeviationBuilder extends AbstractBuilder {
                     "Deviation argument string must be an absolute schema node identifier.");
         }
         this.targetPathStr = targetPathStr;
-        this.targetPath = ParserUtils.parseXPathString(targetPathStr);
+        this.targetPath = BuilderUtils.parseXPathString(targetPathStr);
     }
 
     @Override
similarity index 83%
rename from yang/yang-parser-impl/src/main/java/org/opendaylight/yangtools/yang/parser/builder/impl/ExtensionBuilder.java
rename to yang/yang-parser-impl/src/main/java/org/opendaylight/yangtools/yang/parser/builder/impl/ExtensionBuilderImpl.java
index 9b48c9dc15d5f80925939eed75b0faf0d3178232..5d6eed0f79bab5c8707ea0fa4dbbaeef49ac70b9 100644 (file)
@@ -14,18 +14,21 @@ import org.opendaylight.yangtools.yang.model.api.ExtensionDefinition;
 import org.opendaylight.yangtools.yang.model.api.SchemaPath;
 import org.opendaylight.yangtools.yang.model.api.Status;
 import org.opendaylight.yangtools.yang.model.api.UnknownSchemaNode;
-import org.opendaylight.yangtools.yang.parser.builder.api.AbstractSchemaNodeBuilder;
+import org.opendaylight.yangtools.yang.parser.builder.api.ExtensionBuilder;
+import org.opendaylight.yangtools.yang.parser.builder.api.UnknownSchemaNodeBuilder;
+import org.opendaylight.yangtools.yang.parser.builder.util.AbstractSchemaNodeBuilder;
 
+import com.google.common.base.Preconditions;
 import com.google.common.collect.ImmutableList;
 
-public final class ExtensionBuilder extends AbstractSchemaNodeBuilder {
+public final class ExtensionBuilderImpl extends AbstractSchemaNodeBuilder implements ExtensionBuilder {
     private ExtensionDefinitionImpl instance;
     private String argument;
     private boolean yin;
 
-    ExtensionBuilder(final String moduleName, final int line, final QName qname, final SchemaPath path) {
+    ExtensionBuilderImpl(final String moduleName, final int line, final QName qname, final SchemaPath path) {
         super(moduleName, line, qname);
-        this.schemaPath = path;
+        this.schemaPath = Preconditions.checkNotNull(path, "Schema Path must not be null");
     }
 
     @Override
@@ -47,11 +50,13 @@ public final class ExtensionBuilder extends AbstractSchemaNodeBuilder {
         return instance;
     }
 
-    public void setYinElement(boolean yin) {
+    @Override
+    public void setYinElement(final boolean yin) {
         this.yin = yin;
     }
 
-    public void setArgument(String argument) {
+    @Override
+    public void setArgument(final String argument) {
         this.argument = argument;
     }
 
@@ -70,7 +75,7 @@ public final class ExtensionBuilder extends AbstractSchemaNodeBuilder {
         private ImmutableList<UnknownSchemaNode> unknownNodes;
         private boolean yin;
 
-        private ExtensionDefinitionImpl(QName qname, SchemaPath path) {
+        private ExtensionDefinitionImpl(final QName qname, final SchemaPath path) {
             this.qname = qname;
             this.schemaPath = path;
         }
@@ -125,7 +130,7 @@ public final class ExtensionBuilder extends AbstractSchemaNodeBuilder {
         }
 
         @Override
-        public boolean equals(Object obj) {
+        public boolean equals(final Object obj) {
             if (this == obj) {
                 return true;
             }
index 0417dd4dba0edf50e04d489eff54bfb09960d82c..9b9b1b9218ec73c6316da7608c4979d1156450fe 100644 (file)
@@ -14,8 +14,10 @@ import org.opendaylight.yangtools.yang.model.api.FeatureDefinition;
 import org.opendaylight.yangtools.yang.model.api.SchemaPath;
 import org.opendaylight.yangtools.yang.model.api.Status;
 import org.opendaylight.yangtools.yang.model.api.UnknownSchemaNode;
-import org.opendaylight.yangtools.yang.parser.builder.api.AbstractSchemaNodeBuilder;
+import org.opendaylight.yangtools.yang.parser.builder.api.UnknownSchemaNodeBuilder;
+import org.opendaylight.yangtools.yang.parser.builder.util.AbstractSchemaNodeBuilder;
 
+import com.google.common.base.Preconditions;
 import com.google.common.collect.ImmutableList;
 
 public final class FeatureBuilder extends AbstractSchemaNodeBuilder {
@@ -23,7 +25,7 @@ public final class FeatureBuilder extends AbstractSchemaNodeBuilder {
 
     FeatureBuilder(final String moduleName, final int line, final QName qname, final SchemaPath path) {
         super(moduleName, line, qname);
-        this.schemaPath = path;
+        this.schemaPath = Preconditions.checkNotNull(path, "Schema Path must not be null");
     }
 
     @Override
@@ -101,7 +103,7 @@ public final class FeatureBuilder extends AbstractSchemaNodeBuilder {
         }
 
         @Override
-        public boolean equals(Object obj) {
+        public boolean equals(final Object obj) {
             if (this == obj) {
                 return true;
             }
index ced13261d0d85ffd0f9d02469b46134d83bdab11..51239575fd5410c9f4c733b9f47e3d6c2c0dc7ea 100644 (file)
@@ -21,14 +21,13 @@ import org.opendaylight.yangtools.yang.model.api.Status;
 import org.opendaylight.yangtools.yang.model.api.TypeDefinition;
 import org.opendaylight.yangtools.yang.model.api.UnknownSchemaNode;
 import org.opendaylight.yangtools.yang.model.api.UsesNode;
-import org.opendaylight.yangtools.yang.parser.builder.api.AbstractDataNodeContainerBuilder;
 import org.opendaylight.yangtools.yang.parser.builder.api.Builder;
 import org.opendaylight.yangtools.yang.parser.builder.api.DataSchemaNodeBuilder;
 import org.opendaylight.yangtools.yang.parser.builder.api.GroupingBuilder;
 import org.opendaylight.yangtools.yang.parser.builder.api.TypeDefinitionBuilder;
+import org.opendaylight.yangtools.yang.parser.builder.api.UnknownSchemaNodeBuilder;
 import org.opendaylight.yangtools.yang.parser.builder.api.UsesNodeBuilder;
-import org.opendaylight.yangtools.yang.parser.util.CopyUtils;
-import org.opendaylight.yangtools.yang.parser.util.ParserUtils;
+import org.opendaylight.yangtools.yang.parser.builder.util.AbstractDataNodeContainerBuilder;
 import org.opendaylight.yangtools.yang.parser.util.YangParseException;
 
 import com.google.common.base.Preconditions;
@@ -47,13 +46,12 @@ public final class GroupingBuilderImpl extends AbstractDataNodeContainerBuilder
 
     public GroupingBuilderImpl(final String moduleName, final int line, final QName qname, final SchemaPath path) {
         super(moduleName, line, qname);
-        schemaPath = path;
+        this.schemaPath = Preconditions.checkNotNull(path, "Schema Path must not be null");
     }
 
     public GroupingBuilderImpl(final String moduleName, final int line, final QName qname, final SchemaPath path,
             final GroupingDefinition base) {
-        super(moduleName, line, base.getQName());
-        schemaPath = path;
+        this(moduleName, line, base.getQName(),path);
 
         description = base.getDescription();
         reference = base.getReference();
@@ -63,10 +61,10 @@ public final class GroupingBuilderImpl extends AbstractDataNodeContainerBuilder
         URI ns = qname.getNamespace();
         Date rev = qname.getRevision();
         String pref = qname.getPrefix();
-        addedChildNodes.addAll(ParserUtils.wrapChildNodes(moduleName, line, base.getChildNodes(), path, ns, rev, pref));
-        addedGroupings.addAll(ParserUtils.wrapGroupings(moduleName, line, base.getGroupings(), path, ns, rev, pref));
-        addedTypedefs.addAll(ParserUtils.wrapTypedefs(moduleName, line, base, path, ns, rev, pref));
-        addedUnknownNodes.addAll(ParserUtils.wrapUnknownNodes(moduleName, line, base.getUnknownSchemaNodes(), path, ns,
+        addedChildNodes.addAll(BuilderUtils.wrapChildNodes(moduleName, line, base.getChildNodes(), path, ns, rev, pref));
+        addedGroupings.addAll(BuilderUtils.wrapGroupings(moduleName, line, base.getGroupings(), path, ns, rev, pref));
+        addedTypedefs.addAll(BuilderUtils.wrapTypedefs(moduleName, line, base, path, ns, rev, pref));
+        addedUnknownNodes.addAll(BuilderUtils.wrapUnknownNodes(moduleName, line, base.getUnknownSchemaNodes(), path, ns,
                 rev, pref));
 
         usesNodes.addAll(base.getUses());
@@ -123,7 +121,7 @@ public final class GroupingBuilderImpl extends AbstractDataNodeContainerBuilder
         final Set<DataSchemaNodeBuilder> nodes = new HashSet<>();
         for (DataSchemaNodeBuilder node : addedChildNodes) {
             DataSchemaNodeBuilder copy = CopyUtils.copy(node, newParent, true);
-            ParserUtils.setNodeAddedByUses(copy);
+            BuilderUtils.setNodeAddedByUses(copy);
             nodes.add(copy);
         }
         return nodes;
@@ -146,7 +144,7 @@ public final class GroupingBuilderImpl extends AbstractDataNodeContainerBuilder
             GroupingBuilder copy = CopyUtils.copy(node, newParent, true);
             copy.setAddedByUses(true);
             for (DataSchemaNodeBuilder childNode : copy.getChildNodeBuilders()) {
-                ParserUtils.setNodeAddedByUses(childNode);
+                BuilderUtils.setNodeAddedByUses(childNode);
             }
             nodes.add(copy);
         }
@@ -157,7 +155,7 @@ public final class GroupingBuilderImpl extends AbstractDataNodeContainerBuilder
     public Set<UnknownSchemaNodeBuilder> instantiateUnknownNodes(final Builder newParent) {
         final Set<UnknownSchemaNodeBuilder> nodes = new HashSet<>();
         for (UnknownSchemaNodeBuilder node : addedUnknownNodes) {
-            UnknownSchemaNodeBuilder copy = CopyUtils.copy(node, newParent, true);
+            UnknownSchemaNodeBuilderImpl copy = CopyUtils.copy(node, newParent, true);
             copy.setAddedByUses(true);
             nodes.add(copy);
         }
similarity index 87%
rename from yang/yang-parser-impl/src/main/java/org/opendaylight/yangtools/yang/parser/util/GroupingUtils.java
rename to yang/yang-parser-impl/src/main/java/org/opendaylight/yangtools/yang/parser/builder/impl/GroupingUtils.java
index 2b37a2ce70f88e732465a071b72adfec89bc28e2..42957db085e0192263b07a77a91e4cc79a942003 100644 (file)
@@ -5,7 +5,7 @@
  * terms of the Eclipse Public License v1.0 which accompanies this distribution,
  * and is available at http://www.eclipse.org/legal/epl-v10.html
  */
-package org.opendaylight.yangtools.yang.parser.util;
+package org.opendaylight.yangtools.yang.parser.builder.impl;
 
 import java.util.Comparator;
 import java.util.Date;
@@ -20,10 +20,9 @@ import org.opendaylight.yangtools.yang.parser.builder.api.Builder;
 import org.opendaylight.yangtools.yang.parser.builder.api.DataNodeContainerBuilder;
 import org.opendaylight.yangtools.yang.parser.builder.api.DataSchemaNodeBuilder;
 import org.opendaylight.yangtools.yang.parser.builder.api.GroupingBuilder;
+import org.opendaylight.yangtools.yang.parser.builder.api.RefineBuilder;
 import org.opendaylight.yangtools.yang.parser.builder.api.UsesNodeBuilder;
-import org.opendaylight.yangtools.yang.parser.builder.impl.ChoiceBuilder;
-import org.opendaylight.yangtools.yang.parser.builder.impl.ModuleBuilder;
-import org.opendaylight.yangtools.yang.parser.builder.impl.RpcDefinitionBuilder;
+import org.opendaylight.yangtools.yang.parser.util.YangParseException;
 
 public final class GroupingUtils {
 
@@ -68,7 +67,7 @@ public final class GroupingUtils {
         if (groupingPrefix.equals(module.getPrefix())) {
             dependentModule = module;
         } else {
-            dependentModule = ParserUtils.findModuleFromBuilders(modules, module, groupingPrefix, line);
+            dependentModule = BuilderUtils.findModuleFromBuilders(modules, module, groupingPrefix, line);
         }
 
         if (dependentModule == null) {
@@ -135,7 +134,7 @@ public final class GroupingUtils {
             groupingName = groupingString;
         }
 
-        Module dependentModule = ParserUtils.findModuleFromContext(context, module, groupingPrefix, line);
+        Module dependentModule = BuilderUtils.findModuleFromContext(context, module, groupingPrefix, line);
         return findGroupingDefinition(dependentModule.getGroupings(), groupingName);
     }
 
@@ -148,7 +147,7 @@ public final class GroupingUtils {
      *            name of grouping
      * @return grouping with given name if present in collection, null otherwise
      */
-    public static GroupingBuilder findGroupingBuilder(Set<GroupingBuilder> groupings, String name) {
+    public static GroupingBuilder findGroupingBuilder(final Set<GroupingBuilder> groupings, final String name) {
         for (GroupingBuilder grouping : groupings) {
             if (grouping.getQName().getLocalName().equals(name)) {
                 return grouping;
@@ -166,7 +165,7 @@ public final class GroupingUtils {
      *            name of grouping
      * @return grouping with given name if present in collection, null otherwise
      */
-    public static GroupingDefinition findGroupingDefinition(Set<GroupingDefinition> groupings, String name) {
+    public static GroupingDefinition findGroupingDefinition(final Set<GroupingDefinition> groupings, final String name) {
         for (GroupingDefinition grouping : groupings) {
             if (grouping.getQName().getLocalName().equals(name)) {
                 return grouping;
@@ -182,9 +181,9 @@ public final class GroupingUtils {
      * @param usesNode
      *            uses node containing refine statements
      */
-    public static void performRefine(UsesNodeBuilder usesNode) {
-        for (RefineHolder refine : usesNode.getRefines()) {
-            String refineTargetPath = refine.getName();
+    public static void performRefine(final UsesNodeBuilder usesNode) {
+        for (RefineBuilder refine : usesNode.getRefines()) {
+            String refineTargetPath = refine.getTargetPathString();
 
             String[] splitted = refineTargetPath.split("/");
             Builder currentNode = usesNode.getParent();
@@ -199,7 +198,7 @@ public final class GroupingUtils {
             DataSchemaNodeBuilder nodeToRefine = (DataSchemaNodeBuilder) currentNode;
             if (nodeToRefine == null) {
                 throw new YangParseException(refine.getModuleName(), refine.getLine(), "Refine target node '"
-                        + refine.getName() + "' not found");
+                        + refine.getTargetPathString() + "' not found");
             }
             RefineUtils.performRefine(nodeToRefine, refine);
             usesNode.addRefineNode(nodeToRefine);
@@ -208,12 +207,12 @@ public final class GroupingUtils {
 
     public static class UsesComparator implements Comparator<UsesNodeBuilder> {
         @Override
-        public int compare(UsesNodeBuilder o1, UsesNodeBuilder o2) {
+        public int compare(final UsesNodeBuilder o1, final UsesNodeBuilder o2) {
             return getElementPosition(o2) - getElementPosition(o1);
         }
     }
 
-    private static int getElementPosition(UsesNodeBuilder usesNode) {
+    private static int getElementPosition(final UsesNodeBuilder usesNode) {
         int i = 0;
         Builder parent = usesNode.getParent();
         while (!(parent instanceof ModuleBuilder)) {
index d084ed0b7f7bb763dd03d16a2b752206adc366d3..0b58cf4c051300f9e454a1f01a95f3063157a3d3 100644 (file)
@@ -7,17 +7,21 @@
  */
 package org.opendaylight.yangtools.yang.parser.builder.impl;
 
-import com.google.common.collect.ImmutableList;
 import java.util.Collections;
 import java.util.HashSet;
 import java.util.List;
 import java.util.Set;
+
 import org.opendaylight.yangtools.yang.common.QName;
 import org.opendaylight.yangtools.yang.model.api.IdentitySchemaNode;
 import org.opendaylight.yangtools.yang.model.api.SchemaPath;
 import org.opendaylight.yangtools.yang.model.api.Status;
 import org.opendaylight.yangtools.yang.model.api.UnknownSchemaNode;
-import org.opendaylight.yangtools.yang.parser.builder.api.AbstractSchemaNodeBuilder;
+import org.opendaylight.yangtools.yang.parser.builder.api.UnknownSchemaNodeBuilder;
+import org.opendaylight.yangtools.yang.parser.builder.util.AbstractSchemaNodeBuilder;
+
+import com.google.common.base.Preconditions;
+import com.google.common.collect.ImmutableList;
 
 public final class IdentitySchemaNodeBuilder extends AbstractSchemaNodeBuilder {
     private IdentitySchemaNodeImpl instance;
@@ -28,10 +32,10 @@ public final class IdentitySchemaNodeBuilder extends AbstractSchemaNodeBuilder {
 
     IdentitySchemaNodeBuilder(final String moduleName, final int line, final QName qname, final SchemaPath path) {
         super(moduleName, line, qname);
-        schemaPath = path;
+        this.schemaPath = Preconditions.checkNotNull(path, "Schema Path must not be null");
     }
 
-    IdentitySchemaNodeBuilder(final String moduleName, IdentitySchemaNode base) {
+    IdentitySchemaNodeBuilder(final String moduleName, final IdentitySchemaNode base) {
         super(moduleName, 0, base.getQName());
         schemaPath = base.getPath();
         derivedIdentities.addAll(base.getDerivedIdentities());
@@ -77,7 +81,7 @@ public final class IdentitySchemaNodeBuilder extends AbstractSchemaNodeBuilder {
         this.baseIdentityBuilder = baseType;
     }
 
-    public void addDerivedIdentity(IdentitySchemaNode derivedIdentity) {
+    public void addDerivedIdentity(final IdentitySchemaNode derivedIdentity) {
         if (derivedIdentity != null) {
             derivedIdentities.add(derivedIdentity);
         }
@@ -155,7 +159,7 @@ public final class IdentitySchemaNodeBuilder extends AbstractSchemaNodeBuilder {
         }
 
         @Override
-        public boolean equals(Object obj) {
+        public boolean equals(final Object obj) {
             if (this == obj) {
                 return true;
             }
index b791ae8a8c4426b14acf3c354da0c188242b30d7..a76bc1774bdcd6c364c7fde48949f8c308d29232 100644 (file)
@@ -19,10 +19,13 @@ import org.opendaylight.yangtools.yang.model.api.type.PatternConstraint;
 import org.opendaylight.yangtools.yang.model.api.type.RangeConstraint;
 import org.opendaylight.yangtools.yang.model.util.BaseTypes;
 import org.opendaylight.yangtools.yang.model.util.IdentityrefType;
-import org.opendaylight.yangtools.yang.parser.builder.api.AbstractTypeAwareBuilder;
 import org.opendaylight.yangtools.yang.parser.builder.api.TypeDefinitionBuilder;
+import org.opendaylight.yangtools.yang.parser.builder.api.UnknownSchemaNodeBuilder;
+import org.opendaylight.yangtools.yang.parser.builder.util.AbstractTypeAwareBuilder;
 import org.opendaylight.yangtools.yang.parser.util.YangParseException;
 
+import com.google.common.base.Preconditions;
+
 /**
  * Builder for YANG identityref type.
  */
@@ -37,7 +40,8 @@ public final class IdentityrefTypeBuilder extends AbstractTypeAwareBuilder imple
             final SchemaPath schemaPath) {
         super(moduleName, line, BaseTypes.constructQName(NAME));
         this.baseString = baseString;
-        this.schemaPath = schemaPath;
+        this.schemaPath = Preconditions.checkNotNull(schemaPath, "Schema Path must not be null");
+
     }
 
     @Override
index 8234ec678238a83ae3804e4a57182d905788f857..445f9221c3ca1a9fb4f7a34a9e04d5b1578223d5 100644 (file)
@@ -16,8 +16,10 @@ import org.opendaylight.yangtools.yang.model.api.SchemaPath;
 import org.opendaylight.yangtools.yang.model.api.Status;
 import org.opendaylight.yangtools.yang.model.api.TypeDefinition;
 import org.opendaylight.yangtools.yang.model.api.UnknownSchemaNode;
-import org.opendaylight.yangtools.yang.parser.builder.api.AbstractTypeAwareBuilder;
+import org.opendaylight.yangtools.yang.parser.builder.api.ConstraintsBuilder;
 import org.opendaylight.yangtools.yang.parser.builder.api.DataSchemaNodeBuilder;
+import org.opendaylight.yangtools.yang.parser.builder.api.UnknownSchemaNodeBuilder;
+import org.opendaylight.yangtools.yang.parser.builder.util.AbstractTypeAwareBuilder;
 
 import com.google.common.base.Preconditions;
 import com.google.common.collect.ImmutableList;
@@ -38,15 +40,15 @@ public final class LeafListSchemaNodeBuilder extends AbstractTypeAwareBuilder im
 
     public LeafListSchemaNodeBuilder(final String moduleName, final int line, final QName qname, final SchemaPath path) {
         super(moduleName, line, qname);
-        this.schemaPath = path;
-        constraints = new ConstraintsBuilder(moduleName, line);
+        this.schemaPath = Preconditions.checkNotNull(path, "Schema Path must not be null");
+        constraints = new ConstraintsBuilderImpl(moduleName, line);
     }
 
     public LeafListSchemaNodeBuilder(final String moduleName, final int line, final QName qname, final SchemaPath path,
             final LeafListSchemaNode base) {
         super(moduleName, line, qname);
-        schemaPath = path;
-        constraints = new ConstraintsBuilder(moduleName, line, base.getConstraints());
+        this.schemaPath = Preconditions.checkNotNull(path, "Schema Path must not be null");
+        constraints = new ConstraintsBuilderImpl(moduleName, line, base.getConstraints());
 
         description = base.getDescription();
         reference = base.getReference();
@@ -73,7 +75,7 @@ public final class LeafListSchemaNodeBuilder extends AbstractTypeAwareBuilder im
         instance.augmenting = augmenting;
         instance.addedByUses = addedByUses;
         instance.configuration = configuration;
-        instance.constraintsDef = constraints.build();
+        instance.constraintsDef = constraints.toInstance();
         instance.userOrdered = userOrdered;
 
         if (type == null) {
@@ -97,7 +99,7 @@ public final class LeafListSchemaNodeBuilder extends AbstractTypeAwareBuilder im
     }
 
     @Override
-    public void setPath(SchemaPath path) {
+    public void setPath(final SchemaPath path) {
         this.schemaPath = path;
     }
 
@@ -127,7 +129,7 @@ public final class LeafListSchemaNodeBuilder extends AbstractTypeAwareBuilder im
     }
 
     @Override
-    public void setStatus(Status status) {
+    public void setStatus(final Status status) {
         this.status = Preconditions.checkNotNull(status, "status cannot be null");
     }
 
@@ -137,7 +139,7 @@ public final class LeafListSchemaNodeBuilder extends AbstractTypeAwareBuilder im
     }
 
     @Override
-    public void setAugmenting(boolean augmenting) {
+    public void setAugmenting(final boolean augmenting) {
         this.augmenting = augmenting;
     }
 
@@ -157,7 +159,7 @@ public final class LeafListSchemaNodeBuilder extends AbstractTypeAwareBuilder im
     }
 
     @Override
-    public void setConfiguration(boolean configuration) {
+    public void setConfiguration(final boolean configuration) {
         this.configuration = configuration;
     }
 
@@ -183,7 +185,7 @@ public final class LeafListSchemaNodeBuilder extends AbstractTypeAwareBuilder im
     }
 
     @Override
-    public boolean equals(Object obj) {
+    public boolean equals(final Object obj) {
         if (this == obj) {
             return true;
         }
@@ -305,7 +307,7 @@ public final class LeafListSchemaNodeBuilder extends AbstractTypeAwareBuilder im
         }
 
         @Override
-        public boolean equals(Object obj) {
+        public boolean equals(final Object obj) {
             if (this == obj) {
                 return true;
             }
index 318f5465abbcb8cc09f463f2920274f9480087e7..8e1e9053053aa99b80791997a9639941dfa59e74 100644 (file)
@@ -16,8 +16,10 @@ import org.opendaylight.yangtools.yang.model.api.SchemaPath;
 import org.opendaylight.yangtools.yang.model.api.Status;
 import org.opendaylight.yangtools.yang.model.api.TypeDefinition;
 import org.opendaylight.yangtools.yang.model.api.UnknownSchemaNode;
-import org.opendaylight.yangtools.yang.parser.builder.api.AbstractTypeAwareBuilder;
+import org.opendaylight.yangtools.yang.parser.builder.api.ConstraintsBuilder;
 import org.opendaylight.yangtools.yang.parser.builder.api.DataSchemaNodeBuilder;
+import org.opendaylight.yangtools.yang.parser.builder.api.UnknownSchemaNodeBuilder;
+import org.opendaylight.yangtools.yang.parser.builder.util.AbstractTypeAwareBuilder;
 import org.opendaylight.yangtools.yang.parser.util.YangParseException;
 
 import com.google.common.base.Preconditions;
@@ -40,14 +42,14 @@ public final class LeafSchemaNodeBuilder extends AbstractTypeAwareBuilder implem
 
     public LeafSchemaNodeBuilder(final String moduleName, final int line, final QName qname, final SchemaPath schemaPath) {
         super(moduleName, line, qname);
-        this.schemaPath = schemaPath;
-        constraints = new ConstraintsBuilder(moduleName, line);
+        this.schemaPath = Preconditions.checkNotNull(schemaPath, "Schema Path must not be null");
+        constraints = new ConstraintsBuilderImpl(moduleName, line);
     }
 
-    public LeafSchemaNodeBuilder(String moduleName, int line, QName qname, SchemaPath path, LeafSchemaNode base) {
+    public LeafSchemaNodeBuilder(final String moduleName, final int line, final QName qname, final SchemaPath path, final LeafSchemaNode base) {
         super(moduleName, line, qname);
-        this.schemaPath = path;
-        constraints = new ConstraintsBuilder(moduleName, line, base.getConstraints());
+        this.schemaPath = Preconditions.checkNotNull(path, "Schema Path must not be null");
+        constraints = new ConstraintsBuilderImpl(moduleName, line, base.getConstraints());
 
         description = base.getDescription();
         reference = base.getReference();
@@ -76,7 +78,7 @@ public final class LeafSchemaNodeBuilder extends AbstractTypeAwareBuilder implem
         instance.augmenting = augmenting;
         instance.addedByUses = addedByUses;
         instance.configuration = configuration;
-        instance.constraintsDef = constraints.build();
+        instance.constraintsDef = constraints.toInstance();
         instance.defaultStr = defaultStr;
         instance.unitsStr = unitsStr;
 
@@ -106,7 +108,7 @@ public final class LeafSchemaNodeBuilder extends AbstractTypeAwareBuilder implem
     }
 
     @Override
-    public void setPath(SchemaPath path) {
+    public void setPath(final SchemaPath path) {
         this.schemaPath = path;
     }
 
@@ -141,7 +143,7 @@ public final class LeafSchemaNodeBuilder extends AbstractTypeAwareBuilder implem
     }
 
     @Override
-    public void setStatus(Status status) {
+    public void setStatus(final Status status) {
         this.status = Preconditions.checkNotNull(status, "status cannot be null");
     }
 
@@ -179,7 +181,7 @@ public final class LeafSchemaNodeBuilder extends AbstractTypeAwareBuilder implem
         return defaultStr;
     }
 
-    public void setDefaultStr(String defaultStr) {
+    public void setDefaultStr(final String defaultStr) {
         this.defaultStr = defaultStr;
     }
 
@@ -187,7 +189,7 @@ public final class LeafSchemaNodeBuilder extends AbstractTypeAwareBuilder implem
         return unitsStr;
     }
 
-    public void setUnits(String unitsStr) {
+    public void setUnits(final String unitsStr) {
         this.unitsStr = unitsStr;
     }
 
@@ -200,7 +202,7 @@ public final class LeafSchemaNodeBuilder extends AbstractTypeAwareBuilder implem
     }
 
     @Override
-    public boolean equals(Object obj) {
+    public boolean equals(final Object obj) {
         if (this == obj) {
             return true;
         }
@@ -328,7 +330,7 @@ public final class LeafSchemaNodeBuilder extends AbstractTypeAwareBuilder implem
         }
 
         @Override
-        public boolean equals(Object obj) {
+        public boolean equals(final Object obj) {
             if (this == obj) {
                 return true;
             }
index 4b533284f73abcd0c0782f55a5251d8239e21810..8cff8ec7de7266da996b2d31007828d0e4b90a49 100644 (file)
@@ -24,14 +24,15 @@ import org.opendaylight.yangtools.yang.model.api.Status;
 import org.opendaylight.yangtools.yang.model.api.TypeDefinition;
 import org.opendaylight.yangtools.yang.model.api.UnknownSchemaNode;
 import org.opendaylight.yangtools.yang.model.api.UsesNode;
-import org.opendaylight.yangtools.yang.parser.builder.api.AbstractDataNodeContainerBuilder;
 import org.opendaylight.yangtools.yang.parser.builder.api.AugmentationSchemaBuilder;
 import org.opendaylight.yangtools.yang.parser.builder.api.AugmentationTargetBuilder;
+import org.opendaylight.yangtools.yang.parser.builder.api.ConstraintsBuilder;
 import org.opendaylight.yangtools.yang.parser.builder.api.DataSchemaNodeBuilder;
 import org.opendaylight.yangtools.yang.parser.builder.api.GroupingBuilder;
 import org.opendaylight.yangtools.yang.parser.builder.api.TypeDefinitionBuilder;
+import org.opendaylight.yangtools.yang.parser.builder.api.UnknownSchemaNodeBuilder;
 import org.opendaylight.yangtools.yang.parser.builder.api.UsesNodeBuilder;
-import org.opendaylight.yangtools.yang.parser.util.ParserUtils;
+import org.opendaylight.yangtools.yang.parser.builder.util.AbstractDataNodeContainerBuilder;
 import org.opendaylight.yangtools.yang.parser.util.YangParseException;
 
 import com.google.common.base.Preconditions;
@@ -60,15 +61,15 @@ public final class ListSchemaNodeBuilder extends AbstractDataNodeContainerBuilde
 
     public ListSchemaNodeBuilder(final String moduleName, final int line, final QName qname, final SchemaPath path) {
         super(moduleName, line, qname);
-        this.schemaPath = path;
-        constraints = new ConstraintsBuilder(moduleName, line);
+        this.schemaPath = Preconditions.checkNotNull(path, "Schema Path must not be null");
+        constraints = new ConstraintsBuilderImpl(moduleName, line);
     }
 
     public ListSchemaNodeBuilder(final String moduleName, final int line, final QName qname, final SchemaPath path,
             final ListSchemaNode base) {
         super(moduleName, line, qname);
-        schemaPath = path;
-        constraints = new ConstraintsBuilder(moduleName, line, base.getConstraints());
+        this.schemaPath = Preconditions.checkNotNull(path, "Schema Path must not be null");
+        constraints = new ConstraintsBuilderImpl(moduleName, line, base.getConstraints());
 
         keyDefinition = ImmutableList.copyOf(base.getKeyDefinition());
         userOrdered = base.isUserOrdered();
@@ -83,10 +84,10 @@ public final class ListSchemaNodeBuilder extends AbstractDataNodeContainerBuilde
         URI ns = qname.getNamespace();
         Date rev = qname.getRevision();
         String pref = qname.getPrefix();
-        addedChildNodes.addAll(ParserUtils.wrapChildNodes(moduleName, line, base.getChildNodes(), path, ns, rev, pref));
-        addedGroupings.addAll(ParserUtils.wrapGroupings(moduleName, line, base.getGroupings(), path, ns, rev, pref));
-        addedTypedefs.addAll(ParserUtils.wrapTypedefs(moduleName, line, base, path, ns, rev, pref));
-        addedUnknownNodes.addAll(ParserUtils.wrapUnknownNodes(moduleName, line, base.getUnknownSchemaNodes(), path, ns,
+        addedChildNodes.addAll(BuilderUtils.wrapChildNodes(moduleName, line, base.getChildNodes(), path, ns, rev, pref));
+        addedGroupings.addAll(BuilderUtils.wrapGroupings(moduleName, line, base.getGroupings(), path, ns, rev, pref));
+        addedTypedefs.addAll(BuilderUtils.wrapTypedefs(moduleName, line, base, path, ns, rev, pref));
+        addedUnknownNodes.addAll(BuilderUtils.wrapUnknownNodes(moduleName, line, base.getUnknownSchemaNodes(), path, ns,
                 rev, pref));
 
         augmentations.addAll(base.getAvailableAugmentations());
@@ -107,7 +108,7 @@ public final class ListSchemaNodeBuilder extends AbstractDataNodeContainerBuilde
         instance.augmenting = augmenting;
         instance.addedByUses = addedByUses;
         instance.configuration = configuration;
-        instance.constraints = constraints.build();
+        instance.constraints = constraints.toInstance();
         instance.userOrdered = userOrdered;
 
         // CHILD NODES
index 9650deb85fa9abf715ca69ccd31a600b21a3f29e..a4ab83eeedb199b60204d076f2c4039b604a389d 100644 (file)
@@ -1,6 +1,5 @@
 /*
- * Copyright (c) 2013 Cisco Systems, Inc. and others.  All rights reserved.
- *
+ * Copyright (c) 2013 Cisco Systems, Inc. and others. All rights reserved.
  * This program and the accompanying materials are made available under the
  * terms of the Eclipse Public License v1.0 which accompanies this distribution,
  * and is available at http://www.eclipse.org/legal/epl-v10.html
@@ -36,19 +35,20 @@ import org.opendaylight.yangtools.yang.model.api.SchemaPath;
 import org.opendaylight.yangtools.yang.model.api.TypeDefinition;
 import org.opendaylight.yangtools.yang.model.api.UnknownSchemaNode;
 import org.opendaylight.yangtools.yang.model.api.UsesNode;
-import org.opendaylight.yangtools.yang.parser.builder.api.AbstractDataNodeContainerBuilder;
+import org.opendaylight.yangtools.yang.model.util.ModuleImportImpl;
 import org.opendaylight.yangtools.yang.parser.builder.api.AugmentationSchemaBuilder;
 import org.opendaylight.yangtools.yang.parser.builder.api.Builder;
 import org.opendaylight.yangtools.yang.parser.builder.api.DataNodeContainerBuilder;
 import org.opendaylight.yangtools.yang.parser.builder.api.DataSchemaNodeBuilder;
+import org.opendaylight.yangtools.yang.parser.builder.api.ExtensionBuilder;
 import org.opendaylight.yangtools.yang.parser.builder.api.GroupingBuilder;
 import org.opendaylight.yangtools.yang.parser.builder.api.SchemaNodeBuilder;
 import org.opendaylight.yangtools.yang.parser.builder.api.TypeAwareBuilder;
 import org.opendaylight.yangtools.yang.parser.builder.api.TypeDefinitionBuilder;
+import org.opendaylight.yangtools.yang.parser.builder.api.UnknownSchemaNodeBuilder;
 import org.opendaylight.yangtools.yang.parser.builder.api.UsesNodeBuilder;
-import org.opendaylight.yangtools.yang.parser.util.Comparators;
-import org.opendaylight.yangtools.yang.parser.util.ModuleImportImpl;
-import org.opendaylight.yangtools.yang.parser.util.RefineHolder;
+import org.opendaylight.yangtools.yang.parser.builder.util.AbstractDataNodeContainerBuilder;
+import org.opendaylight.yangtools.yang.parser.builder.util.Comparators;
 import org.opendaylight.yangtools.yang.parser.util.YangParseException;
 
 /**
@@ -71,7 +71,7 @@ public class ModuleBuilder extends AbstractDataNodeContainerBuilder {
     private ModuleBuilder parent;
 
     @Override
-       public ModuleBuilder getParent() {
+    public ModuleBuilder getParent() {
         return parent;
     }
 
@@ -110,9 +110,9 @@ public class ModuleBuilder extends AbstractDataNodeContainerBuilder {
     private final List<ExtensionDefinition> extensions = new ArrayList<>();
     private final List<ExtensionBuilder> addedExtensions = new ArrayList<>();
 
-    private final List<UnknownSchemaNodeBuilder> allUnknownNodes = new ArrayList<UnknownSchemaNodeBuilder>();
+    private final List<UnknownSchemaNodeBuilder> allUnknownNodes = new ArrayList<>();
 
-    private final List<ListSchemaNodeBuilder> allLists = new ArrayList<ListSchemaNodeBuilder>();
+    private final List<ListSchemaNodeBuilder> allLists = new ArrayList<>();
 
     private String source;
 
@@ -438,7 +438,7 @@ public class ModuleBuilder extends AbstractDataNodeContainerBuilder {
                 raiseYangParserException("extension", "node", extName, line, addedExtension.getLine());
             }
         }
-        final ExtensionBuilder builder = new ExtensionBuilder(name, line, qname, path);
+        final ExtensionBuilder builder = new ExtensionBuilderImpl(name, line, qname, path);
         builder.setParent(parent);
         addedExtensions.add(builder);
         return builder;
@@ -586,7 +586,7 @@ public class ModuleBuilder extends AbstractDataNodeContainerBuilder {
         return usesBuilder;
     }
 
-    public void addRefine(final RefineHolder refine) {
+    public void addRefine(final RefineHolderImpl refine) {
         final Builder parent = getActualNode();
         if (!(parent instanceof UsesNodeBuilder)) {
             throw new YangParseException(name, refine.getLine(), "refine can be defined only in uses statement");
@@ -872,9 +872,9 @@ public class ModuleBuilder extends AbstractDataNodeContainerBuilder {
         allUnknownNodes.add(builder);
     }
 
-    public UnknownSchemaNodeBuilder addUnknownSchemaNode(final int line, final QName qname, final SchemaPath path) {
+    public UnknownSchemaNodeBuilderImpl addUnknownSchemaNode(final int line, final QName qname, final SchemaPath path) {
         final Builder parent = getActualNode();
-        final UnknownSchemaNodeBuilder builder = new UnknownSchemaNodeBuilder(name, line, qname, path);
+        final UnknownSchemaNodeBuilderImpl builder = new UnknownSchemaNodeBuilderImpl(name, line, qname, path);
         builder.setParent(parent);
         allUnknownNodes.add(builder);
 
@@ -885,8 +885,8 @@ public class ModuleBuilder extends AbstractDataNodeContainerBuilder {
                 ((SchemaNodeBuilder) parent).addUnknownNodeBuilder(builder);
             } else if (parent instanceof DataNodeContainerBuilder) {
                 ((DataNodeContainerBuilder) parent).addUnknownNodeBuilder(builder);
-            } else if (parent instanceof RefineHolder) {
-                ((RefineHolder) parent).addUnknownNodeBuilder(builder);
+            } else if (parent instanceof RefineHolderImpl) {
+                ((RefineHolderImpl) parent).addUnknownNodeBuilder(builder);
             } else {
                 throw new YangParseException(name, line, "Unresolved parent of unknown node '" + qname.getLocalName()
                         + "'");
@@ -1188,7 +1188,7 @@ public class ModuleBuilder extends AbstractDataNodeContainerBuilder {
             return getChildNode(childNodes, name);
         }
 
-        void setSource(final String source){
+        void setSource(final String source) {
             this.source = source;
         }
 
@@ -1439,5 +1439,4 @@ public class ModuleBuilder extends AbstractDataNodeContainerBuilder {
         return true;
     }
 
-
 }
index 8d7e4b669e0966b28533b21fbaad2fb0e38842e8..938bc594ad0565df76e9eb22c9c02be5ffa488cc 100644 (file)
@@ -23,15 +23,15 @@ import org.opendaylight.yangtools.yang.model.api.Status;
 import org.opendaylight.yangtools.yang.model.api.TypeDefinition;
 import org.opendaylight.yangtools.yang.model.api.UnknownSchemaNode;
 import org.opendaylight.yangtools.yang.model.api.UsesNode;
-import org.opendaylight.yangtools.yang.parser.builder.api.AbstractDataNodeContainerBuilder;
 import org.opendaylight.yangtools.yang.parser.builder.api.AugmentationSchemaBuilder;
 import org.opendaylight.yangtools.yang.parser.builder.api.AugmentationTargetBuilder;
 import org.opendaylight.yangtools.yang.parser.builder.api.DataSchemaNodeBuilder;
 import org.opendaylight.yangtools.yang.parser.builder.api.GroupingBuilder;
 import org.opendaylight.yangtools.yang.parser.builder.api.SchemaNodeBuilder;
 import org.opendaylight.yangtools.yang.parser.builder.api.TypeDefinitionBuilder;
+import org.opendaylight.yangtools.yang.parser.builder.api.UnknownSchemaNodeBuilder;
 import org.opendaylight.yangtools.yang.parser.builder.api.UsesNodeBuilder;
-import org.opendaylight.yangtools.yang.parser.util.ParserUtils;
+import org.opendaylight.yangtools.yang.parser.builder.util.AbstractDataNodeContainerBuilder;
 import org.opendaylight.yangtools.yang.parser.util.YangParseException;
 
 import com.google.common.base.Preconditions;
@@ -52,12 +52,12 @@ public final class NotificationBuilder extends AbstractDataNodeContainerBuilder
 
     NotificationBuilder(final String moduleName, final int line, final QName qname, final SchemaPath path) {
         super(moduleName, line, qname);
-        this.schemaPath = path;
+        this.schemaPath = Preconditions.checkNotNull(path, "Schema Path must not be null");
     }
 
     NotificationBuilder(final String moduleName, final int line, final QName qname, final SchemaPath path, final NotificationDefinition base) {
         super(moduleName, line, qname);
-        this.schemaPath = path;
+        this.schemaPath = Preconditions.checkNotNull(path, "Schema Path must not be null");
 
         description = base.getDescription();
         reference = base.getReference();
@@ -66,10 +66,10 @@ public final class NotificationBuilder extends AbstractDataNodeContainerBuilder
         URI ns = qname.getNamespace();
         Date rev = qname.getRevision();
         String pref = qname.getPrefix();
-        addedChildNodes.addAll(ParserUtils.wrapChildNodes(moduleName, line, base.getChildNodes(), path, ns, rev, pref));
-        addedGroupings.addAll(ParserUtils.wrapGroupings(moduleName, line, base.getGroupings(), path, ns, rev, pref));
-        addedTypedefs.addAll(ParserUtils.wrapTypedefs(moduleName, line, base, path, ns, rev, pref));
-        addedUnknownNodes.addAll(ParserUtils.wrapUnknownNodes(moduleName, line, base.getUnknownSchemaNodes(), path, ns,
+        addedChildNodes.addAll(BuilderUtils.wrapChildNodes(moduleName, line, base.getChildNodes(), path, ns, rev, pref));
+        addedGroupings.addAll(BuilderUtils.wrapGroupings(moduleName, line, base.getGroupings(), path, ns, rev, pref));
+        addedTypedefs.addAll(BuilderUtils.wrapTypedefs(moduleName, line, base, path, ns, rev, pref));
+        addedUnknownNodes.addAll(BuilderUtils.wrapUnknownNodes(moduleName, line, base.getUnknownSchemaNodes(), path, ns,
                 rev, pref));
 
         augmentations.addAll(base.getAvailableAugmentations());
similarity index 58%
rename from yang/yang-parser-impl/src/main/java/org/opendaylight/yangtools/yang/parser/util/RefineHolder.java
rename to yang/yang-parser-impl/src/main/java/org/opendaylight/yangtools/yang/parser/builder/impl/RefineHolderImpl.java
index d8727bd6ae6836e8783f306a87f3bc1b01916a32..1f67963ed225fa7dab256db41717b69e1fc160dc 100644 (file)
@@ -5,13 +5,15 @@
  * terms of the Eclipse Public License v1.0 which accompanies this distribution,
  * and is available at http://www.eclipse.org/legal/epl-v10.html
  */
-package org.opendaylight.yangtools.yang.parser.util;
+package org.opendaylight.yangtools.yang.parser.builder.impl;
 
 import org.opendaylight.yangtools.yang.model.api.MustDefinition;
-import org.opendaylight.yangtools.yang.parser.builder.api.AbstractBuilder;
+import org.opendaylight.yangtools.yang.model.api.Status;
+import org.opendaylight.yangtools.yang.parser.builder.api.RefineBuilder;
+import org.opendaylight.yangtools.yang.parser.builder.util.AbstractBuilder;
 
-public final class RefineHolder extends AbstractBuilder {
-    private final String name;
+public final class RefineHolderImpl extends AbstractBuilder implements RefineBuilder {
+    private final String targetPathString;
     private String defaultStr;
     private String description;
     private String reference;
@@ -22,11 +24,12 @@ public final class RefineHolder extends AbstractBuilder {
     private Integer minElements;
     private Integer maxElements;
 
-    public RefineHolder(final String moduleName, final int line, final String name) {
+    public RefineHolderImpl(final String moduleName, final int line, final String name) {
         super(moduleName, line);
-        this.name = name;
+        this.targetPathString = name;
     }
 
+    @Override
     public String getDefaultStr() {
         return defaultStr;
     }
@@ -35,79 +38,151 @@ public final class RefineHolder extends AbstractBuilder {
         this.defaultStr = defaultStr;
     }
 
+    /* (non-Javadoc)
+     * @see org.opendaylight.yangtools.yang.parser.builder.impl.IRefineBuilder#getDescription()
+     */
+    @Override
     public String getDescription() {
         return description;
     }
 
+    /* (non-Javadoc)
+     * @see org.opendaylight.yangtools.yang.parser.builder.impl.IRefineBuilder#setDescription(java.lang.String)
+     */
+    @Override
     public void setDescription(final String description) {
         this.description = description;
     }
 
+    /* (non-Javadoc)
+     * @see org.opendaylight.yangtools.yang.parser.builder.impl.IRefineBuilder#getReference()
+     */
+    @Override
     public String getReference() {
         return reference;
     }
 
+    /* (non-Javadoc)
+     * @see org.opendaylight.yangtools.yang.parser.builder.impl.IRefineBuilder#setReference(java.lang.String)
+     */
+    @Override
     public void setReference(final String reference) {
         this.reference = reference;
     }
 
+    /* (non-Javadoc)
+     * @see org.opendaylight.yangtools.yang.parser.builder.impl.IRefineBuilder#isConfiguration()
+     */
+    @Override
     public Boolean isConfiguration() {
         return config;
     }
 
+    /* (non-Javadoc)
+     * @see org.opendaylight.yangtools.yang.parser.builder.impl.IRefineBuilder#setConfiguration(java.lang.Boolean)
+     */
+    @Override
     public void setConfiguration(final Boolean config) {
         this.config = config;
     }
 
+    /* (non-Javadoc)
+     * @see org.opendaylight.yangtools.yang.parser.builder.impl.IRefineBuilder#isMandatory()
+     */
+    @Override
     public Boolean isMandatory() {
         return mandatory;
     }
 
-    public void setMandatory(Boolean mandatory) {
+    /* (non-Javadoc)
+     * @see org.opendaylight.yangtools.yang.parser.builder.impl.IRefineBuilder#setMandatory(java.lang.Boolean)
+     */
+    @Override
+    public void setMandatory(final Boolean mandatory) {
         this.mandatory = mandatory;
     }
 
+    /* (non-Javadoc)
+     * @see org.opendaylight.yangtools.yang.parser.builder.impl.IRefineBuilder#isPresence()
+     */
+    @Override
     public Boolean isPresence() {
         return presence;
     }
 
-    public void setPresence(Boolean presence) {
+    /* (non-Javadoc)
+     * @see org.opendaylight.yangtools.yang.parser.builder.impl.IRefineBuilder#setPresence(java.lang.Boolean)
+     */
+    @Override
+    public void setPresence(final Boolean presence) {
         this.presence = presence;
     }
 
+    /* (non-Javadoc)
+     * @see org.opendaylight.yangtools.yang.parser.builder.impl.IRefineBuilder#getMust()
+     */
+    @Override
     public MustDefinition getMust() {
         return must;
     }
 
-    public void setMust(MustDefinition must) {
+    /* (non-Javadoc)
+     * @see org.opendaylight.yangtools.yang.parser.builder.impl.IRefineBuilder#setMust(org.opendaylight.yangtools.yang.model.api.MustDefinition)
+     */
+    @Override
+    public void setMust(final MustDefinition must) {
         this.must = must;
     }
 
+    /* (non-Javadoc)
+     * @see org.opendaylight.yangtools.yang.parser.builder.impl.IRefineBuilder#getMinElements()
+     */
+    @Override
     public Integer getMinElements() {
         return minElements;
     }
 
-    public void setMinElements(Integer minElements) {
+    /* (non-Javadoc)
+     * @see org.opendaylight.yangtools.yang.parser.builder.impl.IRefineBuilder#setMinElements(java.lang.Integer)
+     */
+    @Override
+    public void setMinElements(final Integer minElements) {
         this.minElements = minElements;
     }
 
+    /* (non-Javadoc)
+     * @see org.opendaylight.yangtools.yang.parser.builder.impl.IRefineBuilder#getMaxElements()
+     */
+    @Override
     public Integer getMaxElements() {
         return maxElements;
     }
 
-    public void setMaxElements(Integer maxElements) {
+    /* (non-Javadoc)
+     * @see org.opendaylight.yangtools.yang.parser.builder.impl.IRefineBuilder#setMaxElements(java.lang.Integer)
+     */
+    @Override
+    public void setMaxElements(final Integer maxElements) {
         this.maxElements = maxElements;
     }
 
-    public String getName() {
-        return name;
+    @Override
+    public String toString() {
+        return "refine " + targetPathString;
     }
 
     @Override
-    public Object build() {
+    public Status getStatus() {
+        // TODO Auto-generated method stub
         return null;
     }
 
+    @Override
+    public void setStatus(final Status status) {
+        // TODO Auto-generated method stub
+
+    }
+
     @Override
     public int hashCode() {
         final int prime = 31;
@@ -120,7 +195,7 @@ public final class RefineHolder extends AbstractBuilder {
         result = prime * result + ((maxElements == null) ? 0 : maxElements.hashCode());
         result = prime * result + ((minElements == null) ? 0 : minElements.hashCode());
         result = prime * result + ((must == null) ? 0 : must.hashCode());
-        result = prime * result + ((name == null) ? 0 : name.hashCode());
+        result = prime * result + ((targetPathString == null) ? 0 : targetPathString.hashCode());
         result = prime * result + ((getParent() == null) ? 0 : getParent().hashCode());
         result = prime * result + ((presence == null) ? 0 : presence.hashCode());
         result = prime * result + ((reference == null) ? 0 : reference.hashCode());
@@ -128,7 +203,7 @@ public final class RefineHolder extends AbstractBuilder {
     }
 
     @Override
-    public boolean equals(Object obj) {
+    public boolean equals(final Object obj) {
         if (this == obj) {
             return true;
         }
@@ -138,7 +213,7 @@ public final class RefineHolder extends AbstractBuilder {
         if (getClass() != obj.getClass()) {
             return false;
         }
-        RefineHolder other = (RefineHolder) obj;
+        RefineHolderImpl other = (RefineHolderImpl) obj;
         if (addedUnknownNodes == null) {
             if (other.addedUnknownNodes != null) {
                 return false;
@@ -195,11 +270,11 @@ public final class RefineHolder extends AbstractBuilder {
         } else if (!must.equals(other.must)) {
             return false;
         }
-        if (name == null) {
-            if (other.name != null) {
+        if (targetPathString == null) {
+            if (other.targetPathString != null) {
                 return false;
             }
-        } else if (!name.equals(other.name)) {
+        } else if (!targetPathString.equals(other.targetPathString)) {
             return false;
         }
         if (getParent() == null) {
@@ -226,9 +301,20 @@ public final class RefineHolder extends AbstractBuilder {
         return true;
     }
 
+
+
     @Override
-    public String toString() {
-        return "refine " + name;
+    public Object build() {
+        // FIXME: Currently RefineBuilder.build() is not used
+        // build should returned refined element, so
+        // whole refine process is encapsulated in this refinement
+        // statement.
+        return null;
+    }
+
+    @Override
+    public String getTargetPathString() {
+        return targetPathString;
     }
 
 }
similarity index 85%
rename from yang/yang-parser-impl/src/main/java/org/opendaylight/yangtools/yang/parser/util/RefineUtils.java
rename to yang/yang-parser-impl/src/main/java/org/opendaylight/yangtools/yang/parser/builder/impl/RefineUtils.java
index 00b95cb37292bcfd940b7eda03b7cbe9a85823df..bfc4928bf35c3f39820d87f62bbe8bdc000d4eef 100644 (file)
@@ -5,7 +5,7 @@
  * terms of the Eclipse Public License v1.0 which accompanies this distribution,
  * and is available at http://www.eclipse.org/legal/epl-v10.html
  */
-package org.opendaylight.yangtools.yang.parser.util;
+package org.opendaylight.yangtools.yang.parser.builder.impl;
 
 import java.lang.reflect.Method;
 import java.util.List;
@@ -13,16 +13,12 @@ import java.util.List;
 import org.opendaylight.yangtools.yang.model.api.MustDefinition;
 import org.opendaylight.yangtools.yang.parser.builder.api.Builder;
 import org.opendaylight.yangtools.yang.parser.builder.api.GroupingBuilder;
+import org.opendaylight.yangtools.yang.parser.builder.api.RefineBuilder;
 import org.opendaylight.yangtools.yang.parser.builder.api.SchemaNodeBuilder;
 import org.opendaylight.yangtools.yang.parser.builder.api.TypeDefinitionBuilder;
+import org.opendaylight.yangtools.yang.parser.builder.api.UnknownSchemaNodeBuilder;
 import org.opendaylight.yangtools.yang.parser.builder.api.UsesNodeBuilder;
-import org.opendaylight.yangtools.yang.parser.builder.impl.AnyXmlBuilder;
-import org.opendaylight.yangtools.yang.parser.builder.impl.ChoiceBuilder;
-import org.opendaylight.yangtools.yang.parser.builder.impl.ContainerSchemaNodeBuilder;
-import org.opendaylight.yangtools.yang.parser.builder.impl.LeafListSchemaNodeBuilder;
-import org.opendaylight.yangtools.yang.parser.builder.impl.LeafSchemaNodeBuilder;
-import org.opendaylight.yangtools.yang.parser.builder.impl.ListSchemaNodeBuilder;
-import org.opendaylight.yangtools.yang.parser.builder.impl.UnknownSchemaNodeBuilder;
+import org.opendaylight.yangtools.yang.parser.util.YangParseException;
 
 /**
  * Utility class with helper methods to perform operations tied to refine
@@ -33,7 +29,7 @@ public final class RefineUtils {
     private RefineUtils() {
     }
 
-    public static void refineLeaf(LeafSchemaNodeBuilder leaf, RefineHolder refine) {
+    public static void refineLeaf(final LeafSchemaNodeBuilder leaf, final RefineBuilder refine) {
         String defaultStr = refine.getDefaultStr();
         Boolean mandatory = refine.isMandatory();
         MustDefinition must = refine.getMust();
@@ -56,7 +52,7 @@ public final class RefineUtils {
         }
     }
 
-    public static void refineContainer(ContainerSchemaNodeBuilder container, RefineHolder refine) {
+    public static void refineContainer(final ContainerSchemaNodeBuilder container, final RefineBuilder refine) {
         Boolean presence = refine.isPresence();
         MustDefinition must = refine.getMust();
         List<UnknownSchemaNodeBuilder> unknownNodes = refine.getUnknownNodes();
@@ -75,7 +71,7 @@ public final class RefineUtils {
         }
     }
 
-    public static void refineList(ListSchemaNodeBuilder list, RefineHolder refine) {
+    public static void refineList(final ListSchemaNodeBuilder list, final RefineBuilder refine) {
         MustDefinition must = refine.getMust();
         Integer min = refine.getMinElements();
         Integer max = refine.getMaxElements();
@@ -98,7 +94,7 @@ public final class RefineUtils {
         }
     }
 
-    public static void refineLeafList(LeafListSchemaNodeBuilder leafList, RefineHolder refine) {
+    public static void refineLeafList(final LeafListSchemaNodeBuilder leafList, final RefineBuilder refine) {
         MustDefinition must = refine.getMust();
         Integer min = refine.getMinElements();
         Integer max = refine.getMaxElements();
@@ -121,7 +117,7 @@ public final class RefineUtils {
         }
     }
 
-    public static void refineChoice(ChoiceBuilder choice, RefineHolder refine) {
+    public static void refineChoice(final ChoiceBuilder choice, final RefineBuilder refine) {
         String defaultStr = refine.getDefaultStr();
         Boolean mandatory = refine.isMandatory();
         List<UnknownSchemaNodeBuilder> unknownNodes = refine.getUnknownNodes();
@@ -140,7 +136,7 @@ public final class RefineUtils {
         }
     }
 
-    public static void refineAnyxml(AnyXmlBuilder anyXml, RefineHolder refine) {
+    public static void refineAnyxml(final AnyXmlBuilder anyXml, final RefineBuilder refine) {
         Boolean mandatory = refine.isMandatory();
         MustDefinition must = refine.getMust();
         List<UnknownSchemaNodeBuilder> unknownNodes = refine.getUnknownNodes();
@@ -167,7 +163,7 @@ public final class RefineUtils {
      * @param refine
      *            refine object containing information about refine process
      */
-    private static void checkRefine(SchemaNodeBuilder node, RefineHolder refine) {
+    private static void checkRefine(final SchemaNodeBuilder node, final RefineBuilder refine) {
         String moduleName = refine.getModuleName();
         int line = refine.getLine();
         String name = node.getQName().getLocalName();
@@ -209,35 +205,35 @@ public final class RefineUtils {
         }
     }
 
-    private static void checkRefineDefault(SchemaNodeBuilder node, String defaultStr, String moduleName, int line) {
+    private static void checkRefineDefault(final SchemaNodeBuilder node, final String defaultStr, final String moduleName, final int line) {
         if (defaultStr != null) {
             throw new YangParseException(moduleName, line, "Can not refine 'default' for '"
                     + node.getQName().getLocalName() + "'.");
         }
     }
 
-    private static void checkRefineMandatory(SchemaNodeBuilder node, Boolean mandatory, String moduleName, int line) {
+    private static void checkRefineMandatory(final SchemaNodeBuilder node, final Boolean mandatory, final String moduleName, final int line) {
         if (mandatory != null) {
             throw new YangParseException(moduleName, line, "Can not refine 'mandatory' for '"
                     + node.getQName().getLocalName() + "'.");
         }
     }
 
-    private static void checkRefinePresence(SchemaNodeBuilder node, Boolean presence, String moduleName, int line) {
+    private static void checkRefinePresence(final SchemaNodeBuilder node, final Boolean presence, final String moduleName, final int line) {
         if (presence != null) {
             throw new YangParseException(moduleName, line, "Can not refine 'presence' for '"
                     + node.getQName().getLocalName() + "'.");
         }
     }
 
-    private static void checkRefineMust(SchemaNodeBuilder node, MustDefinition must, String moduleName, int line) {
+    private static void checkRefineMust(final SchemaNodeBuilder node, final MustDefinition must, final String moduleName, final int line) {
         if (must != null) {
             throw new YangParseException(moduleName, line, "Can not refine 'must' for '"
                     + node.getQName().getLocalName() + "'.");
         }
     }
 
-    private static void checkRefineMinMax(String refineTargetName, Integer min, Integer max, String moduleName, int line) {
+    private static void checkRefineMinMax(final String refineTargetName, final Integer min, final Integer max, final String moduleName, final int line) {
         if (min != null || max != null) {
             throw new YangParseException(moduleName, line, "Can not refine 'min-elements' or 'max-elements' for '"
                     + refineTargetName + "'.");
@@ -259,7 +255,7 @@ public final class RefineUtils {
      * @param refine
      *            refine object containing information about refine process
      */
-    private static void refineDefault(final Builder node, final RefineHolder refine) {
+    private static void refineDefault(final Builder node, final RefineBuilder refine) {
         final String moduleName = refine.getModuleName();
         final int line = refine.getLine();
         Class<? extends Builder> cls = node.getClass();
@@ -303,7 +299,7 @@ public final class RefineUtils {
      * @param refine
      *            refine object containing information about refine process
      */
-    static void performRefine(SchemaNodeBuilder nodeToRefine, RefineHolder refine) {
+    static void performRefine(final SchemaNodeBuilder nodeToRefine, final RefineBuilder refine) {
         checkRefine(nodeToRefine, refine);
         refineDefault(nodeToRefine, refine);
         if (nodeToRefine instanceof LeafSchemaNodeBuilder) {
index 2be0209ac5a23ac5c070a0a6ec175cdb66ac4ccf..bbcb2623580d355d03111739ca0ff6c9afbef987 100644 (file)
@@ -20,11 +20,13 @@ import org.opendaylight.yangtools.yang.model.api.SchemaPath;
 import org.opendaylight.yangtools.yang.model.api.Status;
 import org.opendaylight.yangtools.yang.model.api.TypeDefinition;
 import org.opendaylight.yangtools.yang.model.api.UnknownSchemaNode;
-import org.opendaylight.yangtools.yang.parser.builder.api.AbstractSchemaNodeBuilder;
 import org.opendaylight.yangtools.yang.parser.builder.api.GroupingBuilder;
 import org.opendaylight.yangtools.yang.parser.builder.api.TypeDefinitionBuilder;
-import org.opendaylight.yangtools.yang.parser.util.Comparators;
+import org.opendaylight.yangtools.yang.parser.builder.api.UnknownSchemaNodeBuilder;
+import org.opendaylight.yangtools.yang.parser.builder.util.AbstractSchemaNodeBuilder;
+import org.opendaylight.yangtools.yang.parser.builder.util.Comparators;
 
+import com.google.common.base.Preconditions;
 import com.google.common.collect.ImmutableList;
 import com.google.common.collect.ImmutableSet;
 
@@ -45,7 +47,7 @@ public final class RpcDefinitionBuilder extends AbstractSchemaNodeBuilder {
 
     RpcDefinitionBuilder(final String moduleName, final int line, final QName qname, final SchemaPath path) {
         super(moduleName, line, qname);
-        this.schemaPath = path;
+        this.schemaPath = Preconditions.checkNotNull(path, "Schema Path must not be null");
     }
 
     @Override
index 94987086ba3c47f590745ff7d389af8344023db1..66bd8e0089300ce4eaa083a310c0190fe872abe3 100644 (file)
@@ -11,15 +11,22 @@ import java.util.Collections;
 import java.util.List;
 
 import org.opendaylight.yangtools.yang.common.QName;
-import org.opendaylight.yangtools.yang.model.api.*;
-import org.opendaylight.yangtools.yang.model.api.type.*;
+import org.opendaylight.yangtools.yang.model.api.SchemaPath;
+import org.opendaylight.yangtools.yang.model.api.Status;
+import org.opendaylight.yangtools.yang.model.api.TypeDefinition;
+import org.opendaylight.yangtools.yang.model.api.type.LengthConstraint;
+import org.opendaylight.yangtools.yang.model.api.type.PatternConstraint;
+import org.opendaylight.yangtools.yang.model.api.type.RangeConstraint;
 import org.opendaylight.yangtools.yang.model.util.ExtendedType;
 import org.opendaylight.yangtools.yang.model.util.UnknownType;
-import org.opendaylight.yangtools.yang.parser.builder.api.AbstractTypeAwareBuilder;
 import org.opendaylight.yangtools.yang.parser.builder.api.TypeDefinitionBuilder;
-import org.opendaylight.yangtools.yang.parser.util.Comparators;
+import org.opendaylight.yangtools.yang.parser.builder.api.UnknownSchemaNodeBuilder;
+import org.opendaylight.yangtools.yang.parser.builder.util.AbstractTypeAwareBuilder;
+import org.opendaylight.yangtools.yang.parser.builder.util.Comparators;
 import org.opendaylight.yangtools.yang.parser.util.YangParseException;
 
+import com.google.common.base.Preconditions;
+
 public final class TypeDefinitionBuilderImpl extends AbstractTypeAwareBuilder implements TypeDefinitionBuilder {
     private SchemaPath schemaPath;
     private List<RangeConstraint> ranges = Collections.emptyList();
@@ -36,12 +43,12 @@ public final class TypeDefinitionBuilderImpl extends AbstractTypeAwareBuilder im
 
     public TypeDefinitionBuilderImpl(final String moduleName, final int line, final QName qname, final SchemaPath path) {
         super(moduleName, line, qname);
-        this.schemaPath = path;
+        this.schemaPath = Preconditions.checkNotNull(path, "Schema Path must not be null");
     }
 
     public TypeDefinitionBuilderImpl(final String moduleName, final int line, final QName qname, final SchemaPath path, final ExtendedType base) {
         super(moduleName, line, base.getQName());
-        this.schemaPath = path;
+        this.schemaPath = Preconditions.checkNotNull(path, "Schema Path must not be null");
 
         this.type = base.getBaseType();
         this.description = base.getDescription();
@@ -91,7 +98,7 @@ public final class TypeDefinitionBuilderImpl extends AbstractTypeAwareBuilder im
     }
 
     @Override
-    public void setQName(QName qname) {
+    public void setQName(final QName qname) {
         this.qname = qname;
     }
 
@@ -101,7 +108,7 @@ public final class TypeDefinitionBuilderImpl extends AbstractTypeAwareBuilder im
     }
 
     @Override
-    public void setPath(SchemaPath path) {
+    public void setPath(final SchemaPath path) {
         this.schemaPath = path;
     }
 
@@ -233,7 +240,7 @@ public final class TypeDefinitionBuilderImpl extends AbstractTypeAwareBuilder im
     }
 
     @Override
-    public boolean equals(Object obj) {
+    public boolean equals(final Object obj) {
         if (this == obj) {
             return true;
         }
similarity index 97%
rename from yang/yang-parser-impl/src/main/java/org/opendaylight/yangtools/yang/parser/util/TypeUtils.java
rename to yang/yang-parser-impl/src/main/java/org/opendaylight/yangtools/yang/parser/builder/impl/TypeUtils.java
index 16983c77f32c1018c8a6e199044797223edb3c3c..f430a9c1a6854c91c6290f5b944e6b0d5bcd7a2c 100644 (file)
@@ -5,10 +5,10 @@
  * terms of the Eclipse Public License v1.0 which accompanies this distribution,
  * and is available at http://www.eclipse.org/legal/epl-v10.html
  */
-package org.opendaylight.yangtools.yang.parser.util;
+package org.opendaylight.yangtools.yang.parser.builder.impl;
 
-import static org.opendaylight.yangtools.yang.parser.util.ParserUtils.findModuleFromBuilders;
-import static org.opendaylight.yangtools.yang.parser.util.ParserUtils.findModuleFromContext;
+import static org.opendaylight.yangtools.yang.parser.builder.impl.BuilderUtils.findModuleFromBuilders;
+import static org.opendaylight.yangtools.yang.parser.builder.impl.BuilderUtils.findModuleFromContext;
 
 import java.util.*;
 
@@ -19,6 +19,8 @@ import org.opendaylight.yangtools.yang.model.util.ExtendedType;
 import org.opendaylight.yangtools.yang.model.util.UnknownType;
 import org.opendaylight.yangtools.yang.parser.builder.api.*;
 import org.opendaylight.yangtools.yang.parser.builder.impl.*;
+import org.opendaylight.yangtools.yang.parser.util.TypeConstraints;
+import org.opendaylight.yangtools.yang.parser.util.YangParseException;
 
 /**
  * Utility class which contains helper methods for dealing with type operations.
@@ -416,14 +418,14 @@ public final class TypeUtils {
         } else {
             QName qname = type.getQName();
             if (type instanceof UnknownType) {
-                ModuleBuilder dependentModuleBuilder = ParserUtils.findModuleFromBuilders(modules, builder,
+                ModuleBuilder dependentModuleBuilder = BuilderUtils.findModuleFromBuilders(modules, builder,
                         qname.getPrefix(), nodeToResolve.getLine());
                 if (dependentModuleBuilder == null) {
                     if (context == null) {
                         throw new YangParseException(builder.getName(), nodeToResolve.getLine(),
                                 "Failed to resolved type constraints.");
                     }
-                    Module dm = ParserUtils.findModuleFromContext(context, builder, qname.getPrefix(),
+                    Module dm = BuilderUtils.findModuleFromContext(context, builder, qname.getPrefix(),
                             nodeToResolve.getLine());
                     TypeDefinition<?> t = findTypeByName(dm.getTypeDefinitions(), qname.getLocalName());
                     return mergeConstraints(t, constraints);
@@ -438,7 +440,7 @@ public final class TypeUtils {
 
                 TypeDefinition<?> base = ((ExtendedType) type).getBaseType();
                 if (base instanceof UnknownType) {
-                    ModuleBuilder dependentModule = ParserUtils.findModuleFromBuilders(modules, builder, base
+                    ModuleBuilder dependentModule = BuilderUtils.findModuleFromBuilders(modules, builder, base
                             .getQName().getPrefix(), nodeToResolve.getLine());
                     TypeDefinitionBuilder tdb = findTypeDefinitionBuilder(nodeToResolve, dependentModule, base
                             .getQName().getLocalName(), builder.getName(), nodeToResolve.getLine());
index 620022d3fefa18a2e24e9df0159d0be5809fd66f..f46ebeb970b079c56d8ebed201f605ab0c1b8ef9 100644 (file)
@@ -20,8 +20,9 @@ import org.opendaylight.yangtools.yang.model.api.type.PatternConstraint;
 import org.opendaylight.yangtools.yang.model.api.type.RangeConstraint;
 import org.opendaylight.yangtools.yang.model.util.BaseTypes;
 import org.opendaylight.yangtools.yang.model.util.UnionType;
-import org.opendaylight.yangtools.yang.parser.builder.api.AbstractTypeAwareBuilder;
 import org.opendaylight.yangtools.yang.parser.builder.api.TypeDefinitionBuilder;
+import org.opendaylight.yangtools.yang.parser.builder.api.UnknownSchemaNodeBuilder;
+import org.opendaylight.yangtools.yang.parser.builder.util.AbstractTypeAwareBuilder;
 import org.opendaylight.yangtools.yang.parser.util.YangParseException;
 
 /**
@@ -16,10 +16,14 @@ import org.opendaylight.yangtools.yang.model.api.ExtensionDefinition;
 import org.opendaylight.yangtools.yang.model.api.SchemaPath;
 import org.opendaylight.yangtools.yang.model.api.Status;
 import org.opendaylight.yangtools.yang.model.api.UnknownSchemaNode;
-import org.opendaylight.yangtools.yang.parser.builder.api.AbstractSchemaNodeBuilder;
-import org.opendaylight.yangtools.yang.parser.util.Comparators;
+import org.opendaylight.yangtools.yang.parser.builder.api.ExtensionBuilder;
+import org.opendaylight.yangtools.yang.parser.builder.api.UnknownSchemaNodeBuilder;
+import org.opendaylight.yangtools.yang.parser.builder.util.AbstractSchemaNodeBuilder;
+import org.opendaylight.yangtools.yang.parser.builder.util.Comparators;
 
-public final class UnknownSchemaNodeBuilder extends AbstractSchemaNodeBuilder {
+import com.google.common.base.Preconditions;
+
+public final class UnknownSchemaNodeBuilderImpl extends AbstractSchemaNodeBuilder implements UnknownSchemaNodeBuilder {
     private boolean isBuilt;
     private final UnknownSchemaNodeImpl instance;
     private QName nodeType;
@@ -28,15 +32,15 @@ public final class UnknownSchemaNodeBuilder extends AbstractSchemaNodeBuilder {
     private ExtensionDefinition extensionDefinition;
     private ExtensionBuilder extensionBuilder;
 
-    public UnknownSchemaNodeBuilder(final String moduleName, final int line, final QName qname, final SchemaPath path) {
+    public UnknownSchemaNodeBuilderImpl(final String moduleName, final int line, final QName qname, final SchemaPath path) {
         super(moduleName, line, qname);
-        this.schemaPath = path;
+        this.schemaPath = Preconditions.checkNotNull(path, "Schema Path must not be null");
         instance = new UnknownSchemaNodeImpl(qname, path);
     }
 
-    public UnknownSchemaNodeBuilder(final String moduleName, final int line, final QName qname, final SchemaPath path, final UnknownSchemaNode base) {
+    public UnknownSchemaNodeBuilderImpl(final String moduleName, final int line, final QName qname, final SchemaPath path, final UnknownSchemaNode base) {
         super(moduleName, line, base.getQName());
-        this.schemaPath = path;
+        this.schemaPath = Preconditions.checkNotNull(path, "Schema Path must not be null");
         instance = new UnknownSchemaNodeImpl(qname, path);
 
         instance.nodeType = base.getNodeType();
@@ -49,6 +53,9 @@ public final class UnknownSchemaNodeBuilder extends AbstractSchemaNodeBuilder {
         instance.unknownNodes.addAll(base.getUnknownSchemaNodes());
     }
 
+    /* (non-Javadoc)
+     * @see org.opendaylight.yangtools.yang.parser.builder.impl.IUnkownSchemaNodeBuilder#getPath()
+     */
     @Override
     public SchemaPath getPath() {
         return instance.path;
@@ -66,7 +73,7 @@ public final class UnknownSchemaNodeBuilder extends AbstractSchemaNodeBuilder {
     }
 
     @Override
-    public boolean equals(Object obj) {
+    public boolean equals(final Object obj) {
         if (this == obj) {
             return true;
         }
@@ -76,7 +83,7 @@ public final class UnknownSchemaNodeBuilder extends AbstractSchemaNodeBuilder {
         if (getClass() != obj.getClass()) {
             return false;
         }
-        UnknownSchemaNodeBuilder other = (UnknownSchemaNodeBuilder) obj;
+        UnknownSchemaNodeBuilderImpl other = (UnknownSchemaNodeBuilderImpl) obj;
         if (qname == null) {
             if (other.qname != null) {
                 return false;
@@ -108,6 +115,9 @@ public final class UnknownSchemaNodeBuilder extends AbstractSchemaNodeBuilder {
         return true;
     }
 
+    /* (non-Javadoc)
+     * @see org.opendaylight.yangtools.yang.parser.builder.impl.IUnkownSchemaNodeBuilder#build()
+     */
     @Override
     public UnknownSchemaNode build() {
         if (!isBuilt) {
@@ -136,6 +146,9 @@ public final class UnknownSchemaNodeBuilder extends AbstractSchemaNodeBuilder {
         return instance;
     }
 
+    /* (non-Javadoc)
+     * @see org.opendaylight.yangtools.yang.parser.builder.impl.IUnkownSchemaNodeBuilder#getDescription()
+     */
     @Override
     public String getDescription() {
         return instance.description;
@@ -146,64 +159,113 @@ public final class UnknownSchemaNodeBuilder extends AbstractSchemaNodeBuilder {
         instance.description = description;
     }
 
+    /* (non-Javadoc)
+     * @see org.opendaylight.yangtools.yang.parser.builder.impl.IUnkownSchemaNodeBuilder#getReference()
+     */
     @Override
     public String getReference() {
         return instance.reference;
     }
 
+    /* (non-Javadoc)
+     * @see org.opendaylight.yangtools.yang.parser.builder.impl.IUnkownSchemaNodeBuilder#setReference(java.lang.String)
+     */
     @Override
     public void setReference(final String reference) {
         instance.reference = reference;
     }
 
+    /* (non-Javadoc)
+     * @see org.opendaylight.yangtools.yang.parser.builder.impl.IUnkownSchemaNodeBuilder#getStatus()
+     */
     @Override
     public Status getStatus() {
         return instance.status;
     }
 
+    /* (non-Javadoc)
+     * @see org.opendaylight.yangtools.yang.parser.builder.impl.IUnkownSchemaNodeBuilder#setStatus(org.opendaylight.yangtools.yang.model.api.Status)
+     */
     @Override
-    public void setStatus(Status status) {
+    public void setStatus(final Status status) {
         if (status != null) {
             instance.status = status;
         }
     }
 
+    /* (non-Javadoc)
+     * @see org.opendaylight.yangtools.yang.parser.builder.impl.IUnkownSchemaNodeBuilder#isAddedByUses()
+     */
+    @Override
     public boolean isAddedByUses() {
         return instance.addedByUses;
     }
 
+    /* (non-Javadoc)
+     * @see org.opendaylight.yangtools.yang.parser.builder.impl.IUnkownSchemaNodeBuilder#setAddedByUses(boolean)
+     */
+    @Override
     public void setAddedByUses(final boolean addedByUses) {
         instance.addedByUses = addedByUses;
     }
 
+    /* (non-Javadoc)
+     * @see org.opendaylight.yangtools.yang.parser.builder.impl.IUnkownSchemaNodeBuilder#getNodeType()
+     */
+    @Override
     public QName getNodeType() {
         return nodeType;
     }
 
+    @Override
     public void setNodeType(final QName nodeType) {
         this.nodeType = nodeType;
     }
 
+    /* (non-Javadoc)
+     * @see org.opendaylight.yangtools.yang.parser.builder.impl.IUnkownSchemaNodeBuilder#getNodeParameter()
+     */
+    @Override
     public String getNodeParameter() {
         return nodeParameter;
     }
 
+    /* (non-Javadoc)
+     * @see org.opendaylight.yangtools.yang.parser.builder.impl.IUnkownSchemaNodeBuilder#setNodeParameter(java.lang.String)
+     */
+    @Override
     public void setNodeParameter(final String nodeParameter) {
         this.nodeParameter = nodeParameter;
     }
 
+    /* (non-Javadoc)
+     * @see org.opendaylight.yangtools.yang.parser.builder.impl.IUnkownSchemaNodeBuilder#getExtensionDefinition()
+     */
+    @Override
     public ExtensionDefinition getExtensionDefinition() {
         return extensionDefinition;
     }
 
+    /* (non-Javadoc)
+     * @see org.opendaylight.yangtools.yang.parser.builder.impl.IUnkownSchemaNodeBuilder#setExtensionDefinition(org.opendaylight.yangtools.yang.model.api.ExtensionDefinition)
+     */
+    @Override
     public void setExtensionDefinition(final ExtensionDefinition extensionDefinition) {
         this.extensionDefinition = extensionDefinition;
     }
 
+    /* (non-Javadoc)
+     * @see org.opendaylight.yangtools.yang.parser.builder.impl.IUnkownSchemaNodeBuilder#getExtensionBuilder()
+     */
+    @Override
     public ExtensionBuilder getExtensionBuilder() {
         return extensionBuilder;
     }
 
+    /* (non-Javadoc)
+     * @see org.opendaylight.yangtools.yang.parser.builder.impl.IUnkownSchemaNodeBuilder#setExtensionBuilder(org.opendaylight.yangtools.yang.parser.builder.impl.ExtensionBuilder)
+     */
+    @Override
     public void setExtensionBuilder(final ExtensionBuilder extension) {
         this.extensionBuilder = extension;
     }
@@ -327,7 +389,7 @@ public final class UnknownSchemaNodeBuilder extends AbstractSchemaNodeBuilder {
         }
 
         @Override
-        public boolean equals(Object obj) {
+        public boolean equals(final Object obj) {
             if (this == obj) {
                 return true;
             }
index f038e236336c11e288bf5c81ed2d33289a8fcbdc..7a6dceb4ff4038ce1d7da358df0ff4538069c7a0 100644 (file)
@@ -20,15 +20,16 @@ import org.opendaylight.yangtools.yang.model.api.SchemaNode;
 import org.opendaylight.yangtools.yang.model.api.SchemaPath;
 import org.opendaylight.yangtools.yang.model.api.UnknownSchemaNode;
 import org.opendaylight.yangtools.yang.model.api.UsesNode;
-import org.opendaylight.yangtools.yang.parser.builder.api.AbstractBuilder;
 import org.opendaylight.yangtools.yang.parser.builder.api.AugmentationSchemaBuilder;
 import org.opendaylight.yangtools.yang.parser.builder.api.Builder;
 import org.opendaylight.yangtools.yang.parser.builder.api.DataNodeContainerBuilder;
 import org.opendaylight.yangtools.yang.parser.builder.api.DataSchemaNodeBuilder;
 import org.opendaylight.yangtools.yang.parser.builder.api.GroupingBuilder;
+import org.opendaylight.yangtools.yang.parser.builder.api.RefineBuilder;
 import org.opendaylight.yangtools.yang.parser.builder.api.SchemaNodeBuilder;
+import org.opendaylight.yangtools.yang.parser.builder.api.UnknownSchemaNodeBuilder;
 import org.opendaylight.yangtools.yang.parser.builder.api.UsesNodeBuilder;
-import org.opendaylight.yangtools.yang.parser.util.RefineHolder;
+import org.opendaylight.yangtools.yang.parser.builder.util.AbstractBuilder;
 import org.opendaylight.yangtools.yang.parser.util.YangParseException;
 
 import com.google.common.collect.ImmutableList;
@@ -47,7 +48,7 @@ public final class UsesNodeBuilderImpl extends AbstractBuilder implements UsesNo
     private boolean resolved;
     private final Set<AugmentationSchemaBuilder> augmentationBuilders = new HashSet<>();
     private final List<SchemaNodeBuilder> refineBuilders = new ArrayList<>();
-    private final List<RefineHolder> refines = new ArrayList<>();
+    private final List<RefineBuilder> refines = new ArrayList<>();
 
     public UsesNodeBuilderImpl(final String moduleName, final int line, final String groupingName) {
         super(moduleName, line);
@@ -188,12 +189,12 @@ public final class UsesNodeBuilderImpl extends AbstractBuilder implements UsesNo
     }
 
     @Override
-    public List<RefineHolder> getRefines() {
+    public List<RefineBuilder> getRefines() {
         return refines;
     }
 
     @Override
-    public void addRefine(final RefineHolder refine) {
+    public void addRefine(final RefineBuilder refine) {
         refines.add(refine);
     }
 
similarity index 85%
rename from yang/yang-parser-impl/src/main/java/org/opendaylight/yangtools/yang/parser/builder/api/AbstractBuilder.java
rename to yang/yang-parser-impl/src/main/java/org/opendaylight/yangtools/yang/parser/builder/util/AbstractBuilder.java
index de795220a8bc172bb5443840c2dd28d4bc99e96c..35b869be6bf9f9f13827a8db6b8e067f1a798a97 100644 (file)
@@ -5,13 +5,14 @@
  * terms of the Eclipse Public License v1.0 which accompanies this distribution,
  * and is available at http://www.eclipse.org/legal/epl-v10.html
  */
-package org.opendaylight.yangtools.yang.parser.builder.api;
+package org.opendaylight.yangtools.yang.parser.builder.util;
 
 import java.util.ArrayList;
 import java.util.List;
 
 import org.opendaylight.yangtools.yang.model.api.UnknownSchemaNode;
-import org.opendaylight.yangtools.yang.parser.builder.impl.UnknownSchemaNodeBuilder;
+import org.opendaylight.yangtools.yang.parser.builder.api.Builder;
+import org.opendaylight.yangtools.yang.parser.builder.api.UnknownSchemaNodeBuilder;
 
 import com.google.common.base.Preconditions;
 
@@ -64,7 +65,7 @@ public abstract class AbstractBuilder implements Builder {
     }
 
     @Override
-    public void addUnknownNodeBuilder(UnknownSchemaNodeBuilder unknownNode) {
+    public void addUnknownNodeBuilder(final UnknownSchemaNodeBuilder unknownNode) {
         addedUnknownNodes.add(unknownNode);
     }
 
@@ -4,7 +4,7 @@
  * terms of the Eclipse Public License v1.0 which accompanies this distribution,
  * and is available at http://www.eclipse.org/legal/epl-v10.html
  */
-package org.opendaylight.yangtools.yang.parser.builder.api;
+package org.opendaylight.yangtools.yang.parser.builder.util;
 
 import java.util.Collections;
 import java.util.HashSet;
@@ -18,7 +18,11 @@ import org.opendaylight.yangtools.yang.model.api.DataSchemaNode;
 import org.opendaylight.yangtools.yang.model.api.GroupingDefinition;
 import org.opendaylight.yangtools.yang.model.api.TypeDefinition;
 import org.opendaylight.yangtools.yang.model.api.UsesNode;
-import org.opendaylight.yangtools.yang.parser.util.Comparators;
+import org.opendaylight.yangtools.yang.parser.builder.api.DataNodeContainerBuilder;
+import org.opendaylight.yangtools.yang.parser.builder.api.DataSchemaNodeBuilder;
+import org.opendaylight.yangtools.yang.parser.builder.api.GroupingBuilder;
+import org.opendaylight.yangtools.yang.parser.builder.api.TypeDefinitionBuilder;
+import org.opendaylight.yangtools.yang.parser.builder.api.UsesNodeBuilder;
 import org.opendaylight.yangtools.yang.parser.util.YangParseException;
 
 /**
@@ -5,11 +5,12 @@
  * terms of the Eclipse Public License v1.0 which accompanies this distribution,
  * and is available at http://www.eclipse.org/legal/epl-v10.html
  */
-package org.opendaylight.yangtools.yang.parser.builder.api;
+package org.opendaylight.yangtools.yang.parser.builder.util;
 
 import org.opendaylight.yangtools.yang.common.QName;
 import org.opendaylight.yangtools.yang.model.api.SchemaPath;
 import org.opendaylight.yangtools.yang.model.api.Status;
+import org.opendaylight.yangtools.yang.parser.builder.api.SchemaNodeBuilder;
 
 import com.google.common.base.Preconditions;
 
@@ -5,10 +5,12 @@
  * terms of the Eclipse Public License v1.0 which accompanies this distribution,
  * and is available at http://www.eclipse.org/legal/epl-v10.html
  */
-package org.opendaylight.yangtools.yang.parser.builder.api;
+package org.opendaylight.yangtools.yang.parser.builder.util;
 
 import org.opendaylight.yangtools.yang.common.QName;
 import org.opendaylight.yangtools.yang.model.api.TypeDefinition;
+import org.opendaylight.yangtools.yang.parser.builder.api.TypeAwareBuilder;
+import org.opendaylight.yangtools.yang.parser.builder.api.TypeDefinitionBuilder;
 
 /**
  * Basic implementation for TypeAwareBuilder builders.
similarity index 84%
rename from yang/yang-parser-impl/src/main/java/org/opendaylight/yangtools/yang/parser/util/Comparators.java
rename to yang/yang-parser-impl/src/main/java/org/opendaylight/yangtools/yang/parser/builder/util/Comparators.java
index ed3ddd6afff815ebda5fe1fdbabf577f20325388..c22826c80c0c6c6fe7aa00ed98fce346a67e1923 100644 (file)
@@ -5,9 +5,10 @@
  * terms of the Eclipse Public License v1.0 which accompanies this distribution,
  * and is available at http://www.eclipse.org/legal/epl-v10.html
  */
-package org.opendaylight.yangtools.yang.parser.util;
+package org.opendaylight.yangtools.yang.parser.builder.util;
 
 import java.util.Comparator;
+
 import org.opendaylight.yangtools.yang.model.api.SchemaNode;
 import org.opendaylight.yangtools.yang.parser.builder.api.AugmentationSchemaBuilder;
 
@@ -21,6 +22,7 @@ public final class Comparators {
     /**
      * Comparator based on augment target path length.
      */
+    @Deprecated
     public static final AugmentComparator AUGMENT_COMP = new AugmentComparator();
 
     private Comparators() {
@@ -28,14 +30,14 @@ public final class Comparators {
 
     private static final class SchemaNodeComparator implements Comparator<SchemaNode> {
         @Override
-        public int compare(SchemaNode o1, SchemaNode o2) {
+        public int compare(final SchemaNode o1, final SchemaNode o2) {
             return o1.getQName().compareTo(o2.getQName());
         }
     }
 
     private static final class AugmentComparator implements Comparator<AugmentationSchemaBuilder> {
         @Override
-        public int compare(AugmentationSchemaBuilder o1, AugmentationSchemaBuilder o2) {
+        public int compare(final AugmentationSchemaBuilder o1, final AugmentationSchemaBuilder o2) {
             return o1.getTargetPath().getPath().size() - o2.getTargetPath().getPath().size();
         }
 
similarity index 99%
rename from yang/yang-parser-impl/src/main/java/org/opendaylight/yangtools/yang/validator/BasicValidations.java
rename to yang/yang-parser-impl/src/main/java/org/opendaylight/yangtools/yang/parser/impl/BasicValidations.java
index 5be33697915272b35ed0504d86c13eb1651d96b6..46f4f8ebf5fb3128d2da9f98da9daf55260ec920 100644 (file)
@@ -5,7 +5,7 @@
  * terms of the Eclipse Public License v1.0 which accompanies this distribution,
  * and is available at http://www.eclipse.org/legal/eplv10.html
  */
-package org.opendaylight.yangtools.yang.validator;
+package org.opendaylight.yangtools.yang.parser.impl;
 
 import java.text.ParseException;
 import java.util.Date;
similarity index 97%
rename from yang/yang-parser-impl/src/main/java/org/opendaylight/yangtools/yang/parser/util/GroupingSort.java
rename to yang/yang-parser-impl/src/main/java/org/opendaylight/yangtools/yang/parser/impl/GroupingSort.java
index fb473dfe81d456e180396e82008cd51d20088b73..45c4bd9cfe3238215b34b143643de0d0ba47366f 100644 (file)
@@ -5,7 +5,7 @@
  * terms of the Eclipse Public License v1.0 which accompanies this distribution,
  * and is available at http://www.eclipse.org/legal/epl-v10.html
  */
-package org.opendaylight.yangtools.yang.parser.util;
+package org.opendaylight.yangtools.yang.parser.impl;
 
 import java.util.ArrayList;
 import java.util.Collection;
@@ -22,6 +22,8 @@ import org.opendaylight.yangtools.yang.parser.builder.api.GroupingBuilder;
 import org.opendaylight.yangtools.yang.parser.builder.api.UsesNodeBuilder;
 import org.opendaylight.yangtools.yang.parser.builder.impl.ChoiceBuilder;
 import org.opendaylight.yangtools.yang.parser.builder.impl.ChoiceCaseBuilder;
+import org.opendaylight.yangtools.yang.parser.util.NodeWrappedType;
+import org.opendaylight.yangtools.yang.parser.util.TopologicalSort;
 import org.opendaylight.yangtools.yang.parser.util.TopologicalSort.Node;
 
 import com.google.common.collect.Maps;
similarity index 97%
rename from yang/yang-parser-impl/src/main/java/org/opendaylight/yangtools/yang/parser/util/ParserListenerUtils.java
rename to yang/yang-parser-impl/src/main/java/org/opendaylight/yangtools/yang/parser/impl/ParserListenerUtils.java
index c4e79e6710388bf1e2401e8c91e89f90c798f0c2..69ca39668c312798e05ae1270958d820efbff963 100644 (file)
@@ -5,7 +5,7 @@
  * terms of the Eclipse Public License v1.0 which accompanies this distribution,
  * and is available at http://www.eclipse.org/legal/eplv10.html
  */
-package org.opendaylight.yangtools.yang.parser.util;
+package org.opendaylight.yangtools.yang.parser.impl;
 
 import static com.google.common.base.Preconditions.checkState;
 
@@ -98,6 +98,7 @@ import org.opendaylight.yangtools.yang.model.api.type.UnsignedIntegerTypeDefinit
 import org.opendaylight.yangtools.yang.model.util.BaseConstraints;
 import org.opendaylight.yangtools.yang.model.util.BaseTypes;
 import org.opendaylight.yangtools.yang.model.util.BinaryType;
+import org.opendaylight.yangtools.yang.model.util.BitImpl;
 import org.opendaylight.yangtools.yang.model.util.BitsType;
 import org.opendaylight.yangtools.yang.model.util.Decimal64;
 import org.opendaylight.yangtools.yang.model.util.EnumerationType;
@@ -108,6 +109,7 @@ import org.opendaylight.yangtools.yang.model.util.Int32;
 import org.opendaylight.yangtools.yang.model.util.Int64;
 import org.opendaylight.yangtools.yang.model.util.Int8;
 import org.opendaylight.yangtools.yang.model.util.Leafref;
+import org.opendaylight.yangtools.yang.model.util.MustDefinitionImpl;
 import org.opendaylight.yangtools.yang.model.util.RevisionAwareXPathImpl;
 import org.opendaylight.yangtools.yang.model.util.StringType;
 import org.opendaylight.yangtools.yang.model.util.Uint16;
@@ -117,11 +119,16 @@ import org.opendaylight.yangtools.yang.model.util.Uint8;
 import org.opendaylight.yangtools.yang.model.util.UnknownType;
 import org.opendaylight.yangtools.yang.parser.builder.api.Builder;
 import org.opendaylight.yangtools.yang.parser.builder.api.DataSchemaNodeBuilder;
+import org.opendaylight.yangtools.yang.parser.builder.api.ConstraintsBuilder;
+import org.opendaylight.yangtools.yang.parser.builder.api.RefineBuilder;
 import org.opendaylight.yangtools.yang.parser.builder.api.SchemaNodeBuilder;
 import org.opendaylight.yangtools.yang.parser.builder.api.TypeDefinitionBuilder;
 import org.opendaylight.yangtools.yang.parser.builder.impl.ChoiceCaseBuilder;
-import org.opendaylight.yangtools.yang.parser.builder.impl.ConstraintsBuilder;
+import org.opendaylight.yangtools.yang.parser.builder.impl.RefineHolderImpl;
 import org.opendaylight.yangtools.yang.parser.builder.impl.UnionTypeBuilder;
+import org.opendaylight.yangtools.yang.parser.util.TypeConstraints;
+import org.opendaylight.yangtools.yang.parser.util.UnknownBoundaryNumber;
+import org.opendaylight.yangtools.yang.parser.util.YangParseException;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
 
@@ -1519,9 +1526,9 @@ public final class ParserListenerUtils {
      *            name of current module
      * @return RefineHolder object representing this refine statement
      */
-    public static RefineHolder parseRefine(final Refine_stmtContext refineCtx, final String moduleName) {
+    public static RefineHolderImpl parseRefine(final Refine_stmtContext refineCtx, final String moduleName) {
         final String refineTarget = stringFromNode(refineCtx);
-        final RefineHolder refine = new RefineHolder(moduleName, refineCtx.getStart().getLine(), refineTarget);
+        final RefineHolderImpl refine = new RefineHolderImpl(moduleName, refineCtx.getStart().getLine(), refineTarget);
         for (int i = 0; i < refineCtx.getChildCount(); i++) {
             ParseTree refinePom = refineCtx.getChild(i);
             if (refinePom instanceof Refine_pomContext) {
@@ -1548,7 +1555,7 @@ public final class ParserListenerUtils {
         return refine;
     }
 
-    private static void parseRefineDefault(final RefineHolder refine, final ParseTree refineStmt) {
+    private static void parseRefineDefault(final RefineHolderImpl refine, final ParseTree refineStmt) {
         for (int i = 0; i < refineStmt.getChildCount(); i++) {
             ParseTree refineArg = refineStmt.getChild(i);
             if (refineArg instanceof Description_stmtContext) {
@@ -1564,7 +1571,7 @@ public final class ParserListenerUtils {
         }
     }
 
-    private static RefineHolder parseRefine(final RefineHolder refine, final Refine_leaf_stmtsContext refineStmt) {
+    private static RefineBuilder parseRefine(final RefineHolderImpl refine, final Refine_leaf_stmtsContext refineStmt) {
         for (int i = 0; i < refineStmt.getChildCount(); i++) {
             ParseTree refineArg = refineStmt.getChild(i);
             if (refineArg instanceof Default_stmtContext) {
@@ -1587,7 +1594,7 @@ public final class ParserListenerUtils {
         return refine;
     }
 
-    private static RefineHolder parseRefine(final RefineHolder refine, final Refine_container_stmtsContext refineStmt) {
+    private static RefineBuilder parseRefine(final RefineBuilder refine, final Refine_container_stmtsContext refineStmt) {
         for (int i = 0; i < refineStmt.getChildCount(); i++) {
             ParseTree refineArg = refineStmt.getChild(i);
             if (refineArg instanceof Must_stmtContext) {
@@ -1600,7 +1607,7 @@ public final class ParserListenerUtils {
         return refine;
     }
 
-    private static RefineHolder parseRefine(final RefineHolder refine, final Refine_list_stmtsContext refineStmt) {
+    private static RefineBuilder parseRefine(final RefineHolderImpl refine, final Refine_list_stmtsContext refineStmt) {
         for (int i = 0; i < refineStmt.getChildCount(); i++) {
             ParseTree refineArg = refineStmt.getChild(i);
             if (refineArg instanceof Must_stmtContext) {
@@ -1617,7 +1624,7 @@ public final class ParserListenerUtils {
         return refine;
     }
 
-    private static RefineHolder parseRefine(final RefineHolder refine, final Refine_leaf_list_stmtsContext refineStmt) {
+    private static RefineBuilder parseRefine(final RefineHolderImpl refine, final Refine_leaf_list_stmtsContext refineStmt) {
         for (int i = 0; i < refineStmt.getChildCount(); i++) {
             ParseTree refineArg = refineStmt.getChild(i);
             if (refineArg instanceof Must_stmtContext) {
@@ -1634,7 +1641,7 @@ public final class ParserListenerUtils {
         return refine;
     }
 
-    private static RefineHolder parseRefine(final RefineHolder refine, final Refine_choice_stmtsContext refineStmt) {
+    private static RefineBuilder parseRefine(final RefineHolderImpl refine, final Refine_choice_stmtsContext refineStmt) {
         for (int i = 0; i < refineStmt.getChildCount(); i++) {
             ParseTree refineArg = refineStmt.getChild(i);
             if (refineArg instanceof Default_stmtContext) {
@@ -1653,7 +1660,7 @@ public final class ParserListenerUtils {
         return refine;
     }
 
-    private static RefineHolder parseRefine(final RefineHolder refine, final Refine_anyxml_stmtsContext refineStmt) {
+    private static RefineBuilder parseRefine(final RefineBuilder refine, final Refine_anyxml_stmtsContext refineStmt) {
         for (int i = 0; i < refineStmt.getChildCount(); i++) {
             ParseTree refineArg = refineStmt.getChild(i);
             if (refineArg instanceof Must_stmtContext) {
similarity index 96%
rename from yang/yang-parser-impl/src/main/java/org/opendaylight/yangtools/yang/validator/ValidationUtil.java
rename to yang/yang-parser-impl/src/main/java/org/opendaylight/yangtools/yang/parser/impl/ValidationUtil.java
index 9095ae0dff0d8c5193b25348a57ea810704962aa..d5ca358b64956afab1c3a99f4c255df8442ef640 100644 (file)
@@ -5,7 +5,7 @@
  * terms of the Eclipse Public License v1.0 which accompanies this distribution,
  * and is available at http://www.eclipse.org/legal/eplv10.html
  */
-package org.opendaylight.yangtools.yang.validator;
+package org.opendaylight.yangtools.yang.parser.impl;
 
 import java.util.Arrays;
 import java.util.Collection;
@@ -16,7 +16,6 @@ import java.util.Set;
 import org.antlr.v4.runtime.tree.ParseTree;
 import org.opendaylight.yangtools.antlrv4.code.gen.YangParser.Module_stmtContext;
 import org.opendaylight.yangtools.antlrv4.code.gen.YangParser.Submodule_stmtContext;
-import org.opendaylight.yangtools.yang.parser.util.ParserListenerUtils;
 import org.opendaylight.yangtools.yang.parser.util.YangValidationException;
 
 /**
@@ -5,7 +5,7 @@
  * terms of the Eclipse Public License v1.0 which accompanies this distribution,
  * and is available at http://www.eclipse.org/legal/epl-v10.html
  */
-package org.opendaylight.yangtools.yang.validator;
+package org.opendaylight.yangtools.yang.parser.impl;
 
 import java.net.URI;
 import java.net.URISyntaxException;
similarity index 96%
rename from yang/yang-parser-impl/src/main/java/org/opendaylight/yangtools/yang/validator/YangModelBasicValidator.java
rename to yang/yang-parser-impl/src/main/java/org/opendaylight/yangtools/yang/parser/impl/YangModelBasicValidator.java
index d6ad2ed8ab14b4bf7fa7fc31e606f4d958d5621e..353150b1a8beab61ef8cced32d905696b7b3a343 100644 (file)
@@ -5,7 +5,7 @@
  * terms of the Eclipse Public License v1.0 which accompanies this distribution,
  * and is available at http://www.eclipse.org/legal/epl-v10.html
  */
-package org.opendaylight.yangtools.yang.validator;
+package org.opendaylight.yangtools.yang.parser.impl;
 
 import java.util.Collection;
 
index 0b8a52f07222c23fc68d41af510809c2a260dbfd..2f8dcf64fc4113e297a67100de615accacb7cd46 100644 (file)
@@ -7,23 +7,23 @@
 package org.opendaylight.yangtools.yang.parser.impl;
 
 import static com.google.common.base.Preconditions.checkNotNull;
-import static org.opendaylight.yangtools.yang.parser.util.ParserUtils.fillAugmentTarget;
-import static org.opendaylight.yangtools.yang.parser.util.ParserUtils.findBaseIdentity;
-import static org.opendaylight.yangtools.yang.parser.util.ParserUtils.findModuleFromBuilders;
-import static org.opendaylight.yangtools.yang.parser.util.ParserUtils.findModuleFromContext;
-import static org.opendaylight.yangtools.yang.parser.util.ParserUtils.findSchemaNode;
-import static org.opendaylight.yangtools.yang.parser.util.ParserUtils.findSchemaNodeInModule;
-import static org.opendaylight.yangtools.yang.parser.util.ParserUtils.processAugmentation;
-import static org.opendaylight.yangtools.yang.parser.util.ParserUtils.setNodeAddedByUses;
-import static org.opendaylight.yangtools.yang.parser.util.ParserUtils.wrapChildNode;
-import static org.opendaylight.yangtools.yang.parser.util.ParserUtils.wrapChildNodes;
-import static org.opendaylight.yangtools.yang.parser.util.ParserUtils.wrapGroupings;
-import static org.opendaylight.yangtools.yang.parser.util.ParserUtils.wrapTypedefs;
-import static org.opendaylight.yangtools.yang.parser.util.ParserUtils.wrapUnknownNodes;
-import static org.opendaylight.yangtools.yang.parser.util.TypeUtils.resolveType;
-import static org.opendaylight.yangtools.yang.parser.util.TypeUtils.resolveTypeUnion;
-import static org.opendaylight.yangtools.yang.parser.util.TypeUtils.resolveTypeUnionWithContext;
-import static org.opendaylight.yangtools.yang.parser.util.TypeUtils.resolveTypeWithContext;
+import static org.opendaylight.yangtools.yang.parser.builder.impl.BuilderUtils.fillAugmentTarget;
+import static org.opendaylight.yangtools.yang.parser.builder.impl.BuilderUtils.findBaseIdentity;
+import static org.opendaylight.yangtools.yang.parser.builder.impl.BuilderUtils.findModuleFromBuilders;
+import static org.opendaylight.yangtools.yang.parser.builder.impl.BuilderUtils.findModuleFromContext;
+import static org.opendaylight.yangtools.yang.parser.builder.impl.BuilderUtils.findSchemaNode;
+import static org.opendaylight.yangtools.yang.parser.builder.impl.BuilderUtils.findSchemaNodeInModule;
+import static org.opendaylight.yangtools.yang.parser.builder.impl.BuilderUtils.processAugmentation;
+import static org.opendaylight.yangtools.yang.parser.builder.impl.BuilderUtils.setNodeAddedByUses;
+import static org.opendaylight.yangtools.yang.parser.builder.impl.BuilderUtils.wrapChildNode;
+import static org.opendaylight.yangtools.yang.parser.builder.impl.BuilderUtils.wrapChildNodes;
+import static org.opendaylight.yangtools.yang.parser.builder.impl.BuilderUtils.wrapGroupings;
+import static org.opendaylight.yangtools.yang.parser.builder.impl.BuilderUtils.wrapTypedefs;
+import static org.opendaylight.yangtools.yang.parser.builder.impl.BuilderUtils.wrapUnknownNodes;
+import static org.opendaylight.yangtools.yang.parser.builder.impl.TypeUtils.resolveType;
+import static org.opendaylight.yangtools.yang.parser.builder.impl.TypeUtils.resolveTypeUnion;
+import static org.opendaylight.yangtools.yang.parser.builder.impl.TypeUtils.resolveTypeUnionWithContext;
+import static org.opendaylight.yangtools.yang.parser.builder.impl.TypeUtils.resolveTypeWithContext;
 
 import java.io.File;
 import java.io.IOException;
@@ -68,31 +68,30 @@ import org.opendaylight.yangtools.yang.parser.builder.api.AugmentationTargetBuil
 import org.opendaylight.yangtools.yang.parser.builder.api.Builder;
 import org.opendaylight.yangtools.yang.parser.builder.api.DataNodeContainerBuilder;
 import org.opendaylight.yangtools.yang.parser.builder.api.DataSchemaNodeBuilder;
+import org.opendaylight.yangtools.yang.parser.builder.api.ExtensionBuilder;
 import org.opendaylight.yangtools.yang.parser.builder.api.GroupingBuilder;
 import org.opendaylight.yangtools.yang.parser.builder.api.SchemaNodeBuilder;
 import org.opendaylight.yangtools.yang.parser.builder.api.TypeAwareBuilder;
 import org.opendaylight.yangtools.yang.parser.builder.api.TypeDefinitionBuilder;
+import org.opendaylight.yangtools.yang.parser.builder.api.UnknownSchemaNodeBuilder;
 import org.opendaylight.yangtools.yang.parser.builder.api.UsesNodeBuilder;
+import org.opendaylight.yangtools.yang.parser.builder.impl.BuilderUtils;
 import org.opendaylight.yangtools.yang.parser.builder.impl.ChoiceBuilder;
 import org.opendaylight.yangtools.yang.parser.builder.impl.ChoiceCaseBuilder;
 import org.opendaylight.yangtools.yang.parser.builder.impl.DeviationBuilder;
-import org.opendaylight.yangtools.yang.parser.builder.impl.ExtensionBuilder;
+import org.opendaylight.yangtools.yang.parser.builder.impl.GroupingUtils;
 import org.opendaylight.yangtools.yang.parser.builder.impl.IdentitySchemaNodeBuilder;
 import org.opendaylight.yangtools.yang.parser.builder.impl.IdentityrefTypeBuilder;
 import org.opendaylight.yangtools.yang.parser.builder.impl.ModuleBuilder;
 import org.opendaylight.yangtools.yang.parser.builder.impl.ModuleBuilder.ModuleImpl;
 import org.opendaylight.yangtools.yang.parser.builder.impl.UnionTypeBuilder;
-import org.opendaylight.yangtools.yang.parser.builder.impl.UnknownSchemaNodeBuilder;
-import org.opendaylight.yangtools.yang.parser.util.Comparators;
-import org.opendaylight.yangtools.yang.parser.util.GroupingSort;
-import org.opendaylight.yangtools.yang.parser.util.GroupingUtils;
+import org.opendaylight.yangtools.yang.parser.builder.impl.UnknownSchemaNodeBuilderImpl;
+import org.opendaylight.yangtools.yang.parser.builder.util.Comparators;
 import org.opendaylight.yangtools.yang.parser.util.ModuleDependencySort;
 import org.opendaylight.yangtools.yang.parser.util.NamedByteArrayInputStream;
 import org.opendaylight.yangtools.yang.parser.util.NamedFileInputStream;
 import org.opendaylight.yangtools.yang.parser.util.NamedInputStream;
-import org.opendaylight.yangtools.yang.parser.util.ParserUtils;
 import org.opendaylight.yangtools.yang.parser.util.YangParseException;
-import org.opendaylight.yangtools.yang.validator.YangModelBasicValidator;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
 
@@ -127,7 +126,7 @@ public final class YangParserImpl implements YangContextParser {
         final String[] fileList = checkNotNull(directory.list(), directory + " not found or is not a directory");
 
         Map<ByteSource, File> sourceToFile = new LinkedHashMap<>();
-        ByteSource mainFileSource = ParserUtils.fileToByteSource(yangFile);
+        ByteSource mainFileSource = BuilderUtils.fileToByteSource(yangFile);
         sourceToFile.put(mainFileSource, yangFile);
 
         for (String fileName : fileList) {
@@ -136,7 +135,7 @@ public final class YangParserImpl implements YangContextParser {
             }
             File dependency = new File(directory, fileName);
             if (dependency.isFile()) {
-                sourceToFile.put(ParserUtils.fileToByteSource(dependency), dependency);
+                sourceToFile.put(BuilderUtils.fileToByteSource(dependency), dependency);
             }
         }
 
@@ -188,7 +187,7 @@ public final class YangParserImpl implements YangContextParser {
             return resolveSchemaContext(Collections.<Module> emptySet());
         }
 
-        Collection<ByteSource> sources = ParserUtils.filesToByteSources(yangFiles);
+        Collection<ByteSource> sources = BuilderUtils.filesToByteSources(yangFiles);
         SchemaContext result = parseSources(sources, context);
         return result;
     }
@@ -197,7 +196,7 @@ public final class YangParserImpl implements YangContextParser {
     @Deprecated
     public Set<Module> parseYangModelsFromStreams(final List<InputStream> yangModelStreams) {
         try {
-            Collection<ByteSource> sources = ParserUtils.streamsToByteSources(yangModelStreams);
+            Collection<ByteSource> sources = BuilderUtils.streamsToByteSources(yangModelStreams);
             return parseSources(sources).getModules();
         } catch (IOException | YangSyntaxErrorException e) {
             throw new YangParseException("Failed to parse yang data", e);
@@ -217,7 +216,7 @@ public final class YangParserImpl implements YangContextParser {
     @Deprecated
     public Set<Module> parseYangModelsFromStreams(final List<InputStream> yangModelStreams, final SchemaContext context) {
         try {
-            Collection<ByteSource> sources = ParserUtils.streamsToByteSources(yangModelStreams);
+            Collection<ByteSource> sources = BuilderUtils.streamsToByteSources(yangModelStreams);
             return parseSources(sources, context).getModules();
         } catch (IOException | YangSyntaxErrorException e) {
             throw new YangParseException("Failed to parse yang data", e);
@@ -326,7 +325,7 @@ public final class YangParserImpl implements YangContextParser {
         Map<ByteSource, ModuleBuilder> sourceToBuilder = resolveSources(sources);
         // sort and check for duplicates
         List<ModuleBuilder> sorted = ModuleDependencySort.sort(sourceToBuilder.values());
-        ParserUtils.setSourceToBuilder(sourceToBuilder);
+        BuilderUtils.setSourceToBuilder(sourceToBuilder);
         Map<String, TreeMap<Date, ModuleBuilder>> modules = orderModules(sorted);
         Map<ModuleBuilder, Module> builderToModule = build(modules);
         Map<ModuleBuilder, ByteSource> builderToSource = HashBiMap.create(sourceToBuilder).inverse();
@@ -386,7 +385,7 @@ public final class YangParserImpl implements YangContextParser {
             sourceToBuilder.put(source, moduleBuilder);
         }
 
-        ParserUtils.setSourceToBuilder(sourceToBuilder);
+        BuilderUtils.setSourceToBuilder(sourceToBuilder);
         return sourceToBuilder;
     }
 
@@ -826,7 +825,7 @@ public final class YangParserImpl implements YangContextParser {
      */
     private void setCorrectAugmentTargetPath(final Map<String, TreeMap<Date, ModuleBuilder>> modules,
             final AugmentationSchemaBuilder augment, final SchemaContext context) {
-        ModuleBuilder module = ParserUtils.getParentModule(augment);
+        ModuleBuilder module = BuilderUtils.getParentModule(augment);
         SchemaPath oldSchemaPath = augment.getTargetPath();
         List<QName> oldPath = oldSchemaPath.getPath();
         List<QName> newPath = new ArrayList<>();
@@ -841,7 +840,7 @@ public final class YangParserImpl implements YangContextParser {
             String prefix;
             QName baseQName = usesParent.getQName();
             if (baseQName == null) {
-                ModuleBuilder m = ParserUtils.getParentModule(usesParent);
+                ModuleBuilder m = BuilderUtils.getParentModule(usesParent);
                 ns = m.getNamespace();
                 revision = m.getRevision();
                 prefix = m.getPrefix();
@@ -861,10 +860,10 @@ public final class YangParserImpl implements YangContextParser {
                 Date rev = module.getRevision();
                 String localPrefix = qn.getPrefix();
                 if (localPrefix != null && !("".equals(localPrefix))) {
-                    ModuleBuilder currentModule = ParserUtils.findModuleFromBuilders(modules, module, localPrefix,
+                    ModuleBuilder currentModule = BuilderUtils.findModuleFromBuilders(modules, module, localPrefix,
                             augment.getLine());
                     if (currentModule == null) {
-                        Module m = ParserUtils.findModuleFromContext(context, module, localPrefix, augment.getLine());
+                        Module m = BuilderUtils.findModuleFromContext(context, module, localPrefix, augment.getLine());
                         if (m == null) {
                             throw new YangParseException(module.getName(), augment.getLine(), "Module with prefix "
                                     + localPrefix + " not found.");
@@ -921,7 +920,7 @@ public final class YangParserImpl implements YangContextParser {
     private void checkAugmentMandatoryNodes(final Collection<AugmentationSchemaBuilder> augments) {
         for (AugmentationSchemaBuilder augment : augments) {
             String augmentPrefix = augment.getTargetPath().getPathFromRoot().iterator().next().getPrefix();
-            ModuleBuilder module = ParserUtils.getParentModule(augment);
+            ModuleBuilder module = BuilderUtils.getParentModule(augment);
             String modulePrefix = module.getPrefix();
 
             if (augmentPrefix == null || augmentPrefix.isEmpty() || augmentPrefix.equals(modulePrefix)) {
@@ -1197,10 +1196,10 @@ public final class YangParserImpl implements YangContextParser {
                             String name = splittedBase[1];
                             ModuleBuilder dependentModule = findTargetModule(prefix, module, modules, context, line);
                             if (dependentModule != null) {
-                                result = ParserUtils.findIdentity(dependentModule.getAddedIdentities(), name);
+                                result = BuilderUtils.findIdentity(dependentModule.getAddedIdentities(), name);
                             }
                         } else {
-                            result = ParserUtils.findIdentity(module.getAddedIdentities(), baseIdentityName);
+                            result = BuilderUtils.findIdentity(module.getAddedIdentities(), baseIdentityName);
                         }
                         identity.setBaseIdentity(result);
                     }
@@ -1227,7 +1226,7 @@ public final class YangParserImpl implements YangContextParser {
             }
         }
         for (UsesNodeBuilder usesNode : allUses) {
-            ModuleBuilder module = ParserUtils.getParentModule(usesNode);
+            ModuleBuilder module = BuilderUtils.getParentModule(usesNode);
             final GroupingBuilder targetGroupingBuilder = GroupingUtils.getTargetGroupingFromModules(usesNode, modules,
                     module);
             if (targetGroupingBuilder == null) {
@@ -1309,7 +1308,7 @@ public final class YangParserImpl implements YangContextParser {
             final SchemaContext context) {
         if (!usesNode.isResolved()) {
             DataNodeContainerBuilder parent = usesNode.getParent();
-            ModuleBuilder module = ParserUtils.getParentModule(parent);
+            ModuleBuilder module = BuilderUtils.getParentModule(parent);
             GroupingBuilder target = GroupingUtils.getTargetGroupingFromModules(usesNode, modules, module);
             if (target == null) {
                 resolveUsesWithContext(usesNode);
@@ -1344,7 +1343,7 @@ public final class YangParserImpl implements YangContextParser {
     private void resolveUsesWithContext(final UsesNodeBuilder usesNode) {
         final int line = usesNode.getLine();
         DataNodeContainerBuilder parent = usesNode.getParent();
-        ModuleBuilder module = ParserUtils.getParentModule(parent);
+        ModuleBuilder module = BuilderUtils.getParentModule(parent);
         SchemaPath parentPath;
         URI ns = null;
         Date rev = null;
@@ -1387,7 +1386,7 @@ public final class YangParserImpl implements YangContextParser {
             setNodeAddedByUses(gb);
         }
 
-        List<UnknownSchemaNodeBuilder> unknownNodes = wrapUnknownNodes(module.getModuleName(), line,
+        List<UnknownSchemaNodeBuilderImpl> unknownNodes = wrapUnknownNodes(module.getModuleName(), line,
                 gd.getUnknownSchemaNodes(), parentPath, ns, rev, pref);
         parent.getUnknownNodes().addAll(unknownNodes);
         for (UnknownSchemaNodeBuilder un : unknownNodes) {
index bf7f399b10996f723083aaee0e2c8dd5a51cb131..35dfb65f7e53ec9fdbe44c246ca2d152c0ed1953 100644 (file)
@@ -7,24 +7,23 @@
  */
 package org.opendaylight.yangtools.yang.parser.impl;
 
-import static org.opendaylight.yangtools.yang.parser.util.ParserListenerUtils.checkMissingBody;
-import static org.opendaylight.yangtools.yang.parser.util.ParserListenerUtils.createActualSchemaPath;
-import static org.opendaylight.yangtools.yang.parser.util.ParserListenerUtils.createListKey;
-import static org.opendaylight.yangtools.yang.parser.util.ParserListenerUtils.getConfig;
-import static org.opendaylight.yangtools.yang.parser.util.ParserListenerUtils.getIdentityrefBase;
-import static org.opendaylight.yangtools.yang.parser.util.ParserListenerUtils.parseConstraints;
-import static org.opendaylight.yangtools.yang.parser.util.ParserListenerUtils.parseDefault;
-import static org.opendaylight.yangtools.yang.parser.util.ParserListenerUtils.parseRefine;
-import static org.opendaylight.yangtools.yang.parser.util.ParserListenerUtils.parseSchemaNodeArgs;
-import static org.opendaylight.yangtools.yang.parser.util.ParserListenerUtils.parseStatus;
-import static org.opendaylight.yangtools.yang.parser.util.ParserListenerUtils.parseTypeWithBody;
-import static org.opendaylight.yangtools.yang.parser.util.ParserListenerUtils.parseUnits;
-import static org.opendaylight.yangtools.yang.parser.util.ParserListenerUtils.parseUnknownTypeWithBody;
-import static org.opendaylight.yangtools.yang.parser.util.ParserListenerUtils.parseUserOrdered;
-import static org.opendaylight.yangtools.yang.parser.util.ParserListenerUtils.parseYinValue;
-import static org.opendaylight.yangtools.yang.parser.util.ParserListenerUtils.stringFromNode;
+import static org.opendaylight.yangtools.yang.parser.impl.ParserListenerUtils.checkMissingBody;
+import static org.opendaylight.yangtools.yang.parser.impl.ParserListenerUtils.createActualSchemaPath;
+import static org.opendaylight.yangtools.yang.parser.impl.ParserListenerUtils.createListKey;
+import static org.opendaylight.yangtools.yang.parser.impl.ParserListenerUtils.getConfig;
+import static org.opendaylight.yangtools.yang.parser.impl.ParserListenerUtils.getIdentityrefBase;
+import static org.opendaylight.yangtools.yang.parser.impl.ParserListenerUtils.parseConstraints;
+import static org.opendaylight.yangtools.yang.parser.impl.ParserListenerUtils.parseDefault;
+import static org.opendaylight.yangtools.yang.parser.impl.ParserListenerUtils.parseRefine;
+import static org.opendaylight.yangtools.yang.parser.impl.ParserListenerUtils.parseSchemaNodeArgs;
+import static org.opendaylight.yangtools.yang.parser.impl.ParserListenerUtils.parseStatus;
+import static org.opendaylight.yangtools.yang.parser.impl.ParserListenerUtils.parseTypeWithBody;
+import static org.opendaylight.yangtools.yang.parser.impl.ParserListenerUtils.parseUnits;
+import static org.opendaylight.yangtools.yang.parser.impl.ParserListenerUtils.parseUnknownTypeWithBody;
+import static org.opendaylight.yangtools.yang.parser.impl.ParserListenerUtils.parseUserOrdered;
+import static org.opendaylight.yangtools.yang.parser.impl.ParserListenerUtils.parseYinValue;
+import static org.opendaylight.yangtools.yang.parser.impl.ParserListenerUtils.stringFromNode;
 
-import com.google.common.base.Strings;
 import java.net.URI;
 import java.text.DateFormat;
 import java.text.ParseException;
@@ -32,6 +31,7 @@ import java.text.SimpleDateFormat;
 import java.util.Date;
 import java.util.List;
 import java.util.Stack;
+
 import org.antlr.v4.runtime.tree.ParseTree;
 import org.opendaylight.yangtools.antlrv4.code.gen.YangParser;
 import org.opendaylight.yangtools.antlrv4.code.gen.YangParser.Argument_stmtContext;
@@ -72,6 +72,7 @@ import org.opendaylight.yangtools.yang.model.util.BaseTypes;
 import org.opendaylight.yangtools.yang.model.util.YangTypesConverter;
 import org.opendaylight.yangtools.yang.parser.builder.api.AugmentationSchemaBuilder;
 import org.opendaylight.yangtools.yang.parser.builder.api.Builder;
+import org.opendaylight.yangtools.yang.parser.builder.api.ExtensionBuilder;
 import org.opendaylight.yangtools.yang.parser.builder.api.GroupingBuilder;
 import org.opendaylight.yangtools.yang.parser.builder.api.TypeDefinitionBuilder;
 import org.opendaylight.yangtools.yang.parser.builder.api.UsesNodeBuilder;
@@ -80,7 +81,6 @@ import org.opendaylight.yangtools.yang.parser.builder.impl.ChoiceBuilder;
 import org.opendaylight.yangtools.yang.parser.builder.impl.ChoiceCaseBuilder;
 import org.opendaylight.yangtools.yang.parser.builder.impl.ContainerSchemaNodeBuilder;
 import org.opendaylight.yangtools.yang.parser.builder.impl.DeviationBuilder;
-import org.opendaylight.yangtools.yang.parser.builder.impl.ExtensionBuilder;
 import org.opendaylight.yangtools.yang.parser.builder.impl.FeatureBuilder;
 import org.opendaylight.yangtools.yang.parser.builder.impl.IdentitySchemaNodeBuilder;
 import org.opendaylight.yangtools.yang.parser.builder.impl.LeafListSchemaNodeBuilder;
@@ -88,13 +88,15 @@ import org.opendaylight.yangtools.yang.parser.builder.impl.LeafSchemaNodeBuilder
 import org.opendaylight.yangtools.yang.parser.builder.impl.ListSchemaNodeBuilder;
 import org.opendaylight.yangtools.yang.parser.builder.impl.ModuleBuilder;
 import org.opendaylight.yangtools.yang.parser.builder.impl.NotificationBuilder;
+import org.opendaylight.yangtools.yang.parser.builder.impl.RefineHolderImpl;
 import org.opendaylight.yangtools.yang.parser.builder.impl.RpcDefinitionBuilder;
 import org.opendaylight.yangtools.yang.parser.builder.impl.UnionTypeBuilder;
-import org.opendaylight.yangtools.yang.parser.builder.impl.UnknownSchemaNodeBuilder;
-import org.opendaylight.yangtools.yang.parser.util.RefineHolder;
+import org.opendaylight.yangtools.yang.parser.builder.impl.UnknownSchemaNodeBuilderImpl;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
 
+import com.google.common.base.Strings;
+
 public final class YangParserListenerImpl extends YangParserBaseListener {
     private static final Logger LOGGER = LoggerFactory.getLogger(YangParserListenerImpl.class);
     private static final String AUGMENT_STR = "augment";
@@ -110,7 +112,7 @@ public final class YangParserListenerImpl extends YangParserBaseListener {
     private final Stack<Stack<QName>> actualPath = new Stack<>();
     private int augmentOrder;
 
-    private void addNodeToPath(QName name) {
+    private void addNodeToPath(final QName name) {
         actualPath.peek().push(name);
     }
 
@@ -118,12 +120,12 @@ public final class YangParserListenerImpl extends YangParserBaseListener {
         return actualPath.peek().pop();
     }
 
-    public YangParserListenerImpl(String sourcePath) {
+    public YangParserListenerImpl(final String sourcePath) {
         this.sourcePath = sourcePath;
     }
 
     @Override
-    public void enterModule_stmt(YangParser.Module_stmtContext ctx) {
+    public void enterModule_stmt(final YangParser.Module_stmtContext ctx) {
         moduleName = stringFromNode(ctx);
         LOGGER.trace("entering module " + moduleName);
         enterLog("module", moduleName, 0);
@@ -150,12 +152,12 @@ public final class YangParserListenerImpl extends YangParserBaseListener {
     }
 
     @Override
-    public void exitModule_stmt(YangParser.Module_stmtContext ctx) {
+    public void exitModule_stmt(final YangParser.Module_stmtContext ctx) {
         exitLog("module", "");
         actualPath.pop();
     }
 
-    @Override public void enterSubmodule_stmt(YangParser.Submodule_stmtContext ctx) {
+    @Override public void enterSubmodule_stmt(final YangParser.Submodule_stmtContext ctx) {
         moduleName = stringFromNode(ctx);
         LOGGER.trace("entering submodule " + moduleName);
         enterLog("submodule", moduleName, 0);
@@ -181,17 +183,17 @@ public final class YangParserListenerImpl extends YangParserBaseListener {
         moduleBuilder.setReference(reference);
     }
 
-    @Override public void exitSubmodule_stmt(YangParser.Submodule_stmtContext ctx) {
+    @Override public void exitSubmodule_stmt(final YangParser.Submodule_stmtContext ctx) {
         exitLog("submodule", "");
         actualPath.pop();
     }
 
-    @Override public void enterBelongs_to_stmt(YangParser.Belongs_to_stmtContext ctx) {
+    @Override public void enterBelongs_to_stmt(final YangParser.Belongs_to_stmtContext ctx) {
         moduleBuilder.setBelongsTo(stringFromNode(ctx));
     }
 
     @Override
-    public void enterModule_header_stmts(Module_header_stmtsContext ctx) {
+    public void enterModule_header_stmts(final Module_header_stmtsContext ctx) {
         enterLog("module_header", "", ctx.getStart().getLine());
         String yangVersion = null;
         for (int i = 0; i < ctx.getChildCount(); ++i) {
@@ -218,12 +220,12 @@ public final class YangParserListenerImpl extends YangParserBaseListener {
     }
 
     @Override
-    public void exitModule_header_stmts(Module_header_stmtsContext ctx) {
+    public void exitModule_header_stmts(final Module_header_stmtsContext ctx) {
         exitLog("module_header", "");
     }
 
     @Override
-    public void enterMeta_stmts(YangParser.Meta_stmtsContext ctx) {
+    public void enterMeta_stmts(final YangParser.Meta_stmtsContext ctx) {
         enterLog("meta_stmt", "", ctx.getStart().getLine());
         for (int i = 0; i < ctx.getChildCount(); i++) {
             ParseTree child = ctx.getChild(i);
@@ -248,12 +250,12 @@ public final class YangParserListenerImpl extends YangParserBaseListener {
     }
 
     @Override
-    public void exitMeta_stmts(YangParser.Meta_stmtsContext ctx) {
+    public void exitMeta_stmts(final YangParser.Meta_stmtsContext ctx) {
         exitLog("meta_stmt", "");
     }
 
     @Override
-    public void enterRevision_stmts(Revision_stmtsContext ctx) {
+    public void enterRevision_stmts(final Revision_stmtsContext ctx) {
         enterLog("revisions", "", ctx.getStart().getLine());
         for (int i = 0; i < ctx.getChildCount(); ++i) {
             final ParseTree treeNode = ctx.getChild(i);
@@ -264,7 +266,7 @@ public final class YangParserListenerImpl extends YangParserBaseListener {
     }
 
     @Override
-    public void exitRevision_stmts(Revision_stmtsContext ctx) {
+    public void exitRevision_stmts(final Revision_stmtsContext ctx) {
         exitLog("revisions", "");
     }
 
@@ -290,7 +292,7 @@ public final class YangParserListenerImpl extends YangParserBaseListener {
     }
 
     @Override
-    public void enterImport_stmt(Import_stmtContext ctx) {
+    public void enterImport_stmt(final Import_stmtContext ctx) {
         final int line = ctx.getStart().getLine();
         final String importName = stringFromNode(ctx);
         enterLog("import", importName, line);
@@ -317,12 +319,12 @@ public final class YangParserListenerImpl extends YangParserBaseListener {
     }
 
     @Override
-    public void exitImport_stmt(Import_stmtContext ctx) {
+    public void exitImport_stmt(final Import_stmtContext ctx) {
         exitLog("import", "");
     }
 
     @Override
-    public void enterAugment_stmt(YangParser.Augment_stmtContext ctx) {
+    public void enterAugment_stmt(final YangParser.Augment_stmtContext ctx) {
         final int line = ctx.getStart().getLine();
         final String augmentPath = stringFromNode(ctx);
         enterLog(AUGMENT_STR, augmentPath, line);
@@ -347,14 +349,14 @@ public final class YangParserListenerImpl extends YangParserBaseListener {
     }
 
     @Override
-    public void exitAugment_stmt(YangParser.Augment_stmtContext ctx) {
+    public void exitAugment_stmt(final YangParser.Augment_stmtContext ctx) {
         moduleBuilder.exitNode();
         exitLog(AUGMENT_STR, "");
         actualPath.pop();
     }
 
     @Override
-    public void enterExtension_stmt(YangParser.Extension_stmtContext ctx) {
+    public void enterExtension_stmt(final YangParser.Extension_stmtContext ctx) {
         final int line = ctx.getStart().getLine();
         final String extName = stringFromNode(ctx);
         enterLog("extension", extName, line);
@@ -382,13 +384,13 @@ public final class YangParserListenerImpl extends YangParserBaseListener {
     }
 
     @Override
-    public void exitExtension_stmt(YangParser.Extension_stmtContext ctx) {
+    public void exitExtension_stmt(final YangParser.Extension_stmtContext ctx) {
         moduleBuilder.exitNode();
         exitLog("extension", removeNodeFromPath());
     }
 
     @Override
-    public void enterTypedef_stmt(YangParser.Typedef_stmtContext ctx) {
+    public void enterTypedef_stmt(final YangParser.Typedef_stmtContext ctx) {
         final int line = ctx.getStart().getLine();
         final String typedefName = stringFromNode(ctx);
         enterLog("typedef", typedefName, line);
@@ -405,13 +407,13 @@ public final class YangParserListenerImpl extends YangParserBaseListener {
     }
 
     @Override
-    public void exitTypedef_stmt(YangParser.Typedef_stmtContext ctx) {
+    public void exitTypedef_stmt(final YangParser.Typedef_stmtContext ctx) {
         moduleBuilder.exitNode();
         exitLog("typedef", removeNodeFromPath());
     }
 
     @Override
-    public void enterType_stmt(YangParser.Type_stmtContext ctx) {
+    public void enterType_stmt(final YangParser.Type_stmtContext ctx) {
         final int line = ctx.getStart().getLine();
         final String typeName = stringFromNode(ctx);
         enterLog("type", typeName, line);
@@ -471,7 +473,7 @@ public final class YangParserListenerImpl extends YangParserBaseListener {
 
     }
 
-    private QName parseQName(String typeName) {
+    private QName parseQName(final String typeName) {
         QName typeQName;
         if (typeName.contains(":")) {
             String[] splittedName = typeName.split(":");
@@ -489,7 +491,7 @@ public final class YangParserListenerImpl extends YangParserBaseListener {
     }
 
     @Override
-    public void exitType_stmt(YangParser.Type_stmtContext ctx) {
+    public void exitType_stmt(final YangParser.Type_stmtContext ctx) {
         final String typeName = stringFromNode(ctx);
         if ("union".equals(typeName)) {
             moduleBuilder.exitNode();
@@ -498,7 +500,7 @@ public final class YangParserListenerImpl extends YangParserBaseListener {
     }
 
     @Override
-    public void enterGrouping_stmt(YangParser.Grouping_stmtContext ctx) {
+    public void enterGrouping_stmt(final YangParser.Grouping_stmtContext ctx) {
         final int line = ctx.getStart().getLine();
         final String groupName = stringFromNode(ctx);
         enterLog("grouping", groupName, line);
@@ -513,13 +515,13 @@ public final class YangParserListenerImpl extends YangParserBaseListener {
     }
 
     @Override
-    public void exitGrouping_stmt(YangParser.Grouping_stmtContext ctx) {
+    public void exitGrouping_stmt(final YangParser.Grouping_stmtContext ctx) {
         moduleBuilder.exitNode();
         exitLog("grouping", removeNodeFromPath());
     }
 
     @Override
-    public void enterContainer_stmt(Container_stmtContext ctx) {
+    public void enterContainer_stmt(final Container_stmtContext ctx) {
         final int line = ctx.getStart().getLine();
         final String containerName = stringFromNode(ctx);
         enterLog("container", containerName, line);
@@ -545,13 +547,13 @@ public final class YangParserListenerImpl extends YangParserBaseListener {
     }
 
     @Override
-    public void exitContainer_stmt(Container_stmtContext ctx) {
+    public void exitContainer_stmt(final Container_stmtContext ctx) {
         moduleBuilder.exitNode();
         exitLog("container", removeNodeFromPath());
     }
 
     @Override
-    public void enterLeaf_stmt(Leaf_stmtContext ctx) {
+    public void enterLeaf_stmt(final Leaf_stmtContext ctx) {
         final int line = ctx.getStart().getLine();
         final String leafName = stringFromNode(ctx);
         enterLog("leaf", leafName, line);
@@ -582,13 +584,13 @@ public final class YangParserListenerImpl extends YangParserBaseListener {
     }
 
     @Override
-    public void exitLeaf_stmt(YangParser.Leaf_stmtContext ctx) {
+    public void exitLeaf_stmt(final YangParser.Leaf_stmtContext ctx) {
         moduleBuilder.exitNode();
         exitLog("leaf", removeNodeFromPath());
     }
 
     @Override
-    public void enterUses_stmt(YangParser.Uses_stmtContext ctx) {
+    public void enterUses_stmt(final YangParser.Uses_stmtContext ctx) {
         final int line = ctx.getStart().getLine();
         final String groupingPathStr = stringFromNode(ctx);
         enterLog("uses", groupingPathStr, line);
@@ -599,13 +601,13 @@ public final class YangParserListenerImpl extends YangParserBaseListener {
     }
 
     @Override
-    public void exitUses_stmt(YangParser.Uses_stmtContext ctx) {
+    public void exitUses_stmt(final YangParser.Uses_stmtContext ctx) {
         moduleBuilder.exitNode();
         exitLog("uses", "");
     }
 
     @Override
-    public void enterUses_augment_stmt(YangParser.Uses_augment_stmtContext ctx) {
+    public void enterUses_augment_stmt(final YangParser.Uses_augment_stmtContext ctx) {
         actualPath.push(new Stack<QName>());
         final int line = ctx.getStart().getLine();
         final String augmentPath = stringFromNode(ctx);
@@ -630,30 +632,30 @@ public final class YangParserListenerImpl extends YangParserBaseListener {
     }
 
     @Override
-    public void exitUses_augment_stmt(YangParser.Uses_augment_stmtContext ctx) {
+    public void exitUses_augment_stmt(final YangParser.Uses_augment_stmtContext ctx) {
         moduleBuilder.exitNode();
         exitLog(AUGMENT_STR, "");
         actualPath.pop();
     }
 
     @Override
-    public void enterRefine_stmt(YangParser.Refine_stmtContext ctx) {
+    public void enterRefine_stmt(final YangParser.Refine_stmtContext ctx) {
         final String refineString = stringFromNode(ctx);
         enterLog("refine", refineString, ctx.getStart().getLine());
 
-        RefineHolder refine = parseRefine(ctx, moduleName);
+        RefineHolderImpl refine = parseRefine(ctx, moduleName);
         moduleBuilder.addRefine(refine);
         moduleBuilder.enterNode(refine);
     }
 
     @Override
-    public void exitRefine_stmt(YangParser.Refine_stmtContext ctx) {
+    public void exitRefine_stmt(final YangParser.Refine_stmtContext ctx) {
         moduleBuilder.exitNode();
         exitLog("refine", "");
     }
 
     @Override
-    public void enterLeaf_list_stmt(Leaf_list_stmtContext ctx) {
+    public void enterLeaf_list_stmt(final Leaf_list_stmtContext ctx) {
         final int line = ctx.getStart().getLine();
         final String leafListName = stringFromNode(ctx);
         enterLog("leaf-list", leafListName, line);
@@ -680,13 +682,13 @@ public final class YangParserListenerImpl extends YangParserBaseListener {
     }
 
     @Override
-    public void exitLeaf_list_stmt(YangParser.Leaf_list_stmtContext ctx) {
+    public void exitLeaf_list_stmt(final YangParser.Leaf_list_stmtContext ctx) {
         moduleBuilder.exitNode();
         exitLog("leaf-list", removeNodeFromPath());
     }
 
     @Override
-    public void enterList_stmt(List_stmtContext ctx) {
+    public void enterList_stmt(final List_stmtContext ctx) {
         final int line = ctx.getStart().getLine();
         final String listName = stringFromNode(ctx);
         enterLog("list", listName, line);
@@ -716,13 +718,13 @@ public final class YangParserListenerImpl extends YangParserBaseListener {
     }
 
     @Override
-    public void exitList_stmt(List_stmtContext ctx) {
+    public void exitList_stmt(final List_stmtContext ctx) {
         moduleBuilder.exitNode();
         exitLog("list", removeNodeFromPath());
     }
 
     @Override
-    public void enterAnyxml_stmt(YangParser.Anyxml_stmtContext ctx) {
+    public void enterAnyxml_stmt(final YangParser.Anyxml_stmtContext ctx) {
         final int line = ctx.getStart().getLine();
         final String anyXmlName = stringFromNode(ctx);
         enterLog("anyxml", anyXmlName, line);
@@ -740,13 +742,13 @@ public final class YangParserListenerImpl extends YangParserBaseListener {
     }
 
     @Override
-    public void exitAnyxml_stmt(YangParser.Anyxml_stmtContext ctx) {
+    public void exitAnyxml_stmt(final YangParser.Anyxml_stmtContext ctx) {
         moduleBuilder.exitNode();
         exitLog("anyxml", removeNodeFromPath());
     }
 
     @Override
-    public void enterChoice_stmt(YangParser.Choice_stmtContext ctx) {
+    public void enterChoice_stmt(final YangParser.Choice_stmtContext ctx) {
         final int line = ctx.getStart().getLine();
         final String choiceName = stringFromNode(ctx);
         enterLog("choice", choiceName, line);
@@ -774,13 +776,13 @@ public final class YangParserListenerImpl extends YangParserBaseListener {
     }
 
     @Override
-    public void exitChoice_stmt(YangParser.Choice_stmtContext ctx) {
+    public void exitChoice_stmt(final YangParser.Choice_stmtContext ctx) {
         moduleBuilder.exitNode();
         exitLog("choice", removeNodeFromPath());
     }
 
     @Override
-    public void enterCase_stmt(YangParser.Case_stmtContext ctx) {
+    public void enterCase_stmt(final YangParser.Case_stmtContext ctx) {
         final int line = ctx.getStart().getLine();
         final String caseName = stringFromNode(ctx);
         enterLog("case", caseName, line);
@@ -797,13 +799,13 @@ public final class YangParserListenerImpl extends YangParserBaseListener {
     }
 
     @Override
-    public void exitCase_stmt(YangParser.Case_stmtContext ctx) {
+    public void exitCase_stmt(final YangParser.Case_stmtContext ctx) {
         moduleBuilder.exitNode();
         exitLog("case", removeNodeFromPath());
     }
 
     @Override
-    public void enterNotification_stmt(YangParser.Notification_stmtContext ctx) {
+    public void enterNotification_stmt(final YangParser.Notification_stmtContext ctx) {
         final int line = ctx.getStart().getLine();
         final String notificationName = stringFromNode(ctx);
         enterLog("notification", notificationName, line);
@@ -819,52 +821,52 @@ public final class YangParserListenerImpl extends YangParserBaseListener {
     }
 
     @Override
-    public void exitNotification_stmt(YangParser.Notification_stmtContext ctx) {
+    public void exitNotification_stmt(final YangParser.Notification_stmtContext ctx) {
         moduleBuilder.exitNode();
         exitLog("notification", removeNodeFromPath());
     }
 
     // Unknown nodes
     @Override
-    public void enterIdentifier_stmt(YangParser.Identifier_stmtContext ctx) {
+    public void enterIdentifier_stmt(final YangParser.Identifier_stmtContext ctx) {
         handleUnknownNode(ctx.getStart().getLine(), ctx);
     }
 
     @Override
-    public void exitIdentifier_stmt(YangParser.Identifier_stmtContext ctx) {
+    public void exitIdentifier_stmt(final YangParser.Identifier_stmtContext ctx) {
         moduleBuilder.exitNode();
         exitLog("unknown-node", removeNodeFromPath());
     }
 
-    @Override public void enterUnknown_statement(YangParser.Unknown_statementContext ctx) {
+    @Override public void enterUnknown_statement(final YangParser.Unknown_statementContext ctx) {
         handleUnknownNode(ctx.getStart().getLine(), ctx);
     }
 
-    @Override public void exitUnknown_statement(YangParser.Unknown_statementContext ctx) {
+    @Override public void exitUnknown_statement(final YangParser.Unknown_statementContext ctx) {
         moduleBuilder.exitNode();
         exitLog("unknown-node", removeNodeFromPath());
     }
 
-    @Override public void enterUnknown_statement2(YangParser.Unknown_statement2Context ctx) {
+    @Override public void enterUnknown_statement2(final YangParser.Unknown_statement2Context ctx) {
         handleUnknownNode(ctx.getStart().getLine(), ctx);
     }
 
-    @Override public void exitUnknown_statement2(YangParser.Unknown_statement2Context ctx) {
+    @Override public void exitUnknown_statement2(final YangParser.Unknown_statement2Context ctx) {
         moduleBuilder.exitNode();
         exitLog("unknown-node", removeNodeFromPath());
     }
 
-    @Override public void enterUnknown_statement3(YangParser.Unknown_statement3Context ctx) {
+    @Override public void enterUnknown_statement3(final YangParser.Unknown_statement3Context ctx) {
         handleUnknownNode(ctx.getStart().getLine(), ctx);
     }
 
-    @Override public void exitUnknown_statement3(YangParser.Unknown_statement3Context ctx) {
+    @Override public void exitUnknown_statement3(final YangParser.Unknown_statement3Context ctx) {
         moduleBuilder.exitNode();
         exitLog("unknown-node", removeNodeFromPath());
     }
 
     @Override
-    public void enterRpc_stmt(YangParser.Rpc_stmtContext ctx) {
+    public void enterRpc_stmt(final YangParser.Rpc_stmtContext ctx) {
         final int line = ctx.getStart().getLine();
         final String rpcName = stringFromNode(ctx);
         enterLog("rpc", rpcName, line);
@@ -881,13 +883,13 @@ public final class YangParserListenerImpl extends YangParserBaseListener {
     }
 
     @Override
-    public void exitRpc_stmt(YangParser.Rpc_stmtContext ctx) {
+    public void exitRpc_stmt(final YangParser.Rpc_stmtContext ctx) {
         moduleBuilder.exitNode();
         exitLog("rpc", removeNodeFromPath());
     }
 
     @Override
-    public void enterInput_stmt(YangParser.Input_stmtContext ctx) {
+    public void enterInput_stmt(final YangParser.Input_stmtContext ctx) {
         final int line = ctx.getStart().getLine();
         final String input = "input";
         enterLog(input, input, line);
@@ -905,13 +907,13 @@ public final class YangParserListenerImpl extends YangParserBaseListener {
     }
 
     @Override
-    public void exitInput_stmt(YangParser.Input_stmtContext ctx) {
+    public void exitInput_stmt(final YangParser.Input_stmtContext ctx) {
         moduleBuilder.exitNode();
         exitLog("input", removeNodeFromPath());
     }
 
     @Override
-    public void enterOutput_stmt(YangParser.Output_stmtContext ctx) {
+    public void enterOutput_stmt(final YangParser.Output_stmtContext ctx) {
         final int line = ctx.getStart().getLine();
         final String output = "output";
         enterLog(output, output, line);
@@ -929,13 +931,13 @@ public final class YangParserListenerImpl extends YangParserBaseListener {
     }
 
     @Override
-    public void exitOutput_stmt(YangParser.Output_stmtContext ctx) {
+    public void exitOutput_stmt(final YangParser.Output_stmtContext ctx) {
         moduleBuilder.exitNode();
         exitLog("output", removeNodeFromPath());
     }
 
     @Override
-    public void enterFeature_stmt(YangParser.Feature_stmtContext ctx) {
+    public void enterFeature_stmt(final YangParser.Feature_stmtContext ctx) {
         final int line = ctx.getStart().getLine();
         final String featureName = stringFromNode(ctx);
         enterLog("feature", featureName, line);
@@ -951,13 +953,13 @@ public final class YangParserListenerImpl extends YangParserBaseListener {
     }
 
     @Override
-    public void exitFeature_stmt(YangParser.Feature_stmtContext ctx) {
+    public void exitFeature_stmt(final YangParser.Feature_stmtContext ctx) {
         moduleBuilder.exitNode();
         exitLog("feature", removeNodeFromPath());
     }
 
     @Override
-    public void enterDeviation_stmt(YangParser.Deviation_stmtContext ctx) {
+    public void enterDeviation_stmt(final YangParser.Deviation_stmtContext ctx) {
         final int line = ctx.getStart().getLine();
         final String targetPath = stringFromNode(ctx);
         enterLog("deviation", targetPath, line);
@@ -986,13 +988,13 @@ public final class YangParserListenerImpl extends YangParserBaseListener {
     }
 
     @Override
-    public void exitDeviation_stmt(YangParser.Deviation_stmtContext ctx) {
+    public void exitDeviation_stmt(final YangParser.Deviation_stmtContext ctx) {
         moduleBuilder.exitNode();
         exitLog("deviation", "");
     }
 
     @Override
-    public void enterIdentity_stmt(YangParser.Identity_stmtContext ctx) {
+    public void enterIdentity_stmt(final YangParser.Identity_stmtContext ctx) {
         final int line = ctx.getStart().getLine();
         final String identityName = stringFromNode(ctx);
         enterLog("identity", identityName, line);
@@ -1017,7 +1019,7 @@ public final class YangParserListenerImpl extends YangParserBaseListener {
     }
 
     @Override
-    public void exitIdentity_stmt(YangParser.Identity_stmtContext ctx) {
+    public void exitIdentity_stmt(final YangParser.Identity_stmtContext ctx) {
         moduleBuilder.exitNode();
         exitLog("identity", removeNodeFromPath());
     }
@@ -1026,19 +1028,19 @@ public final class YangParserListenerImpl extends YangParserBaseListener {
         return moduleBuilder;
     }
 
-    private void enterLog(String p1, String p2, int line) {
+    private void enterLog(final String p1, final String p2, final int line) {
         LOGGER.trace("entering {} {} ({})", p1, p2, line);
     }
 
-    private void exitLog(String p1, String p2) {
+    private void exitLog(final String p1, final String p2) {
         LOGGER.trace("exiting {} {}", p1, p2);
     }
 
-    private void exitLog(String p1, QName p2) {
+    private void exitLog(final String p1, final QName p2) {
         LOGGER.trace("exiting {} {}", p1, p2.getLocalName());
     }
 
-    private void setLog(String p1, String p2) {
+    private void setLog(final String p1, final String p2) {
         LOGGER.trace("setting {} {}", p1, p2);
     }
 
@@ -1074,7 +1076,7 @@ public final class YangParserListenerImpl extends YangParserBaseListener {
         addNodeToPath(qname);
         SchemaPath path = createActualSchemaPath(actualPath.peek());
 
-        UnknownSchemaNodeBuilder builder = moduleBuilder.addUnknownSchemaNode(line, qname, path);
+        UnknownSchemaNodeBuilderImpl builder = moduleBuilder.addUnknownSchemaNode(line, qname, path);
         builder.setNodeType(nodeType);
         builder.setNodeParameter(nodeParameter);
 
index bbc49453bdd45cae6b4659fa73b49d73fa88ce03..4360db1da668dd540784e776c8d3d48ece942f14 100644 (file)
@@ -6,8 +6,8 @@
  */
 package org.opendaylight.yangtools.yang.parser.impl.util;
 
-import static org.opendaylight.yangtools.yang.parser.util.ParserListenerUtils.getArgumentString;
-import static org.opendaylight.yangtools.yang.parser.util.ParserListenerUtils.getFirstContext;
+import static org.opendaylight.yangtools.yang.parser.impl.ParserListenerUtils.getArgumentString;
+import static org.opendaylight.yangtools.yang.parser.impl.ParserListenerUtils.getFirstContext;
 
 import java.io.InputStream;
 import java.util.Date;
index 3db3065d55e1adc2c3e0392cb72892ff09f3883b..d304ca05da8ab1d8a36ac5c6e9c31e2e46f2ba61 100644 (file)
@@ -1,17 +1,11 @@
 /*
- * Copyright (c) 2013 Cisco Systems, Inc. and others.  All rights reserved.
- *
+ * Copyright (c) 2013 Cisco Systems, Inc. and others. All rights reserved.
  * This program and the accompanying materials are made available under the
  * terms of the Eclipse Public License v1.0 which accompanies this distribution,
  * and is available at http://www.eclipse.org/legal/epl-v10.html
  */
 package org.opendaylight.yangtools.yang.parser.util;
 
-import com.google.common.annotations.VisibleForTesting;
-import com.google.common.base.Function;
-import com.google.common.collect.Lists;
-import com.google.common.collect.Maps;
-import com.google.common.collect.Sets;
 import java.net.URI;
 import java.util.ArrayList;
 import java.util.Arrays;
@@ -28,11 +22,16 @@ import org.opendaylight.yangtools.yang.model.api.Module;
 import org.opendaylight.yangtools.yang.model.api.ModuleImport;
 import org.opendaylight.yangtools.yang.model.api.SchemaContext;
 import org.opendaylight.yangtools.yang.parser.builder.impl.ModuleBuilder;
-import org.opendaylight.yangtools.yang.parser.util.TopologicalSort.Node;
 import org.opendaylight.yangtools.yang.parser.util.TopologicalSort.NodeImpl;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
 
+import com.google.common.annotations.VisibleForTesting;
+import com.google.common.base.Function;
+import com.google.common.collect.Lists;
+import com.google.common.collect.Maps;
+import com.google.common.collect.Sets;
+
 /**
  * Creates a module dependency graph from provided {@link ModuleBuilder}s and
  * provides a {@link #sort(ModuleBuilder...)} method. It is topological sort and
@@ -53,9 +52,9 @@ public final class ModuleDependencySort {
     /**
      * Extracts {@link ModuleBuilder} from a {@link ModuleNodeImpl}.
      */
-    private static final Function<Node, ModuleBuilder> NODE_TO_MODULEBUILDER = new Function<Node, ModuleBuilder>() {
+    private static final Function<TopologicalSort.Node, ModuleBuilder> NODE_TO_MODULEBUILDER = new Function<TopologicalSort.Node, ModuleBuilder>() {
         @Override
-        public ModuleBuilder apply(final Node input) {
+        public ModuleBuilder apply(final TopologicalSort.Node input) {
             // Cast to ModuleBuilder from Node and return
             return (ModuleBuilder) ((ModuleNodeImpl) input).getReference();
         }
@@ -68,14 +67,12 @@ public final class ModuleDependencySort {
      *         in returned order.
      */
     public static List<ModuleBuilder> sort(final ModuleBuilder... builders) {
-        List<Node> sorted = sortInternal(Arrays.asList(builders));
-        return Lists.transform(sorted, NODE_TO_MODULEBUILDER);
+        return sort(Arrays.asList(builders));
     }
 
     public static List<ModuleBuilder> sort(final Collection<ModuleBuilder> builders) {
-        ModuleBuilder[] array = new ModuleBuilder[builders.size()];
-        builders.toArray(array);
-        return sort(array);
+        List<TopologicalSort.Node> sorted = sortInternal(builders);
+        return Lists.transform(sorted, NODE_TO_MODULEBUILDER);
     }
 
     public static List<ModuleBuilder> sortWithContext(final SchemaContext context, final ModuleBuilder... builders) {
@@ -83,12 +80,12 @@ public final class ModuleDependencySort {
         Collections.addAll(modules, builders);
         modules.addAll(context.getModules());
 
-        List<Node> sorted = sortInternal(modules);
+        List<TopologicalSort.Node> sorted = sortInternal(modules);
         // Cast to ModuleBuilder from Node if possible and return
-        return Lists.transform(sorted, new Function<Node, ModuleBuilder>() {
+        return Lists.transform(sorted, new Function<TopologicalSort.Node, ModuleBuilder>() {
 
             @Override
-            public ModuleBuilder apply(final Node input) {
+            public ModuleBuilder apply(final TopologicalSort.Node input) {
                 if (((ModuleNodeImpl) input).getReference() instanceof ModuleBuilder) {
                     return (ModuleBuilder) ((ModuleNodeImpl) input).getReference();
                 } else {
@@ -105,21 +102,21 @@ public final class ModuleDependencySort {
      *         returned order.
      */
     public static List<Module> sort(final Module... modules) {
-        List<Node> sorted = sortInternal(Arrays.asList(modules));
+        List<TopologicalSort.Node> sorted = sortInternal(Arrays.asList(modules));
         // Cast to Module from Node and return
-        return Lists.transform(sorted, new Function<Node, Module>() {
+        return Lists.transform(sorted, new Function<TopologicalSort.Node, Module>() {
 
             @Override
-            public Module apply(final Node input) {
+            public Module apply(final TopologicalSort.Node input) {
                 return (Module) ((ModuleNodeImpl) input).getReference();
             }
         });
     }
 
-    private static List<Node> sortInternal(final List<?> modules) {
+    private static List<TopologicalSort.Node> sortInternal(final Iterable<?> modules) {
         Map<String, Map<Date, ModuleNodeImpl>> moduleGraph = createModuleGraph(modules);
 
-        Set<Node> nodes = Sets.newHashSet();
+        Set<TopologicalSort.Node> nodes = Sets.newHashSet();
         for (Map<Date, ModuleNodeImpl> map : moduleGraph.values()) {
             for (ModuleNodeImpl node : map.values()) {
                 nodes.add(node);
@@ -130,7 +127,7 @@ public final class ModuleDependencySort {
     }
 
     @VisibleForTesting
-    static Map<String, Map<Date, ModuleNodeImpl>> createModuleGraph(final List<?> builders) {
+    static Map<String, Map<Date, ModuleNodeImpl>> createModuleGraph(final Iterable<?> builders) {
         Map<String, Map<Date, ModuleNodeImpl>> moduleGraph = Maps.newHashMap();
 
         processModules(moduleGraph, builders);
@@ -142,7 +139,8 @@ public final class ModuleDependencySort {
     /**
      * Extract module:revision from module builders
      */
-    private static void processDependencies(final Map<String, Map<Date, ModuleNodeImpl>> moduleGraph, final List<?> builders) {
+    private static void processDependencies(final Map<String, Map<Date, ModuleNodeImpl>> moduleGraph,
+            final Iterable<?> builders) {
         Map<URI, Object> allNS = new HashMap<>();
 
         // Create edges in graph
@@ -158,12 +156,12 @@ public final class ModuleDependencySort {
                 fromName = ((Module) mb).getName();
                 fromRevision = ((Module) mb).getRevision();
                 imports = ((Module) mb).getImports();
-                ns = ((Module)mb).getNamespace();
+                ns = ((Module) mb).getNamespace();
             } else if (mb instanceof ModuleBuilder) {
                 fromName = ((ModuleBuilder) mb).getName();
                 fromRevision = ((ModuleBuilder) mb).getRevision();
                 imports = ((ModuleBuilder) mb).getModuleImports();
-                ns = ((ModuleBuilder)mb).getNamespace();
+                ns = ((ModuleBuilder) mb).getNamespace();
             }
 
             // check for existence of module with same namespace
@@ -257,7 +255,8 @@ public final class ModuleDependencySort {
      * Extract dependencies from module builders or modules to fill dependency
      * graph
      */
-    private static void processModules(final Map<String, Map<Date, ModuleNodeImpl>> moduleGraph, final List<?> builders) {
+    private static void processModules(final Map<String, Map<Date, ModuleNodeImpl>> moduleGraph,
+            final Iterable<?> builders) {
 
         // Process nodes
         for (Object mb : builders) {
index 30799bd479f0347a7ee254542195febde073d42f..fca683d246cccc6423eef33f726553e04e19b31e 100644 (file)
@@ -17,20 +17,20 @@ public final class NodeWrappedType extends NodeImpl {
 
     /**
      * Create new instance of class <code>NodeWrappedType</code>.
-     * 
+     *
      * @param wrappedType
      *            object with payload data
      */
-    NodeWrappedType(Object wrappedType) {
+    public NodeWrappedType(Object wrappedType) {
         this.wrappedType = wrappedType;
     }
 
     /**
      * Gets payload from class
-     * 
+     *
      * @return object with <code>wrappedType</code>
      */
-    Object getWrappedType() {
+    public Object getWrappedType() {
         return wrappedType;
     }
 
index 9b580a9b56e92594ce30738e0e1552f18039446b..5e3538646cd0ef548aaae9dc753e1675bfbd18c1 100644 (file)
@@ -10,11 +10,13 @@ package org.opendaylight.yangtools.yang.parser.util;
 /**
  * Marker object representing special 'min' or 'max' values in YANG.
  */
-final class UnknownBoundaryNumber extends Number {
+public final class UnknownBoundaryNumber extends Number {
     private static final long serialVersionUID = 1464861684686434869L;
 
     private final String value;
 
+    @Deprecated
+    public
     UnknownBoundaryNumber(final String value) {
         this.value = value;
     }
index ae6a9ea12717504750e0b080aa83b8366917c866..c0a5ef490c2fcfb987510b8f99d4b4542f82b4ac 100644 (file)
@@ -9,7 +9,6 @@ package org.opendaylight.yangtools.yang.parser.impl;
 
 import static org.junit.Assert.assertEquals;
 
-import com.google.common.io.ByteSource;
 import java.io.File;
 import java.io.FileNotFoundException;
 import java.io.IOException;
@@ -24,6 +23,7 @@ import java.util.Collections;
 import java.util.Date;
 import java.util.List;
 import java.util.Set;
+
 import org.opendaylight.yangtools.yang.common.QName;
 import org.opendaylight.yangtools.yang.model.api.ChoiceCaseNode;
 import org.opendaylight.yangtools.yang.model.api.ChoiceNode;
@@ -37,8 +37,10 @@ import org.opendaylight.yangtools.yang.model.api.SchemaPath;
 import org.opendaylight.yangtools.yang.model.api.TypeDefinition;
 import org.opendaylight.yangtools.yang.model.parser.api.YangContextParser;
 import org.opendaylight.yangtools.yang.model.parser.api.YangSyntaxErrorException;
+import org.opendaylight.yangtools.yang.parser.builder.impl.BuilderUtils;
 import org.opendaylight.yangtools.yang.parser.util.NamedByteArrayInputStream;
-import org.opendaylight.yangtools.yang.parser.util.ParserUtils;
+
+import com.google.common.io.ByteSource;
 
 final class TestUtils {
 
@@ -62,7 +64,7 @@ final class TestUtils {
     }
 
     public static Set<Module> loadModules(final List<InputStream> input) throws IOException, YangSyntaxErrorException {
-        Collection<ByteSource> sources = ParserUtils.streamsToByteSources(input);
+        Collection<ByteSource> sources = BuilderUtils.streamsToByteSources(input);
         final YangContextParser parser = new YangParserImpl();
         SchemaContext ctx = parser.parseSources(sources);
         return ctx.getModules();
@@ -106,7 +108,7 @@ final class TestUtils {
 
     public static Set<Module> loadModulesWithContext(final Collection<InputStream> input, final SchemaContext context)
             throws IOException, YangSyntaxErrorException {
-        Collection<ByteSource> sources = ParserUtils.streamsToByteSources(input);
+        Collection<ByteSource> sources = BuilderUtils.streamsToByteSources(input);
         final YangContextParser parser = new YangParserImpl();
         SchemaContext ctx = parser.parseSources(sources, context);
         final Set<Module> modules = ctx.getModules();
similarity index 96%
rename from yang/yang-parser-impl/src/test/java/org/opendaylight/yangtools/yang/validator/YangModelValidationListTest.java
rename to yang/yang-parser-impl/src/test/java/org/opendaylight/yangtools/yang/parser/impl/YangModelValidationListTest.java
index 88be5d8b0b68487391f8817a88addfe0bb0118a7..4013b2c17e7d7b6cc00d8fcf71e306f3c330c1a7 100644 (file)
@@ -5,7 +5,7 @@
  * terms of the Eclipse Public License v1.0 which accompanies this distribution,
  * and is available at http://www.eclipse.org/legal/epl-v10.html
  */
-package org.opendaylight.yangtools.yang.validator;
+package org.opendaylight.yangtools.yang.parser.impl;
 
 import static org.junit.Assert.assertThat;
 import static org.junit.matchers.JUnitMatchers.containsString;
@@ -20,6 +20,7 @@ import org.opendaylight.yangtools.antlrv4.code.gen.YangParser.Mandatory_stmtCont
 import org.opendaylight.yangtools.antlrv4.code.gen.YangParser.Ordered_by_argContext;
 import org.opendaylight.yangtools.antlrv4.code.gen.YangParser.Type_stmtContext;
 import org.opendaylight.yangtools.antlrv4.code.gen.YangParser.Unique_stmtContext;
+import org.opendaylight.yangtools.yang.parser.impl.YangModelBasicValidationListener;
 import org.opendaylight.yangtools.yang.parser.util.YangValidationException;
 
 public class YangModelValidationListTest {
@@ -5,7 +5,7 @@
  * terms of the Eclipse Public License v1.0 which accompanies this distribution,
  * and is available at http://www.eclipse.org/legal/epl-v10.html
  */
-package org.opendaylight.yangtools.yang.validator;
+package org.opendaylight.yangtools.yang.parser.impl;
 
 import static org.junit.Assert.assertThat;
 import static org.junit.matchers.JUnitMatchers.containsString;
@@ -19,6 +19,8 @@ import org.opendaylight.yangtools.antlrv4.code.gen.YangParser.Namespace_stmtCont
 import org.opendaylight.yangtools.antlrv4.code.gen.YangParser.Revision_stmtContext;
 import org.opendaylight.yangtools.antlrv4.code.gen.YangParser.Revision_stmtsContext;
 import org.opendaylight.yangtools.antlrv4.code.gen.YangParser.Yang_version_stmtContext;
+import org.opendaylight.yangtools.yang.parser.impl.BasicValidations;
+import org.opendaylight.yangtools.yang.parser.impl.YangModelBasicValidationListener;
 import org.opendaylight.yangtools.yang.parser.util.YangValidationException;
 
 public class YangModelValidationModuleTest {
@@ -5,7 +5,7 @@
  * terms of the Eclipse Public License v1.0 which accompanies this distribution,
  * and is available at http://www.eclipse.org/legal/epl-v10.html
  */
-package org.opendaylight.yangtools.yang.validator;
+package org.opendaylight.yangtools.yang.parser.impl;
 
 import static org.junit.Assert.assertThat;
 import static org.junit.matchers.JUnitMatchers.containsString;
@@ -17,6 +17,7 @@ import org.junit.Test;
 import org.opendaylight.yangtools.antlrv4.code.gen.YangParser.Belongs_to_stmtContext;
 import org.opendaylight.yangtools.antlrv4.code.gen.YangParser.Submodule_header_stmtsContext;
 import org.opendaylight.yangtools.antlrv4.code.gen.YangParser.Submodule_stmtContext;
+import org.opendaylight.yangtools.yang.parser.impl.YangModelBasicValidationListener;
 import org.opendaylight.yangtools.yang.parser.util.YangValidationException;
 
 public class YangModelValidationSubModuleTest {
similarity index 97%
rename from yang/yang-parser-impl/src/test/java/org/opendaylight/yangtools/yang/validator/YangModelValidationTest.java
rename to yang/yang-parser-impl/src/test/java/org/opendaylight/yangtools/yang/parser/impl/YangModelValidationTest.java
index 56f4704f19b8e8b213130acf2f3d6b3a6ffa8d83..96779ab32a14289a00fc4889841ee788d73e14c6 100644 (file)
@@ -5,7 +5,7 @@
  * terms of the Eclipse Public License v1.0 which accompanies this distribution,
  * and is available at http://www.eclipse.org/legal/epl-v10.html
  */
-package org.opendaylight.yangtools.yang.validator;
+package org.opendaylight.yangtools.yang.parser.impl;
 
 import static org.hamcrest.core.Is.is;
 import static org.junit.Assert.assertThat;
@@ -37,6 +37,9 @@ import org.opendaylight.yangtools.antlrv4.code.gen.YangParser.Prefix_stmtContext
 import org.opendaylight.yangtools.antlrv4.code.gen.YangParser.Revision_date_stmtContext;
 import org.opendaylight.yangtools.antlrv4.code.gen.YangParser.Status_argContext;
 import org.opendaylight.yangtools.antlrv4.code.gen.YangParser.StringContext;
+import org.opendaylight.yangtools.yang.parser.impl.BasicValidations;
+import org.opendaylight.yangtools.yang.parser.impl.ValidationUtil;
+import org.opendaylight.yangtools.yang.parser.impl.YangModelBasicValidationListener;
 import org.opendaylight.yangtools.yang.parser.util.YangValidationException;
 
 import com.google.common.collect.Sets;
index 29a4c28b013c981c6f67ff917b20066179b39d7c..ab26254433c5f249f51188c29da291e5671d1581 100644 (file)
@@ -31,6 +31,7 @@ import java.util.LinkedHashSet;
 import java.util.List;
 import java.util.Map;
 import java.util.Set;
+
 import org.junit.Before;
 import org.junit.Test;
 import org.opendaylight.yangtools.yang.common.QName;
@@ -68,7 +69,7 @@ import org.opendaylight.yangtools.yang.model.util.Int32;
 import org.opendaylight.yangtools.yang.model.util.StringType;
 import org.opendaylight.yangtools.yang.model.util.Uint32;
 import org.opendaylight.yangtools.yang.model.util.UnionType;
-import org.opendaylight.yangtools.yang.parser.util.ParserUtils;
+import org.opendaylight.yangtools.yang.parser.builder.impl.BuilderUtils;
 
 public class YangParserTest {
     public static final String FS = File.separator;
@@ -885,7 +886,7 @@ public class YangParserTest {
         for (File f : testFiles) {
             streams.add(new FileInputStream(f));
         }
-        newModules = parser.parseSources(ParserUtils.filesToByteSources(testFiles)).getModules();
+        newModules = parser.parseSources(BuilderUtils.filesToByteSources(testFiles)).getModules();
         assertSetEquals(newModules, modules);
         ctx = new SchemaContextImpl(newModules, Collections.<ModuleIdentifier, String>emptyMap());
         assertSetEquals(newModules, ctx.getModules());
@@ -894,7 +895,7 @@ public class YangParserTest {
         for (File f : testFiles) {
             streams.add(new FileInputStream(f));
         }
-        newModules = parser.parseSources(ParserUtils.filesToByteSources(testFiles), null).getModules();
+        newModules = parser.parseSources(BuilderUtils.filesToByteSources(testFiles), null).getModules();
         assertSetEquals(newModules, modules);
         ctx = new SchemaContextImpl(newModules, Collections.<ModuleIdentifier, String>emptyMap());
         assertSetEquals(newModules, ctx.getModules());
index 106580ad19bb3f9432987594e3b67580012104f0..fc1c302269cf7cc658be3fc0717a673e9384720e 100644 (file)
@@ -35,10 +35,10 @@ import com.google.common.collect.Sets;
 
 public class ModuleDependencySortTest {
     private final DateFormat SIMPLE_DATE_FORMAT = new SimpleDateFormat("yyyy-MM-dd");
-    private ModuleBuilder a = mockModuleBuilder("a", null);
-    private ModuleBuilder b = mockModuleBuilder("b", null);
-    private ModuleBuilder c = mockModuleBuilder("c", null);
-    private ModuleBuilder d = mockModuleBuilder("d", null);
+    private final ModuleBuilder a = mockModuleBuilder("a", null);
+    private final ModuleBuilder b = mockModuleBuilder("b", null);
+    private final ModuleBuilder c = mockModuleBuilder("c", null);
+    private final ModuleBuilder d = mockModuleBuilder("d", null);
 
     @Test
     public void testValid() throws Exception {
@@ -142,7 +142,7 @@ public class ModuleDependencySortTest {
         }
     }
 
-    private void assertDependencyGraph(Map<String, Map<Date, ModuleNodeImpl>> moduleGraph) {
+    private void assertDependencyGraph(final Map<String, Map<Date, ModuleNodeImpl>> moduleGraph) {
         for (Entry<String, Map<Date, ModuleNodeImpl>> node : moduleGraph.entrySet()) {
             String name = node.getKey();
 
@@ -161,26 +161,26 @@ public class ModuleDependencySortTest {
         }
     }
 
-    private void assertEdgeCount(Set<Edge> inEdges, int i, Set<Edge> outEdges, int j) {
+    private void assertEdgeCount(final Set<Edge> inEdges, final int i, final Set<Edge> outEdges, final int j) {
         assertThat(inEdges.size(), is(i));
         assertThat(outEdges.size(), is(j));
     }
 
-    private void mockDependency(ModuleBuilder a, ModuleBuilder b) {
+    private void mockDependency(final ModuleBuilder a, final ModuleBuilder b) {
         ModuleImport imprt = mock(ModuleImport.class);
         doReturn(b.getName()).when(imprt).getModuleName();
         doReturn(b.getRevision()).when(imprt).getRevision();
         a.getModuleImports().add(imprt);
     }
 
-    private void mockDependency(Module a, Module b) {
+    private void mockDependency(final Module a, final Module b) {
         ModuleImport imprt = mock(ModuleImport.class);
         doReturn(b.getName()).when(imprt).getModuleName();
         doReturn(b.getRevision()).when(imprt).getRevision();
         a.getImports().add(imprt);
     }
 
-    private ModuleBuilder mockModuleBuilder(String name, Date rev) {
+    private ModuleBuilder mockModuleBuilder(final String name, final Date rev) {
         ModuleBuilder a = mock(ModuleBuilder.class);
         doReturn(name).when(a).getName();
         Set<ModuleImport> set = Sets.newHashSet();
@@ -191,7 +191,7 @@ public class ModuleDependencySortTest {
         return a;
     }
 
-    private Module mockModule(String name, Date rev) {
+    private Module mockModule(final String name, final Date rev) {
         Module a = mock(Module.class);
         doReturn(name).when(a).getName();
         Set<ModuleImport> set = Sets.newHashSet();
diff --git a/yang/yang-parser-impl/src/test/java/org/opendaylight/yangtools/yang/parser/util/MustDefinitionImplTest.java b/yang/yang-parser-impl/src/test/java/org/opendaylight/yangtools/yang/parser/util/MustDefinitionImplTest.java
deleted file mode 100644 (file)
index 1fef57c..0000000
+++ /dev/null
@@ -1,63 +0,0 @@
-/*
- * Copyright (c) 2014 Cisco Systems, Inc. and others.  All rights reserved.
- *
- * This program and the accompanying materials are made available under the
- * terms of the Eclipse Public License v1.0 which accompanies this distribution,
- * and is available at http://www.eclipse.org/legal/epl-v10.html
- */
-package org.opendaylight.yangtools.yang.parser.util;
-
-import static org.junit.Assert.assertEquals;
-import static org.junit.Assert.assertFalse;
-
-import org.junit.Test;
-
-public class MustDefinitionImplTest {
-
-    @Test
-    public void test() {
-        MustDefinitionImpl mdiA;
-        MustDefinitionImpl mdiB;
-        mdiA = new MustDefinitionImpl("mustStrA", "descriptionA", "referenceA", "errorAppTagA", "errorMessageA");
-
-        assertEquals("mdiA should equals to itsefl", mdiA, mdiA);
-        assertFalse("mdiA shouldn't equal to null", mdiA.equals(null));
-        assertFalse("mdiA shouldn't equal to object of other type", mdiA.equals(new String("str")));
-
-        // test of equals method
-
-        // //confirmation of equality
-        mdiA = new MustDefinitionImpl("mustStr", "description", "reference", "errorAppTag", "errorMessage");
-        mdiB = new MustDefinitionImpl("mustStr", "description", "reference", "errorAppTag", "errorMessage");
-        assertEquals("mdiA should equal to mdiB", mdiA, mdiB);
-
-        // // mustStr
-        mdiA = new MustDefinitionImpl(null, "description", "reference", "errorAppTag", "errorMessage");
-        mdiB = new MustDefinitionImpl("mustStr", "description", "reference", "errorAppTag", "errorMessage");
-        assertFalse("mdiA shouldn't equal to mdiB", mdiA.equals(mdiB));
-
-        mdiA = new MustDefinitionImpl("mustStrA", "description", "reference", "errorAppTag", "errorMessage");
-        mdiB = new MustDefinitionImpl("mustStrB", "description", "reference", "errorAppTag", "errorMessage");
-        assertFalse("mdiA shouldn't equal to mdiB", mdiA.equals(mdiB));
-
-        // //description
-        mdiA = new MustDefinitionImpl("mustStr", null, "reference", "errorAppTag", "errorMessage");
-        mdiB = new MustDefinitionImpl("mustStr", "description", "reference", "errorAppTag", "errorMessage");
-        assertFalse("mdiA shouldn't equal to mdiB", mdiA.equals(mdiB));
-
-        mdiA = new MustDefinitionImpl("mustStr", "descriptionA", "reference", "errorAppTag", "errorMessage");
-        mdiB = new MustDefinitionImpl("mustStr", "descriptionB", "reference", "errorAppTag", "errorMessage");
-        assertFalse("mdiA shouldn't equal to mdiB", mdiA.equals(mdiB));
-
-        // //reference
-        mdiA = new MustDefinitionImpl("mustStr", "description", null, "errorAppTag", "errorMessage");
-        mdiB = new MustDefinitionImpl("mustStr", "description", "reference", "errorAppTag", "errorMessage");
-        assertFalse("mdiA shouldn't equal to mdiB", mdiA.equals(mdiB));
-
-        mdiA = new MustDefinitionImpl("mustStr", "description", "referenceA", "errorAppTag", "errorMessage");
-        mdiB = new MustDefinitionImpl("mustStr", "description", "referenceB", "errorAppTag", "errorMessage");
-        assertFalse("mdiA shouldn't equal to mdiB", mdiA.equals(mdiB));
-
-    }
-
-}
index 7260e1797cb3715c47f49ed00d33071c37b92bf3..71d2c484456d3d714cd5d531d70a2f5f2cd07c84 100644 (file)
@@ -17,21 +17,25 @@ import java.net.URISyntaxException;
 import java.util.ArrayList;
 import java.util.Date;
 import java.util.List;
+
 import org.junit.Before;
 import org.junit.Test;
 import org.opendaylight.yangtools.yang.common.QName;
 import org.opendaylight.yangtools.yang.model.api.SchemaPath;
-import org.opendaylight.yangtools.yang.parser.builder.impl.UnknownSchemaNodeBuilder;
+import org.opendaylight.yangtools.yang.model.util.MustDefinitionImpl;
+import org.opendaylight.yangtools.yang.parser.builder.api.RefineBuilder;
+import org.opendaylight.yangtools.yang.parser.builder.impl.RefineHolderImpl;
+import org.opendaylight.yangtools.yang.parser.builder.impl.UnknownSchemaNodeBuilderImpl;
 
 public class RefineHolderTest {
 
-    private RefineHolder rh;
-    private RefineHolder rh1;
+    private RefineHolderImpl rh;
+    private RefineHolderImpl rh1;
 
     @Before
     public void init() {
-        rh = new RefineHolder("module", 2104, "name");
-        rh1 = new RefineHolder("module", 2104, "name");
+        rh = new RefineHolderImpl("module", 2104, "name");
+        rh1 = new RefineHolderImpl("module", 2104, "name");
     }
 
 
@@ -44,9 +48,9 @@ public class RefineHolderTest {
 
         assertEquals("rh1 should equals to rh", rh, rh1);
 
-        RefineHolder rh2 = new RefineHolder("module", 2104, null);
+        RefineBuilder rh2 = new RefineHolderImpl("module", 2104, null);
         assertFalse("rh shouldn't equal to rh2", rh2.equals(rh1));
-        rh2 = new RefineHolder("module", 2104, "name2");
+        rh2 = new RefineHolderImpl("module", 2104, "name2");
         assertFalse("rh shouldn't equal to rh2", rh.equals(rh2));
 
         assertEquals("Wrong hash code", 1557537141, rh.hashCode());
@@ -189,8 +193,8 @@ public class RefineHolderTest {
         qnamesB.add(qnameB);
         SchemaPath schemaPathB = SchemaPath.create(qnamesB, true);
 
-        UnknownSchemaNodeBuilder usnb = new UnknownSchemaNodeBuilder("usnb", 151, new QName(simpleUri, "tst"), schemaPathB);
-        UnknownSchemaNodeBuilder usnb1 = new UnknownSchemaNodeBuilder("usnb", 151, new QName(simpleUri, "tst"), schemaPathB);
+        UnknownSchemaNodeBuilderImpl usnb = new UnknownSchemaNodeBuilderImpl("usnb", 151, new QName(simpleUri, "tst"), schemaPathB);
+        UnknownSchemaNodeBuilderImpl usnb1 = new UnknownSchemaNodeBuilderImpl("usnb", 151, new QName(simpleUri, "tst"), schemaPathB);
 
         assertEquals("rh should equal to rh1", rh, rh1);
         rh1.addUnknownNodeBuilder(usnb);
@@ -206,9 +210,9 @@ public class RefineHolderTest {
 
         SchemaPath path = org.mockito.Mockito.mock(SchemaPath.class);
 
-        UnknownSchemaNodeBuilder usnbA = new UnknownSchemaNodeBuilder("usnbA", 151, new QName(simpleUriA, "tst"), path);
-        UnknownSchemaNodeBuilder usnbB = new UnknownSchemaNodeBuilder("usnbB", 151, new QName(simpleUriB, "tst"), path);
-        UnknownSchemaNodeBuilder usnbAParent = new UnknownSchemaNodeBuilder("usnbAParent", 151, new QName(simpleUriA,
+        UnknownSchemaNodeBuilderImpl usnbA = new UnknownSchemaNodeBuilderImpl("usnbA", 151, new QName(simpleUriA, "tst"), path);
+        UnknownSchemaNodeBuilderImpl usnbB = new UnknownSchemaNodeBuilderImpl("usnbB", 151, new QName(simpleUriB, "tst"), path);
+        UnknownSchemaNodeBuilderImpl usnbAParent = new UnknownSchemaNodeBuilderImpl("usnbAParent", 151, new QName(simpleUriA,
                 "tst"), path);
         usnbA.setParent(usnbAParent);