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=5cfde8e7a0b7b7cbc21ababcc2c11a90dfcaf0eb;hb=refs%2Fchanges%2F81%2F281%2F1;hp=0abc9598dc9ab6df3ce528d5ab6332b9eb38a231;hpb=5384703a0df855832553100d29a82008dcfd92cb;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 0abc9598dc..5cfde8e7a0 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,24 +18,33 @@ 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 { - - private final QName qname; +public final class IdentitySchemaNodeBuilder implements SchemaNodeBuilder { private final IdentitySchemaNodeImpl instance; + private final QName qname; + private SchemaPath schemaPath; private IdentitySchemaNodeBuilder baseIdentity; private String baseIdentityName; + private final List addedUnknownNodes = new ArrayList(); - IdentitySchemaNodeBuilder(QName qname) { + IdentitySchemaNodeBuilder(final QName qname) { this.qname = qname; instance = new IdentitySchemaNodeImpl(qname); } @Override public IdentitySchemaNode build() { - if(baseIdentity != null) { - IdentitySchemaNode base = baseIdentity.build(); - instance.setBaseIdentity(base); + instance.setPath(schemaPath); + if (baseIdentity != null) { + instance.setBaseIdentity(baseIdentity.build()); } + + // UNKNOWN NODES + final List unknownNodes = new ArrayList(); + for (UnknownSchemaNodeBuilder b : addedUnknownNodes) { + unknownNodes.add(b.build()); + } + instance.setUnknownSchemaNodes(unknownNodes); + return instance; } @@ -44,55 +54,59 @@ public class IdentitySchemaNodeBuilder implements SchemaNodeBuilder { } @Override - public void setPath(SchemaPath path) { - instance.setPath(path); + public SchemaPath getPath() { + return schemaPath; } @Override - public void setDescription(String description) { + public void setPath(SchemaPath schemaPath) { + this.schemaPath = schemaPath; + } + + @Override + public void setDescription(final String description) { instance.setDescription(description); } @Override - public void setReference(String reference) { + public void setReference(final String reference) { instance.setReference(reference); } @Override - public void setStatus(Status status) { + public void setStatus(final Status status) { if (status != null) { instance.setStatus(status); } } @Override - public void addUnknownSchemaNode( - UnknownSchemaNodeBuilder unknownSchemaNodeBuilder) { - throw new IllegalStateException( - "Can not add schema node to identity statement"); + public void addUnknownSchemaNode(final UnknownSchemaNodeBuilder unknownNode) { + addedUnknownNodes.add(unknownNode); } public String getBaseIdentityName() { return baseIdentityName; } - public void setBaseIdentityName(String baseIdentityName) { + public void setBaseIdentityName(final String baseIdentityName) { this.baseIdentityName = baseIdentityName; } - public void setBaseIdentity(IdentitySchemaNodeBuilder baseType) { + public void setBaseIdentity(final IdentitySchemaNodeBuilder baseType) { 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(QName qname) { + private IdentitySchemaNodeImpl(final QName qname) { this.qname = qname; } @@ -106,7 +120,7 @@ public class IdentitySchemaNodeBuilder implements SchemaNodeBuilder { return baseIdentity; } - private void setBaseIdentity(IdentitySchemaNode baseIdentity) { + private void setBaseIdentity(final IdentitySchemaNode baseIdentity) { this.baseIdentity = baseIdentity; } @@ -115,7 +129,7 @@ public class IdentitySchemaNodeBuilder implements SchemaNodeBuilder { return description; } - private void setDescription(String description) { + private void setDescription(final String description) { this.description = description; } @@ -124,7 +138,7 @@ public class IdentitySchemaNodeBuilder implements SchemaNodeBuilder { return reference; } - private void setReference(String reference) { + private void setReference(final String reference) { this.reference = reference; } @@ -133,7 +147,7 @@ public class IdentitySchemaNodeBuilder implements SchemaNodeBuilder { return status; } - private void setStatus(Status status) { + private void setStatus(final Status status) { if (status != null) { this.status = status; } @@ -144,13 +158,20 @@ public class IdentitySchemaNodeBuilder implements SchemaNodeBuilder { return path; } - private void setPath(SchemaPath path) { + private void setPath(final SchemaPath path) { this.path = path; } @Override public List getUnknownSchemaNodes() { - return Collections.emptyList(); + return unknownNodes; + } + + private void setUnknownSchemaNodes( + List unknownSchemaNodes) { + if (unknownSchemaNodes != null) { + this.unknownNodes = unknownSchemaNodes; + } } @Override @@ -190,9 +211,6 @@ public class IdentitySchemaNodeBuilder implements SchemaNodeBuilder { sb.append("["); sb.append("base=" + baseIdentity); sb.append(", qname=" + qname); - sb.append(", description=" + description); - sb.append(", reference=" + reference); - sb.append(", status=" + status); sb.append("]"); return sb.toString(); }