- public TypeDefinitionBuilderImpl(TypeDefinitionBuilder tdb, QName qname) {
- super(tdb.getModuleName(), tdb.getLine(), qname);
- 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();
+ public TypeDefinitionBuilderImpl(final String moduleName, final int line, final QName qname, final SchemaPath path, final ExtendedType base) {
+ super(moduleName, line, base.getQName());
+ this.schemaPath = Preconditions.checkNotNull(path, "Schema Path must not be null");
+
+ this.type = base.getBaseType();
+ this.description = base.getDescription();
+ this.reference = base.getReference();
+ this.status = base.getStatus();
+ this.units = base.getUnits();
+ this.defaultValue = base.getDefaultValue();
+
+ this.addedByUses = base.isAddedByUses();
+ this.ranges = base.getRangeConstraints();
+ this.lengths = base.getLengthConstraints();
+ this.patterns = base.getPatternConstraints();
+ this.fractionDigits = base.getFractionDigits();
+ this.unknownNodes.addAll(base.getUnknownSchemaNodes());