This pull request implements validation constraints that are in the KerML 1.0 Beta 1 abstract syntax, but which were not previously implemented in the pilot implementation. In addition, the org.omg.kerml.xtext.KerMLValidator.xtend class has been reorganized so that there is one check method per metclass, with each validation constraint for the metaclass checked within that method. Further, the normative constraint names are now used as the error codes for the corresponding validation checks.
The following newly implemented constraints could potentially result in errors being flagged in models where they had not been before.
validateSpecializationSpecificNotConjugated
validateTypeAtMostOneConjugator
validateTypeDifferencingTypesNotSelf
validateTypeIntersectingTypesNotSelf
validateTypeUnioningTypesNotSelf
validateFeatureChainingFeaturesNotSelf
validateDataTypeSpecialization
validateClassSpecialization
validateAssociationBinarySpecialization
validateBindingConnectorIsBinary
validateConnectorBinarySpecialization
validateExpressionResultParameterMembership
validateFunctionResultParameterMembership
validateMultiplicityRangeBoundResultTypes
The following constraints are automatically satisfied by models parsed from the textual notation. However, they have been implemented anyway, because it is possible that they might be violated due to modifications made directly on the abstract syntax representation of a model.
validateElementIsImpliedIncluded
validateClassifierMultiplicityDomain
validateFeatureMultiplicityDomain
validateParameterMembershipOwningType
validateResultExpressionMembershipOwningType
validateReturnParameterMembershipOwningType
validateItemFlowItemFeature
validateItemFlowEndNestedFeature
validateItemFlowEndOwningType
There are also validation checks that are implemented in the pilot implementation but are not currently in the Beta 1 specification. Certain of these have been proposed to the KerML Finalization Task Force for inclusion in the final specification (see KERML-20). They are identified in the validator code with TODO: Add... comments (meaning to be "added" to the specification).
This pull request implements validation constraints that are in the KerML 1.0 Beta 1 abstract syntax, but which were not previously implemented in the pilot implementation. In addition, the
org.omg.kerml.xtext.KerMLValidator.xtend
class has been reorganized so that there is one check method per metclass, with each validation constraint for the metaclass checked within that method. Further, the normative constraint names are now used as the error codes for the corresponding validation checks.The following newly implemented constraints could potentially result in errors being flagged in models where they had not been before.
validateSpecializationSpecificNotConjugated
validateTypeAtMostOneConjugator
validateTypeDifferencingTypesNotSelf
validateTypeIntersectingTypesNotSelf
validateTypeUnioningTypesNotSelf
validateFeatureChainingFeaturesNotSelf
validateDataTypeSpecialization
validateClassSpecialization
validateAssociationBinarySpecialization
validateBindingConnectorIsBinary
validateConnectorBinarySpecialization
validateExpressionResultParameterMembership
validateFunctionResultParameterMembership
validateMultiplicityRangeBoundResultTypes
The following constraints are automatically satisfied by models parsed from the textual notation. However, they have been implemented anyway, because it is possible that they might be violated due to modifications made directly on the abstract syntax representation of a model.
validateElementIsImpliedIncluded
validateClassifierMultiplicityDomain
validateFeatureMultiplicityDomain
validateParameterMembershipOwningType
validateResultExpressionMembershipOwningType
validateReturnParameterMembershipOwningType
validateItemFlowItemFeature
validateItemFlowEndNestedFeature
validateItemFlowEndOwningType
There are also validation checks that are implemented in the pilot implementation but are not currently in the Beta 1 specification. Certain of these have been proposed to the KerML Finalization Task Force for inclusion in the final specification (see KERML-20). They are identified in the validator code with
TODO: Add...
comments (meaning to be "added" to the specification).