this.elementCountConstraint = elementCountConstraint;
}
- AbstractNonEmptyLeafListEffectiveStatement(final AbstractNonEmptyLeafListEffectiveStatement original,
- final SchemaPath path, final int flags) {
- super(original, path, flags);
- this.original = original.original;
- this.elementCountConstraint = original.elementCountConstraint;
+ AbstractNonEmptyLeafListEffectiveStatement(final AbstractNonEmptyLeafListEffectiveStatement originalEffecive,
+ final LeafListSchemaNode original, final SchemaPath path, final int flags) {
+ super(originalEffecive, path, flags);
+ this.elementCountConstraint = originalEffecive.elementCountConstraint;
+ this.original = original;
+ }
+
+ AbstractNonEmptyLeafListEffectiveStatement(final EmptyLeafListEffectiveStatement originalEffective,
+ final LeafListSchemaNode original, final SchemaPath path, final int flags) {
+ super(originalEffective, path, flags);
+ this.elementCountConstraint = null;
+ this.original = original;
}
@Override
public LeafListEffectiveStatement copyEffective(final Current<QName, LeafListStatement> stmt,
final LeafListEffectiveStatement original) {
final int flags = computeFlags(stmt, original.effectiveSubstatements());
- if (original instanceof EmptyLeafListEffectiveStatement) {
- return new EmptyLeafListEffectiveStatement((EmptyLeafListEffectiveStatement) original,
- stmt.wrapSchemaPath(), flags);
- } else if (original instanceof SlimLeafListEffectiveStatement) {
- return new SlimLeafListEffectiveStatement((SlimLeafListEffectiveStatement) original, stmt.wrapSchemaPath(),
- flags);
- } else if (original instanceof RegularLeafListEffectiveStatement) {
+ if (original instanceof RegularLeafListEffectiveStatement) {
return new RegularLeafListEffectiveStatement((RegularLeafListEffectiveStatement) original,
- stmt.wrapSchemaPath(), flags);
+ (LeafListSchemaNode) stmt.original(), stmt.wrapSchemaPath(), flags);
+ } else if (original instanceof SlimLeafListEffectiveStatement) {
+ return new SlimLeafListEffectiveStatement((SlimLeafListEffectiveStatement) original,
+ (LeafListSchemaNode) stmt.original(), stmt.wrapSchemaPath(), flags);
+ } else if (original instanceof EmptyLeafListEffectiveStatement) {
+ // Promote to slim
+ return new SlimLeafListEffectiveStatement((EmptyLeafListEffectiveStatement) original,
+ (LeafListSchemaNode) stmt.original(), stmt.wrapSchemaPath(), flags);
} else {
// Safe fallback
return super.copyEffective(stmt, original);
this.defaults = requireNonNull(defaults);
}
- RegularLeafListEffectiveStatement(final RegularLeafListEffectiveStatement original, final SchemaPath path,
- final int flags) {
- super(original, path, flags);
- this.defaults = original.defaults;
+ RegularLeafListEffectiveStatement(final RegularLeafListEffectiveStatement originalEffective,
+ final LeafListSchemaNode original, final SchemaPath path, final int flags) {
+ super(originalEffective, original, path, flags);
+ this.defaults = originalEffective.defaults;
}
@Override
super(declared, path, flags, substatements, original, elementCountConstraint);
}
- SlimLeafListEffectiveStatement(final SlimLeafListEffectiveStatement original, final SchemaPath path,
- final int flags) {
- super(original, path, flags);
+ SlimLeafListEffectiveStatement(final SlimLeafListEffectiveStatement originalEffective,
+ final LeafListSchemaNode original, final SchemaPath path, final int flags) {
+ super(originalEffective, original, path, flags);
+ }
+
+ SlimLeafListEffectiveStatement(final EmptyLeafListEffectiveStatement originalEffective,
+ final LeafListSchemaNode original, final SchemaPath path, final int flags) {
+ super(originalEffective, original, path, flags);
}
@Override