X-Git-Url: https://git.opendaylight.org/gerrit/gitweb?p=controller.git;a=blobdiff_plain;f=opendaylight%2Fsal%2Fyang-prototype%2Fcode-generator%2Fyang-model-parser-impl%2Fsrc%2Fmain%2Fjava%2Forg%2Fopendaylight%2Fcontroller%2Fyang%2Fparser%2Fbuilder%2Fimpl%2FDeviationBuilder.java;h=9b52d61c88085e822a780f569e97be05003f1ed9;hp=239c0a5ed9a8da6c3a1682975f7a8b8258941e17;hb=154b5dde1af41aff2ae0cc6e08400153162a4a3c;hpb=0f846fcbc207a4213ac133e1d08a305fc72168ba diff --git a/opendaylight/sal/yang-prototype/code-generator/yang-model-parser-impl/src/main/java/org/opendaylight/controller/yang/parser/builder/impl/DeviationBuilder.java b/opendaylight/sal/yang-prototype/code-generator/yang-model-parser-impl/src/main/java/org/opendaylight/controller/yang/parser/builder/impl/DeviationBuilder.java index 239c0a5ed9..9b52d61c88 100644 --- a/opendaylight/sal/yang-prototype/code-generator/yang-model-parser-impl/src/main/java/org/opendaylight/controller/yang/parser/builder/impl/DeviationBuilder.java +++ b/opendaylight/sal/yang-prototype/code-generator/yang-model-parser-impl/src/main/java/org/opendaylight/controller/yang/parser/builder/impl/DeviationBuilder.java @@ -7,16 +7,24 @@ */ package org.opendaylight.controller.yang.parser.builder.impl; +import java.util.ArrayList; +import java.util.Collections; +import java.util.List; + import org.opendaylight.controller.yang.model.api.Deviation; import org.opendaylight.controller.yang.model.api.Deviation.Deviate; import org.opendaylight.controller.yang.model.api.SchemaPath; +import org.opendaylight.controller.yang.model.api.UnknownSchemaNode; import org.opendaylight.controller.yang.parser.builder.api.Builder; +import org.opendaylight.controller.yang.parser.util.Comparators; import org.opendaylight.controller.yang.parser.util.YangModelBuilderUtil; import org.opendaylight.controller.yang.parser.util.YangParseException; public final class DeviationBuilder implements Builder { - private final DeviationImpl instance; private final int line; + private Builder parent; + private final DeviationImpl instance; + private final List addedUnknownNodes = new ArrayList(); DeviationBuilder(final String targetPathStr, final int line) { this.line = line; @@ -27,6 +35,14 @@ public final class DeviationBuilder implements Builder { @Override public Deviation build() { + // UNKNOWN NODES + List unknownNodes = new ArrayList(); + for (UnknownSchemaNodeBuilder b : addedUnknownNodes) { + unknownNodes.add(b.build()); + } + Collections.sort(unknownNodes, Comparators.SCHEMA_NODE_COMP); + instance.setUnknownSchemaNodes(unknownNodes); + return instance; } @@ -35,6 +51,21 @@ public final class DeviationBuilder implements Builder { return line; } + @Override + public Builder getParent() { + return parent; + } + + @Override + public void setParent(final Builder parent) { + this.parent = parent; + } + + @Override + public void addUnknownSchemaNode(UnknownSchemaNodeBuilder unknownNode) { + addedUnknownNodes.add(unknownNode); + } + public void setDeviate(final String deviate) { if ("not-supported".equals(deviate)) { instance.setDeviate(Deviate.NOT_SUPPORTED); @@ -58,6 +89,7 @@ public final class DeviationBuilder implements Builder { private final SchemaPath targetPath; private Deviate deviate; private String reference; + private List unknownNodes = Collections.emptyList(); private DeviationImpl(final SchemaPath targetPath) { this.targetPath = targetPath; @@ -86,6 +118,16 @@ public final class DeviationBuilder implements Builder { this.reference = reference; } + public List getUnknownSchemaNodes() { + return unknownNodes; + } + + private void setUnknownSchemaNodes(List unknownSchemaNodes) { + if (unknownSchemaNodes != null) { + this.unknownNodes = unknownSchemaNodes; + } + } + @Override public int hashCode() { final int prime = 31;