X-Git-Url: https://git.opendaylight.org/gerrit/gitweb?a=blobdiff_plain;ds=sidebyside;f=opendaylight%2Fsal%2Fyang-prototype%2Fcode-generator%2Fyang-model-parser-impl%2Fsrc%2Fmain%2Fjava%2Forg%2Fopendaylight%2Fcontroller%2Fyang%2Fparser%2Fbuilder%2Fimpl%2FIdentitySchemaNodeBuilder.java;h=6b76314e5cd5163c950a84ca88bc94a1664006ef;hb=f0b551cfbf794966124da7475935c27c3e7311c0;hp=b53d5b2dc2bc4804251fb40bca2355dc0ddb91cd;hpb=39ff6ed2000232d607877311770c74cef36cf96f;p=controller.git diff --git a/opendaylight/sal/yang-prototype/code-generator/yang-model-parser-impl/src/main/java/org/opendaylight/controller/yang/parser/builder/impl/IdentitySchemaNodeBuilder.java b/opendaylight/sal/yang-prototype/code-generator/yang-model-parser-impl/src/main/java/org/opendaylight/controller/yang/parser/builder/impl/IdentitySchemaNodeBuilder.java index b53d5b2dc2..6b76314e5c 100644 --- a/opendaylight/sal/yang-prototype/code-generator/yang-model-parser-impl/src/main/java/org/opendaylight/controller/yang/parser/builder/impl/IdentitySchemaNodeBuilder.java +++ b/opendaylight/sal/yang-prototype/code-generator/yang-model-parser-impl/src/main/java/org/opendaylight/controller/yang/parser/builder/impl/IdentitySchemaNodeBuilder.java @@ -19,11 +19,16 @@ import org.opendaylight.controller.yang.model.api.UnknownSchemaNode; import org.opendaylight.controller.yang.parser.builder.api.SchemaNodeBuilder; public final class IdentitySchemaNodeBuilder implements SchemaNodeBuilder { + private boolean isBuilt; private final IdentitySchemaNodeImpl instance; private final int line; private final QName qname; private SchemaPath schemaPath; - private IdentitySchemaNodeBuilder baseIdentity; + private String description; + private String reference; + private Status status = Status.CURRENT; + private IdentitySchemaNodeBuilder baseIdentityBuilder; + private IdentitySchemaNode baseIdentity; private String baseIdentityName; private final List addedUnknownNodes = new ArrayList(); @@ -35,17 +40,29 @@ public final class IdentitySchemaNodeBuilder implements SchemaNodeBuilder { @Override public IdentitySchemaNode build() { - instance.setPath(schemaPath); - if (baseIdentity != null) { - instance.setBaseIdentity(baseIdentity.build()); - } + if(!isBuilt) { + instance.setPath(schemaPath); + instance.setDescription(description); + instance.setReference(reference); + instance.setStatus(status); + + if (baseIdentity == null) { + if (baseIdentityBuilder != null) { + instance.setBaseIdentity(baseIdentityBuilder.build()); + } + } else { + instance.setBaseIdentity(baseIdentity); + } + + // UNKNOWN NODES + final List unknownNodes = new ArrayList(); + for (UnknownSchemaNodeBuilder b : addedUnknownNodes) { + unknownNodes.add(b.build()); + } + instance.setUnknownSchemaNodes(unknownNodes); - // UNKNOWN NODES - final List unknownNodes = new ArrayList(); - for (UnknownSchemaNodeBuilder b : addedUnknownNodes) { - unknownNodes.add(b.build()); + isBuilt = true; } - instance.setUnknownSchemaNodes(unknownNodes); return instance; } @@ -70,20 +87,35 @@ public final class IdentitySchemaNodeBuilder implements SchemaNodeBuilder { this.schemaPath = schemaPath; } + @Override + public String getDescription() { + return description; + } + @Override public void setDescription(final String description) { - instance.setDescription(description); + this.description = description; + } + + @Override + public String getReference() { + return reference; } @Override public void setReference(final String reference) { - instance.setReference(reference); + this.reference = reference; + } + + @Override + public Status getStatus() { + return status; } @Override public void setStatus(final Status status) { if (status != null) { - instance.setStatus(status); + this.status = status; } } @@ -101,6 +133,10 @@ public final class IdentitySchemaNodeBuilder implements SchemaNodeBuilder { } public void setBaseIdentity(final IdentitySchemaNodeBuilder baseType) { + this.baseIdentityBuilder = baseType; + } + + public void setBaseIdentity(final IdentitySchemaNode baseType) { this.baseIdentity = baseType; } @@ -174,8 +210,7 @@ public final class IdentitySchemaNodeBuilder implements SchemaNodeBuilder { return unknownNodes; } - private void setUnknownSchemaNodes( - List unknownSchemaNodes) { + private void setUnknownSchemaNodes(List unknownSchemaNodes) { if (unknownSchemaNodes != null) { this.unknownNodes = unknownSchemaNodes; } @@ -186,6 +221,7 @@ public final class IdentitySchemaNodeBuilder implements SchemaNodeBuilder { 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; } @@ -208,13 +244,19 @@ public final class IdentitySchemaNodeBuilder implements SchemaNodeBuilder { } 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; } @Override public String toString() { - StringBuilder sb = new StringBuilder( - IdentitySchemaNodeImpl.class.getSimpleName()); + StringBuilder sb = new StringBuilder(IdentitySchemaNodeImpl.class.getSimpleName()); sb.append("["); sb.append("base=" + baseIdentity); sb.append(", qname=" + qname);