X-Git-Url: https://git.opendaylight.org/gerrit/gitweb?a=blobdiff_plain;f=yang%2Fyang-parser-impl%2Fsrc%2Fmain%2Fjava%2Forg%2Fopendaylight%2Fyangtools%2Fyang%2Fparser%2Fbuilder%2Fimpl%2FModuleBuilder.java;h=5c4afe6ae17b49e99535784d7e4ab2a74c28f26a;hb=ff4a1007e241b1b88883c7fb0357c5089fafcf25;hp=d762af57bf7f382c4e722f6253a40a8954f40784;hpb=f7704dd56038f8e7e0143bb7efe1414700a4fab7;p=yangtools.git diff --git a/yang/yang-parser-impl/src/main/java/org/opendaylight/yangtools/yang/parser/builder/impl/ModuleBuilder.java b/yang/yang-parser-impl/src/main/java/org/opendaylight/yangtools/yang/parser/builder/impl/ModuleBuilder.java index d762af57bf..5c4afe6ae1 100644 --- a/yang/yang-parser-impl/src/main/java/org/opendaylight/yangtools/yang/parser/builder/impl/ModuleBuilder.java +++ b/yang/yang-parser-impl/src/main/java/org/opendaylight/yangtools/yang/parser/builder/impl/ModuleBuilder.java @@ -8,7 +8,6 @@ package org.opendaylight.yangtools.yang.parser.builder.impl; import com.google.common.base.Preconditions; import com.google.common.io.ByteSource; - import java.io.IOException; import java.io.InputStream; import java.net.URI; @@ -24,7 +23,6 @@ import java.util.List; import java.util.Map; import java.util.Set; import java.util.TreeSet; - import org.apache.commons.io.IOUtils; import org.opendaylight.yangtools.yang.common.QName; import org.opendaylight.yangtools.yang.common.QNameModule; @@ -81,6 +79,10 @@ public class ModuleBuilder extends AbstractDocumentedDataNodeContainerBuilder im final Map imports = new HashMap<>(); final Map importedModules = new HashMap<>(); + final Set addedSubmodules = new HashSet<>(); + final Set submodules = new HashSet<>(); + final Map includedModules = new HashMap<>(); + private final Set augments = new LinkedHashSet<>(); private final List augmentBuilders = new ArrayList<>(); private final List allAugments = new ArrayList<>(); @@ -129,7 +131,7 @@ public class ModuleBuilder extends AbstractDocumentedDataNodeContainerBuilder im } public ModuleBuilder(final Module base) { - super(base.getName(), 0, new QName(base.getNamespace(), base.getRevision(), base.getPrefix(), base.getName()), + super(base.getName(), 0, QName.create(base.getQNameModule(), base.getPrefix(), base.getName()), SCHEMA_PATH, base); this.name = base.getName(); this.sourcePath = base.getModuleSourcePath(); @@ -171,6 +173,11 @@ public class ModuleBuilder extends AbstractDocumentedDataNodeContainerBuilder im buildChildren(); + // SUBMODULES + for (ModuleBuilder submodule : addedSubmodules) { + submodules.add(submodule.build()); + } + // FEATURES for (FeatureBuilder fb : addedFeatures) { features.add(fb.build()); @@ -366,6 +373,18 @@ public class ModuleBuilder extends AbstractDocumentedDataNodeContainerBuilder im importedModules.put(prefix, module); } + public Map getIncludedModules() { + return includedModules; + } + + public void addInclude(final String name, final Date revision) { + includedModules.put(name, revision); + } + + public void addSubmodule(final ModuleBuilder submodule) { + addedSubmodules.add(submodule); + } + protected String getSource() { return source; } @@ -528,9 +547,11 @@ public class ModuleBuilder extends AbstractDocumentedDataNodeContainerBuilder im return builder; } - public AugmentationSchemaBuilder addAugment(final int line, final String augmentTargetStr, final int order) { + public AugmentationSchemaBuilder addAugment(final int line, final String augmentTargetStr, + final SchemaPath targetPath, final int order) { checkNotSealed(); - final AugmentationSchemaBuilder builder = new AugmentationSchemaBuilderImpl(name, line, augmentTargetStr, order); + final AugmentationSchemaBuilder builder = new AugmentationSchemaBuilderImpl(name, line, augmentTargetStr, + targetPath, order); Builder parent = getActualNode(); builder.setParent(parent); @@ -562,9 +583,9 @@ public class ModuleBuilder extends AbstractDocumentedDataNodeContainerBuilder im return builder; } - public UsesNodeBuilder addUsesNode(final int line, final String groupingPathStr) { + public UsesNodeBuilder addUsesNode(final int line, final SchemaPath grouping) { checkNotSealed(); - final UsesNodeBuilder usesBuilder = new UsesNodeBuilderImpl(name, line, groupingPathStr); + final UsesNodeBuilder usesBuilder = new UsesNodeBuilderImpl(name, line, grouping); Builder parent = getActualNode(); usesBuilder.setParent(parent); @@ -573,7 +594,7 @@ public class ModuleBuilder extends AbstractDocumentedDataNodeContainerBuilder im addUsesNode(usesBuilder); } else { if (!(parent instanceof DataNodeContainerBuilder)) { - throw new YangParseException(name, line, "Unresolved parent of uses '" + groupingPathStr + "'."); + throw new YangParseException(name, line, "Unresolved parent of uses '" + grouping + "'."); } ((DataNodeContainerBuilder) parent).addUsesNode(usesBuilder); } @@ -826,7 +847,7 @@ public class ModuleBuilder extends AbstractDocumentedDataNodeContainerBuilder im } } - public DeviationBuilder addDeviation(final int line, final String targetPath) { + public DeviationBuilder addDeviation(final int line, final SchemaPath targetPath) { Builder parent = getActualNode(); if (!(parent.equals(this))) { throw new YangParseException(name, line, "deviation can be defined only in module or submodule");