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%2Fparser%2Fbuilder%2Fimpl%2FLeafListSchemaNodeBuilder.java;h=9bbe5e9bd05d7225e9836ec2a932986ba0c64488;hb=b36cea2d468e8f572f0159332b0668fc35c95912;hp=28f250f121a05c499285a3bef1863b8251dc3e33;hpb=35ba67e73cf9fea55535c1aef8303e7d12c982e7;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/LeafListSchemaNodeBuilder.java b/opendaylight/sal/yang-prototype/code-generator/yang-model-parser-impl/src/main/java/org/opendaylight/controller/yang/parser/builder/impl/LeafListSchemaNodeBuilder.java index 28f250f121..9bbe5e9bd0 100644 --- a/opendaylight/sal/yang-prototype/code-generator/yang-model-parser-impl/src/main/java/org/opendaylight/controller/yang/parser/builder/impl/LeafListSchemaNodeBuilder.java +++ b/opendaylight/sal/yang-prototype/code-generator/yang-model-parser-impl/src/main/java/org/opendaylight/controller/yang/parser/builder/impl/LeafListSchemaNodeBuilder.java @@ -19,12 +19,13 @@ import org.opendaylight.controller.yang.model.api.Status; import org.opendaylight.controller.yang.model.api.TypeDefinition; import org.opendaylight.controller.yang.model.api.UnknownSchemaNode; import org.opendaylight.controller.yang.parser.builder.api.AbstractTypeAwareBuilder; +import org.opendaylight.controller.yang.parser.builder.api.ConfigNode; import org.opendaylight.controller.yang.parser.builder.api.DataSchemaNodeBuilder; -import org.opendaylight.controller.yang.parser.builder.api.SchemaNodeBuilder; +import org.opendaylight.controller.yang.parser.builder.api.GroupingMember; -public class LeafListSchemaNodeBuilder extends AbstractTypeAwareBuilder - implements SchemaNodeBuilder, DataSchemaNodeBuilder { - private boolean built; +public final class LeafListSchemaNodeBuilder extends AbstractTypeAwareBuilder implements DataSchemaNodeBuilder, + GroupingMember, ConfigNode { + private boolean isBuilt; private final LeafListSchemaNodeImpl instance; private final int line; // SchemaNode args @@ -33,30 +34,55 @@ public class LeafListSchemaNodeBuilder extends AbstractTypeAwareBuilder private String description; private String reference; private Status status = Status.CURRENT; + private List unknownNodes; private final List addedUnknownNodes = new ArrayList(); // DataSchemaNode args private boolean augmenting; - private boolean configuration; + private boolean addedByUses; + private Boolean configuration; private final ConstraintsBuilder constraints; // LeafListSchemaNode args private boolean userOrdered; - public LeafListSchemaNodeBuilder(final QName qname, final int line) { + public LeafListSchemaNodeBuilder(final QName qname, final SchemaPath schemaPath, final int line) { this.qname = qname; + this.schemaPath = schemaPath; this.line = line; instance = new LeafListSchemaNodeImpl(qname); constraints = new ConstraintsBuilder(line); } + public LeafListSchemaNodeBuilder(final LeafListSchemaNodeBuilder b) { + qname = b.getQName(); + line = b.getLine(); + instance = new LeafListSchemaNodeImpl(qname); + + type = b.getType(); + typedef = b.getTypedef(); + + constraints = b.getConstraints(); + schemaPath = b.getPath(); + description = b.getDescription(); + reference = b.getReference(); + status = b.getStatus(); + augmenting = b.isAugmenting(); + addedByUses = b.isAddedByUses(); + configuration = b.isConfiguration(); + userOrdered = b.isUserOrdered(); + unknownNodes = b.unknownNodes; + addedUnknownNodes.addAll(b.getUnknownNodes()); + } + @Override public LeafListSchemaNode build() { - if (!built) { + if (!isBuilt) { instance.setConstraints(constraints.build()); instance.setPath(schemaPath); instance.setDescription(description); instance.setReference(reference); instance.setStatus(status); instance.setAugmenting(augmenting); + instance.setAddedByUses(addedByUses); instance.setConfiguration(configuration); instance.setUserOrdered(userOrdered); @@ -67,13 +93,15 @@ public class LeafListSchemaNodeBuilder extends AbstractTypeAwareBuilder } // UNKNOWN NODES - final List unknownNodes = new ArrayList(); - for (UnknownSchemaNodeBuilder b : addedUnknownNodes) { - unknownNodes.add(b.build()); + if (unknownNodes == null) { + unknownNodes = new ArrayList(); + for (UnknownSchemaNodeBuilder b : addedUnknownNodes) { + unknownNodes.add(b.build()); + } } instance.setUnknownSchemaNodes(unknownNodes); - built = true; + isBuilt = true; } return instance; } @@ -135,12 +163,22 @@ public class LeafListSchemaNodeBuilder extends AbstractTypeAwareBuilder this.augmenting = augmenting; } - public boolean isConfiguration() { + @Override + public boolean isAddedByUses() { + return addedByUses; + } + + @Override + public void setAddedByUses(final boolean addedByUses) { + this.addedByUses = addedByUses; + } + + public Boolean isConfiguration() { return configuration; } @Override - public void setConfiguration(boolean configuration) { + public void setConfiguration(Boolean configuration) { this.configuration = configuration; } @@ -166,13 +204,18 @@ public class LeafListSchemaNodeBuilder extends AbstractTypeAwareBuilder addedUnknownNodes.add(unknownNode); } - private class LeafListSchemaNodeImpl implements LeafListSchemaNode { + public void setUnknownNodes(List unknownNodes) { + this.unknownNodes = unknownNodes; + } + + private final class LeafListSchemaNodeImpl implements LeafListSchemaNode { private final QName qname; private SchemaPath path; private String description; private String reference; private Status status = Status.CURRENT; private boolean augmenting; + private boolean addedByUses; private boolean configuration; private ConstraintDefinition constraintsDef; private TypeDefinition type; @@ -233,6 +276,15 @@ public class LeafListSchemaNodeBuilder extends AbstractTypeAwareBuilder this.augmenting = augmenting; } + @Override + public boolean isAddedByUses() { + return addedByUses; + } + + private void setAddedByUses(final boolean addedByUses) { + this.addedByUses = addedByUses; + } + @Override public boolean isConfiguration() { return configuration; @@ -320,16 +372,9 @@ public class LeafListSchemaNodeBuilder extends AbstractTypeAwareBuilder @Override public String toString() { - StringBuilder sb = new StringBuilder( - LeafListSchemaNodeImpl.class.getSimpleName()); + StringBuilder sb = new StringBuilder(LeafListSchemaNodeImpl.class.getSimpleName()); sb.append("["); - sb.append("qname=" + qname); - sb.append(", path=" + path); - sb.append(", augmenting=" + augmenting); - sb.append(", configuration=" + configuration); - sb.append(", constraints=" + constraintsDef); - sb.append(", type=" + type); - sb.append(", userOrdered=" + userOrdered); + sb.append(qname); sb.append("]"); return sb.toString(); }