X-Git-Url: https://git.opendaylight.org/gerrit/gitweb?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%2FIdentitySchemaNodeBuilder.java;h=810ceeced500ca28d1bf4da4d8e83de8de5ab703;hb=332c66867273c6d2f73080ae124c6c4d8977d099;hp=906afd97a04bbb12b485d8b3cab47072aebb0c05;hpb=fc7a2ae9b5c6b82d463fe612509a157e3f261653;p=controller.git diff --git a/opendaylight/sal/yang-prototype/code-generator/yang-model-parser-impl/src/main/java/org/opendaylight/controller/yang/model/parser/builder/impl/IdentitySchemaNodeBuilder.java b/opendaylight/sal/yang-prototype/code-generator/yang-model-parser-impl/src/main/java/org/opendaylight/controller/yang/model/parser/builder/impl/IdentitySchemaNodeBuilder.java index 906afd97a0..810ceeced5 100644 --- a/opendaylight/sal/yang-prototype/code-generator/yang-model-parser-impl/src/main/java/org/opendaylight/controller/yang/model/parser/builder/impl/IdentitySchemaNodeBuilder.java +++ b/opendaylight/sal/yang-prototype/code-generator/yang-model-parser-impl/src/main/java/org/opendaylight/controller/yang/model/parser/builder/impl/IdentitySchemaNodeBuilder.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.List; @@ -17,30 +18,43 @@ import org.opendaylight.controller.yang.model.api.Status; import org.opendaylight.controller.yang.model.api.UnknownSchemaNode; import org.opendaylight.controller.yang.model.parser.builder.api.SchemaNodeBuilder; -public class IdentitySchemaNodeBuilder implements SchemaNodeBuilder { - +public final class IdentitySchemaNodeBuilder implements SchemaNodeBuilder { + private final IdentitySchemaNodeImpl instance; + private final int line; private final QName qname; private SchemaPath schemaPath; - private final IdentitySchemaNodeImpl instance; private IdentitySchemaNodeBuilder baseIdentity; private String baseIdentityName; + private final List addedUnknownNodes = new ArrayList(); - IdentitySchemaNodeBuilder(final QName qname) { + IdentitySchemaNodeBuilder(final QName qname, final int line) { this.qname = qname; + this.line = line; instance = new IdentitySchemaNodeImpl(qname); } @Override public IdentitySchemaNode build() { instance.setPath(schemaPath); - if (baseIdentity != null) { - final IdentitySchemaNode base = baseIdentity.build(); - instance.setBaseIdentity(base); + instance.setBaseIdentity(baseIdentity.build()); } + + // UNKNOWN NODES + final List unknownNodes = new ArrayList(); + for (UnknownSchemaNodeBuilder b : addedUnknownNodes) { + unknownNodes.add(b.build()); + } + instance.setUnknownSchemaNodes(unknownNodes); + return instance; } + @Override + public int getLine() { + return line; + } + @Override public QName getQName() { return qname; @@ -75,8 +89,7 @@ public class IdentitySchemaNodeBuilder implements SchemaNodeBuilder { @Override public void addUnknownSchemaNode(final UnknownSchemaNodeBuilder unknownNode) { - throw new IllegalStateException( - "Can not add schema node to identity statement"); + addedUnknownNodes.add(unknownNode); } public String getBaseIdentityName() { @@ -91,13 +104,14 @@ public class IdentitySchemaNodeBuilder implements SchemaNodeBuilder { this.baseIdentity = baseType; } - private class IdentitySchemaNodeImpl implements IdentitySchemaNode { + private final class IdentitySchemaNodeImpl implements IdentitySchemaNode { private final QName qname; private IdentitySchemaNode baseIdentity; private String description; private String reference; private Status status = Status.CURRENT; private SchemaPath path; + private List unknownNodes = Collections.emptyList(); private IdentitySchemaNodeImpl(final QName qname) { this.qname = qname; @@ -157,7 +171,14 @@ public class IdentitySchemaNodeBuilder implements SchemaNodeBuilder { @Override public List getUnknownSchemaNodes() { - return Collections.emptyList(); + return unknownNodes; + } + + private void setUnknownSchemaNodes( + List unknownSchemaNodes) { + if (unknownSchemaNodes != null) { + this.unknownNodes = unknownSchemaNodes; + } } @Override