X-Git-Url: https://git.opendaylight.org/gerrit/gitweb?p=controller.git;a=blobdiff_plain;f=opendaylight%2Fsal%2Fyang-prototype%2Fcode-generator%2Fyang-model-parser-impl%2Fsrc%2Fmain%2Fjava%2Forg%2Fopendaylight%2Fcontroller%2Fyang%2Fparser%2Fbuilder%2Fimpl%2FTypeDefinitionBuilderImpl.java;h=7ff78477637ef2757fc75c28ccd59167d7c5baaa;hp=d60dbbb615c71449bd74adfb3e9f3c391b2eb027;hb=0df356fd6dd1e24f82a4afaa6c824517d354fb20;hpb=aa16124c5eff863f9d75a7514910008d34f3f40c diff --git a/opendaylight/sal/yang-prototype/code-generator/yang-model-parser-impl/src/main/java/org/opendaylight/controller/yang/parser/builder/impl/TypeDefinitionBuilderImpl.java b/opendaylight/sal/yang-prototype/code-generator/yang-model-parser-impl/src/main/java/org/opendaylight/controller/yang/parser/builder/impl/TypeDefinitionBuilderImpl.java index d60dbbb615..7ff7847763 100644 --- a/opendaylight/sal/yang-prototype/code-generator/yang-model-parser-impl/src/main/java/org/opendaylight/controller/yang/parser/builder/impl/TypeDefinitionBuilderImpl.java +++ b/opendaylight/sal/yang-prototype/code-generator/yang-model-parser-impl/src/main/java/org/opendaylight/controller/yang/parser/builder/impl/TypeDefinitionBuilderImpl.java @@ -23,15 +23,11 @@ import org.opendaylight.controller.yang.model.util.ExtendedType; import org.opendaylight.controller.yang.model.util.UnknownType; import org.opendaylight.controller.yang.parser.builder.api.AbstractTypeAwareBuilder; import org.opendaylight.controller.yang.parser.builder.api.TypeDefinitionBuilder; +import org.opendaylight.controller.yang.parser.util.Comparators; import org.opendaylight.controller.yang.parser.util.YangParseException; -public final class TypeDefinitionBuilderImpl extends AbstractTypeAwareBuilder - implements TypeDefinitionBuilder { - private final int line; - private final QName qname; +public final class TypeDefinitionBuilderImpl extends AbstractTypeAwareBuilder implements TypeDefinitionBuilder { private SchemaPath schemaPath; - - private final List addedUnknownNodes = new ArrayList(); private List ranges = Collections.emptyList(); private List lengths = Collections.emptyList(); private List patterns = Collections.emptyList(); @@ -42,10 +38,34 @@ public final class TypeDefinitionBuilderImpl extends AbstractTypeAwareBuilder private Status status = Status.CURRENT; private String units; private Object defaultValue; + private boolean addedByUses; public TypeDefinitionBuilderImpl(final QName qname, final int line) { - this.qname = qname; - this.line = line; + super(line, qname); + } + + public TypeDefinitionBuilderImpl(TypeDefinitionBuilder tdb) { + super(tdb.getLine(), tdb.getQName()); + schemaPath = tdb.getPath(); + + type = tdb.getType(); + typedef = tdb.getTypedef(); + + unknownNodes = tdb.getUnknownNodes(); + for (UnknownSchemaNodeBuilder usnb : tdb.getUnknownNodeBuilders()) { + addedUnknownNodes.add(usnb); + } + ranges = tdb.getRanges(); + lengths = tdb.getLengths(); + patterns = tdb.getPatterns(); + fractionDigits = tdb.getFractionDigits(); + + description = tdb.getDescription(); + reference = tdb.getReference(); + status = tdb.getStatus(); + units = tdb.getUnits(); + defaultValue = tdb.getDefaultValue(); + addedByUses = tdb.isAddedByUses(); } @Override @@ -53,19 +73,18 @@ public final class TypeDefinitionBuilderImpl extends AbstractTypeAwareBuilder TypeDefinition result = null; ExtendedType.Builder typeBuilder = null; if ((type == null || type instanceof UnknownType) && typedef == null) { - throw new YangParseException("Unresolved type: '" - + qname.getLocalName() + "'."); + throw new YangParseException("Unresolved type: '" + qname.getLocalName() + "'."); } if (type == null || type instanceof UnknownType) { type = typedef.build(); } - typeBuilder = new ExtendedType.Builder(qname, type, description, - reference, schemaPath); + typeBuilder = new ExtendedType.Builder(qname, type, description, reference, schemaPath); typeBuilder.status(status); typeBuilder.units(units); typeBuilder.defaultValue(defaultValue); + typeBuilder.addedByUses(addedByUses); typeBuilder.ranges(ranges); typeBuilder.lengths(lengths); @@ -73,25 +92,18 @@ public final class TypeDefinitionBuilderImpl extends AbstractTypeAwareBuilder typeBuilder.fractionDigits(fractionDigits); // 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()); + } + Collections.sort(unknownNodes, Comparators.SCHEMA_NODE_COMP); } typeBuilder.unknownSchemaNodes(unknownNodes); result = typeBuilder.build(); return result; } - @Override - public int getLine() { - return line; - } - - @Override - public QName getQName() { - return qname; - } - @Override public SchemaPath getPath() { return schemaPath; @@ -134,6 +146,16 @@ public final class TypeDefinitionBuilderImpl extends AbstractTypeAwareBuilder } } + @Override + public boolean isAddedByUses() { + return addedByUses; + } + + @Override + public void setAddedByUses(final boolean addedByUses) { + this.addedByUses = addedByUses; + } + @Override public String getUnits() { return units; @@ -155,13 +177,8 @@ public final class TypeDefinitionBuilderImpl extends AbstractTypeAwareBuilder } @Override - public List getUnknownNodes() { - return addedUnknownNodes; - } - - @Override - public void addUnknownSchemaNode(final UnknownSchemaNodeBuilder unknownNode) { - addedUnknownNodes.add(unknownNode); + public List getUnknownNodes() { + return Collections.emptyList(); } @Override @@ -212,8 +229,7 @@ public final class TypeDefinitionBuilderImpl extends AbstractTypeAwareBuilder @Override public String toString() { - final StringBuilder result = new StringBuilder("TypedefBuilder[" - + qname.getLocalName()); + final StringBuilder result = new StringBuilder("TypedefBuilder[" + qname.getLocalName()); result.append(", type="); if (type == null) { result.append(typedef);