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%2Fmodel%2Fparser%2Fbuilder%2Fimpl%2FContainerSchemaNodeBuilder.java;h=9b965daae6473cbb81b3b8d2a622ba1d268eabfb;hp=953b22e1749d42057a54f4b6855657b21270d4ac;hb=0082b632a043ef891f906b367e38132484685bb3;hpb=0fa3b1c50cf625fc37dd57350d3fa7db1b1b8eac diff --git a/opendaylight/sal/yang-prototype/code-generator/yang-model-parser-impl/src/main/java/org/opendaylight/controller/yang/model/parser/builder/impl/ContainerSchemaNodeBuilder.java b/opendaylight/sal/yang-prototype/code-generator/yang-model-parser-impl/src/main/java/org/opendaylight/controller/yang/model/parser/builder/impl/ContainerSchemaNodeBuilder.java index 953b22e174..9b965daae6 100644 --- a/opendaylight/sal/yang-prototype/code-generator/yang-model-parser-impl/src/main/java/org/opendaylight/controller/yang/model/parser/builder/impl/ContainerSchemaNodeBuilder.java +++ b/opendaylight/sal/yang-prototype/code-generator/yang-model-parser-impl/src/main/java/org/opendaylight/controller/yang/model/parser/builder/impl/ContainerSchemaNodeBuilder.java @@ -7,6 +7,7 @@ */ package org.opendaylight.controller.yang.model.parser.builder.impl; +import java.util.ArrayList; import java.util.Collections; import java.util.HashMap; import java.util.HashSet; @@ -43,6 +44,7 @@ public class ContainerSchemaNodeBuilder extends AbstractChildNodeBuilder private final Set addedTypedefs = new HashSet(); private final Set augmentations = new HashSet(); private final Set addedUsesNodes = new HashSet(); + private final List addedUnknownNodes = new ArrayList(); ContainerSchemaNodeBuilder(QName qname) { super(qname); @@ -80,6 +82,13 @@ public class ContainerSchemaNodeBuilder extends AbstractChildNodeBuilder } instance.setUses(uses); + // UNKNOWN NODES + final List unknownNodes = new ArrayList(); + for(UnknownSchemaNodeBuilder b : addedUnknownNodes) { + unknownNodes.add(b.build()); + } + instance.setUnknownSchemaNodes(unknownNodes); + instance.setConstraints(constraintsBuilder.build()); instance.setAvailableAugmentations(augmentations); @@ -140,6 +149,11 @@ public class ContainerSchemaNodeBuilder extends AbstractChildNodeBuilder instance.setPresenceContainer(presence); } + @Override + public void addUnknownSchemaNode(UnknownSchemaNodeBuilder unknownSchemaNodeBuilder) { + addedUnknownNodes.add(unknownSchemaNodeBuilder); + } + private class ContainerSchemaNodeImpl implements ContainerSchemaNode { private final QName qname; @@ -155,6 +169,7 @@ public class ContainerSchemaNodeBuilder extends AbstractChildNodeBuilder private Set groupings = Collections.emptySet(); private Set> typeDefinitions = Collections.emptySet(); private Set uses = Collections.emptySet(); + private List unknownSchemaNodes = Collections.emptyList(); private boolean presence; private ContainerSchemaNodeImpl(QName qname) { @@ -315,7 +330,13 @@ public class ContainerSchemaNodeBuilder extends AbstractChildNodeBuilder @Override public List getUnknownSchemaNodes() { - return Collections.emptyList(); + return unknownSchemaNodes; + } + + private void setUnknownSchemaNodes(List unknownSchemaNodes) { + if(unknownSchemaNodes != null) { + this.unknownSchemaNodes = unknownSchemaNodes; + } } @Override @@ -323,6 +344,7 @@ public class ContainerSchemaNodeBuilder extends AbstractChildNodeBuilder final int prime = 31; int result = 1; result = prime * result + ((qname == null) ? 0 : qname.hashCode()); + result = prime * result + ((path == null) ? 0 : path.hashCode()); return result; } @@ -345,6 +367,13 @@ public class ContainerSchemaNodeBuilder extends AbstractChildNodeBuilder } else if (!qname.equals(other.qname)) { return false; } + if (path == null) { + if (other.path != null) { + return false; + } + } else if (!path.equals(other.path)) { + return false; + } return true; }