import com.google.common.base.Preconditions;
import com.google.common.io.ByteSource;
-
import java.io.IOException;
import java.io.InputStream;
import java.net.URI;
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;
final Map<String, ModuleImport> imports = new HashMap<>();
final Map<String, ModuleBuilder> importedModules = new HashMap<>();
+ final Set<ModuleBuilder> addedSubmodules = new HashSet<>();
+ final Set<Module> submodules = new HashSet<>();
+ final Map<String, Date> includedModules = new HashMap<>();
+
private final Set<AugmentationSchema> augments = new LinkedHashSet<>();
private final List<AugmentationSchemaBuilder> augmentBuilders = new ArrayList<>();
private final List<AugmentationSchemaBuilder> allAugments = new ArrayList<>();
buildChildren();
+ // SUBMODULES
+ for (ModuleBuilder submodule : addedSubmodules) {
+ submodules.add(submodule.build());
+ }
+
// FEATURES
for (FeatureBuilder fb : addedFeatures) {
features.add(fb.build());
importedModules.put(prefix, module);
}
+ public Map<String, Date> 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;
}
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);
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);
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);
}
}
}
- 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");