*/
package org.opendaylight.yangtools.yang.parser.builder.impl;
-import java.util.ArrayList;
import java.util.Collections;
import java.util.List;
import org.opendaylight.yangtools.yang.common.QName;
-import org.opendaylight.yangtools.yang.model.api.SchemaPath;
-import org.opendaylight.yangtools.yang.model.api.Status;
-import org.opendaylight.yangtools.yang.model.api.TypeDefinition;
-import org.opendaylight.yangtools.yang.model.api.UnknownSchemaNode;
-import org.opendaylight.yangtools.yang.model.api.type.LengthConstraint;
-import org.opendaylight.yangtools.yang.model.api.type.PatternConstraint;
-import org.opendaylight.yangtools.yang.model.api.type.RangeConstraint;
+import org.opendaylight.yangtools.yang.model.api.*;
+import org.opendaylight.yangtools.yang.model.api.type.*;
import org.opendaylight.yangtools.yang.model.util.ExtendedType;
import org.opendaylight.yangtools.yang.model.util.UnknownType;
-import org.opendaylight.yangtools.yang.parser.builder.api.AbstractBuilder;
import org.opendaylight.yangtools.yang.parser.builder.api.AbstractTypeAwareBuilder;
import org.opendaylight.yangtools.yang.parser.builder.api.TypeDefinitionBuilder;
import org.opendaylight.yangtools.yang.parser.util.Comparators;
private Object defaultValue;
private boolean addedByUses;
- public TypeDefinitionBuilderImpl(final String moduleName, final int line, final QName qname) {
+ public TypeDefinitionBuilderImpl(final String moduleName, final int line, final QName qname, final SchemaPath path) {
super(moduleName, line, qname);
+ this.schemaPath = path;
+ }
+
+ public TypeDefinitionBuilderImpl(final String moduleName, final int line, final QName qname, final SchemaPath path, final ExtendedType base) {
+ super(moduleName, line, base.getQName());
+ this.schemaPath = path;
+
+ this.type = base.getBaseType();
+ this.description = base.getDescription();
+ this.reference = base.getReference();
+ this.status = base.getStatus();
+ this.units = base.getUnits();
+ this.defaultValue = base.getDefaultValue();
+
+ ExtendedType ext = base;
+ this.addedByUses = ext.isAddedByUses();
+ this.ranges = ext.getRangeConstraints();
+ this.lengths = ext.getLengthConstraints();
+ this.patterns = ext.getPatternConstraints();
+ this.fractionDigits = ext.getFractionDigits();
+ this.unknownNodes.addAll(base.getUnknownSchemaNodes());
}
@Override
}
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);
typeBuilder.patterns(patterns);
typeBuilder.fractionDigits(fractionDigits);
// UNKNOWN NODES
- if (unknownNodes == null) {
- unknownNodes = new ArrayList<UnknownSchemaNode>();
- for (UnknownSchemaNodeBuilder b : addedUnknownNodes) {
- unknownNodes.add(b.build());
- }
- Collections.sort(unknownNodes, Comparators.SCHEMA_NODE_COMP);
+ 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 void setPath(final SchemaPath schemaPath) {
- this.schemaPath = schemaPath;
+ public void setPath(SchemaPath path) {
+ this.schemaPath = path;
}
@Override
}
@Override
- public List<UnknownSchemaNode> getUnknownNodes() {
+ public List<UnknownSchemaNodeBuilder> getUnknownNodes() {
return Collections.emptyList();
}