-
- private final String deviatedDefault;
- private final Integer deviatedMaxElements;
- private final Integer deviatedMinElements;
- private final ImmutableSet<MustDefinition> deviatedMustDefinitions;
- private final TypeDefinition<?> deviatedType;
- private final ImmutableList<UniqueConstraint> deviatedUniqueConstraints;
- private final String deviatedUnits;
-
- private final byte deviatedConfig;
- private final byte deviatedMandatory;
-
- DeviateEffectiveStatementImpl(final StmtContext<DeviateKind, DeviateStatement, ?> ctx) {
- super(ctx);
-
- deviatedConfig = OptionalBoolean.ofNullable(findFirstEffectiveSubstatementArgument(
- ConfigEffectiveStatement.class).orElse(null));
- deviatedMandatory = OptionalBoolean.ofNullable(findFirstEffectiveSubstatementArgument(
- MandatoryEffectiveStatement.class).orElse(null));
- deviatedDefault = findFirstEffectiveSubstatementArgument(DefaultEffectiveStatement.class).orElse(null);
- deviatedMaxElements = findFirstEffectiveSubstatementArgument(MaxElementsEffectiveStatement.class)
- // FIXME: this does not handle 'unbounded'
- .map(Integer::valueOf).orElse(null);
- deviatedMinElements = findFirstEffectiveSubstatementArgument(MinElementsEffectiveStatement.class).orElse(null);
- deviatedType = findFirstEffectiveSubstatement(TypeEffectiveStatement.class)
- .map(TypeEffectiveStatement::getTypeDefinition).orElse(null);
- deviatedUnits = findFirstEffectiveSubstatementArgument(UnitsEffectiveStatement.class).orElse(null);
-
- deviatedMustDefinitions = ImmutableSet.copyOf(allSubstatementsOfType(MustDefinition.class));
- deviatedUniqueConstraints = ImmutableList.copyOf(allSubstatementsOfType(UniqueConstraint.class));
+ DeviateEffectiveStatementImpl(final DeviateStatement declared,
+ final ImmutableList<? extends EffectiveStatement<?, ?>> substatements) {
+ super(declared, substatements);