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%2FLeafSchemaNodeBuilder.java;h=54720b44e1afac2706ad5265cf8d98b9db8ce1a6;hb=c9006d027a5c5b639e57aa7b8484ec1ff3497dc8;hp=ee7b3b1c81f55454b1ba06db75c06030e7c6be57;hpb=9090a5876e0540b12d30e4cdf29f8be25208b489;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/LeafSchemaNodeBuilder.java b/opendaylight/sal/yang-prototype/code-generator/yang-model-parser-impl/src/main/java/org/opendaylight/controller/yang/parser/builder/impl/LeafSchemaNodeBuilder.java index ee7b3b1c81..54720b44e1 100644 --- a/opendaylight/sal/yang-prototype/code-generator/yang-model-parser-impl/src/main/java/org/opendaylight/controller/yang/parser/builder/impl/LeafSchemaNodeBuilder.java +++ b/opendaylight/sal/yang-prototype/code-generator/yang-model-parser-impl/src/main/java/org/opendaylight/controller/yang/parser/builder/impl/LeafSchemaNodeBuilder.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 LeafSchemaNodeBuilder extends AbstractTypeAwareBuilder implements - DataSchemaNodeBuilder, SchemaNodeBuilder { - private boolean built; +public final class LeafSchemaNodeBuilder extends AbstractTypeAwareBuilder implements DataSchemaNodeBuilder, + GroupingMember, ConfigNode { + private boolean isBuilt; private final LeafSchemaNodeImpl instance; private final int line; // SchemaNode args @@ -33,31 +34,58 @@ public class LeafSchemaNodeBuilder extends AbstractTypeAwareBuilder implements 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; // leaf args private String defaultStr; private String unitsStr; - public LeafSchemaNodeBuilder(final QName qname, final int line) { + public LeafSchemaNodeBuilder(final QName qname, final SchemaPath schemaPath, final int line) { this.qname = qname; + this.path = schemaPath; this.line = line; instance = new LeafSchemaNodeImpl(qname); constraints = new ConstraintsBuilder(line); } + public LeafSchemaNodeBuilder(final LeafSchemaNodeBuilder b) { + qname = b.getQName(); + line = b.getLine(); + instance = new LeafSchemaNodeImpl(qname); + constraints = b.getConstraints(); + path = b.getPath(); + + type = b.getType(); + typedef = b.getTypedef(); + + description = b.getDescription(); + reference = b.getReference(); + status = b.getStatus(); + augmenting = b.isAugmenting(); + addedByUses = b.isAddedByUses(); + configuration = b.isConfiguration(); + unknownNodes = b.unknownNodes; + addedUnknownNodes.addAll(b.getUnknownNodes()); + + defaultStr = b.getDefaultStr(); + unitsStr = b.getUnits(); + } + @Override public LeafSchemaNode build() { - if(!built) { + if (!isBuilt) { instance.setPath(path); instance.setConstraints(constraints.build()); instance.setDescription(description); instance.setReference(reference); instance.setStatus(status); instance.setAugmenting(augmenting); + instance.setAddedByUses(addedByUses); instance.setConfiguration(configuration); instance.setDefault(defaultStr); instance.setUnits(unitsStr); @@ -70,13 +98,15 @@ public class LeafSchemaNodeBuilder extends AbstractTypeAwareBuilder implements } // 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; } @@ -114,6 +144,10 @@ public class LeafSchemaNodeBuilder extends AbstractTypeAwareBuilder implements return addedUnknownNodes; } + public void setUnknownNodes(List unknownNodes) { + this.unknownNodes = unknownNodes; + } + public String getDescription() { return description; } @@ -152,15 +186,23 @@ public class LeafSchemaNodeBuilder extends AbstractTypeAwareBuilder implements this.augmenting = augmenting; } + @Override + public boolean isAddedByUses() { + return addedByUses; + } + @Override + public void setAddedByUses(final boolean addedByUses) { + this.addedByUses = addedByUses; + } - public boolean isConfiguration() { + public Boolean isConfiguration() { return configuration; } @Override - public void setConfiguration(final boolean configuration) { - instance.setConfiguration(configuration); + public void setConfiguration(final Boolean configuration) { + this.configuration = configuration; } public String getDefaultStr() { @@ -179,13 +221,19 @@ public class LeafSchemaNodeBuilder extends AbstractTypeAwareBuilder implements this.unitsStr = unitsStr; } - private class LeafSchemaNodeImpl implements LeafSchemaNode { + @Override + public String toString() { + return "leaf " + qname.getLocalName(); + } + + private final class LeafSchemaNodeImpl implements LeafSchemaNode { 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; @@ -249,6 +297,15 @@ public class LeafSchemaNodeBuilder extends AbstractTypeAwareBuilder implements this.augmenting = augmenting; } + @Override + public boolean isAddedByUses() { + return addedByUses; + } + + private void setAddedByUses(final boolean addedByUses) { + this.addedByUses = addedByUses; + } + @Override public boolean isConfiguration() { return configuration; @@ -287,6 +344,7 @@ public class LeafSchemaNodeBuilder extends AbstractTypeAwareBuilder implements } } + @Override public String getDefault() { return defaultStr; } @@ -295,6 +353,7 @@ public class LeafSchemaNodeBuilder extends AbstractTypeAwareBuilder implements this.defaultStr = defaultStr; } + @Override public String getUnits() { return unitsStr; } @@ -343,8 +402,7 @@ public class LeafSchemaNodeBuilder extends AbstractTypeAwareBuilder implements @Override public String toString() { - StringBuilder sb = new StringBuilder( - LeafSchemaNodeImpl.class.getSimpleName()); + StringBuilder sb = new StringBuilder(LeafSchemaNodeImpl.class.getSimpleName()); sb.append("["); sb.append("qname=" + qname); sb.append(", path=" + path);