Skip to content

Commit eff06d7

Browse files
committed
ST6RI-895 Removed definition validation checks for item and part usages.
1 parent 790cd24 commit eff06d7

1 file changed

Lines changed: 61 additions & 72 deletions

File tree

org.omg.sysml.xtext/src/org/omg/sysml/xtext/validation/SysMLValidator.xtend

Lines changed: 61 additions & 72 deletions
Original file line numberDiff line numberDiff line change
@@ -30,111 +30,107 @@ import org.eclipse.emf.ecore.EReference
3030
import org.eclipse.emf.ecore.EStructuralFeature
3131
import org.eclipse.xtext.validation.Check
3232
import org.omg.kerml.xtext.validation.KerMLValidator
33+
import org.omg.sysml.lang.sysml.AcceptActionUsage
34+
import org.omg.sysml.lang.sysml.ActionDefinition
3335
import org.omg.sysml.lang.sysml.ActionUsage
36+
import org.omg.sysml.lang.sysml.ActorMembership
3437
import org.omg.sysml.lang.sysml.AllocationDefinition
3538
import org.omg.sysml.lang.sysml.AllocationUsage
3639
import org.omg.sysml.lang.sysml.AnalysisCaseDefinition
3740
import org.omg.sysml.lang.sysml.AnalysisCaseUsage
41+
import org.omg.sysml.lang.sysml.AssertConstraintUsage
42+
import org.omg.sysml.lang.sysml.AssignmentActionUsage
3843
import org.omg.sysml.lang.sysml.Association
44+
import org.omg.sysml.lang.sysml.AttributeDefinition
3945
import org.omg.sysml.lang.sysml.AttributeUsage
4046
import org.omg.sysml.lang.sysml.Behavior
4147
import org.omg.sysml.lang.sysml.CalculationUsage
4248
import org.omg.sysml.lang.sysml.CaseDefinition
4349
import org.omg.sysml.lang.sysml.CaseUsage
50+
import org.omg.sysml.lang.sysml.Classifier
51+
import org.omg.sysml.lang.sysml.ConjugatedPortDefinition
4452
import org.omg.sysml.lang.sysml.ConnectionUsage
4553
import org.omg.sysml.lang.sysml.ConstraintUsage
54+
import org.omg.sysml.lang.sysml.ControlNode
4655
import org.omg.sysml.lang.sysml.DataType
56+
import org.omg.sysml.lang.sysml.DecisionNode
4757
import org.omg.sysml.lang.sysml.Definition
4858
import org.omg.sysml.lang.sysml.EnumerationDefinition
4959
import org.omg.sysml.lang.sysml.EnumerationUsage
60+
import org.omg.sysml.lang.sysml.EventOccurrenceUsage
61+
import org.omg.sysml.lang.sysml.ExhibitStateUsage
62+
import org.omg.sysml.lang.sysml.Expose
63+
import org.omg.sysml.lang.sysml.Expression
5064
import org.omg.sysml.lang.sysml.Feature
65+
import org.omg.sysml.lang.sysml.FeatureChainExpression
5166
import org.omg.sysml.lang.sysml.FeatureMembership
67+
import org.omg.sysml.lang.sysml.FeatureReferenceExpression
68+
import org.omg.sysml.lang.sysml.FlowDefinition
69+
import org.omg.sysml.lang.sysml.FlowUsage
70+
import org.omg.sysml.lang.sysml.ForLoopActionUsage
71+
import org.omg.sysml.lang.sysml.ForkNode
72+
import org.omg.sysml.lang.sysml.FramedConcernMembership
5273
import org.omg.sysml.lang.sysml.Function
74+
import org.omg.sysml.lang.sysml.IfActionUsage
75+
import org.omg.sysml.lang.sysml.IncludeUseCaseUsage
76+
import org.omg.sysml.lang.sysml.Interaction
5377
import org.omg.sysml.lang.sysml.InterfaceDefinition
5478
import org.omg.sysml.lang.sysml.InterfaceUsage
55-
import org.omg.sysml.lang.sysml.ItemUsage
79+
import org.omg.sysml.lang.sysml.JoinNode
80+
import org.omg.sysml.lang.sysml.MergeNode
81+
import org.omg.sysml.lang.sysml.Metaclass
82+
import org.omg.sysml.lang.sysml.MetadataUsage
83+
import org.omg.sysml.lang.sysml.Namespace
5684
import org.omg.sysml.lang.sysml.ObjectiveMembership
5785
import org.omg.sysml.lang.sysml.OccurrenceDefinition
5886
import org.omg.sysml.lang.sysml.OccurrenceUsage
87+
import org.omg.sysml.lang.sysml.OperatorExpression
5988
import org.omg.sysml.lang.sysml.ParameterMembership
60-
import org.omg.sysml.lang.sysml.PartDefinition
61-
import org.omg.sysml.lang.sysml.PartUsage
89+
import org.omg.sysml.lang.sysml.PerformActionUsage
6290
import org.omg.sysml.lang.sysml.PortDefinition
6391
import org.omg.sysml.lang.sysml.PortUsage
6492
import org.omg.sysml.lang.sysml.Predicate
93+
import org.omg.sysml.lang.sysml.ReferenceUsage
94+
import org.omg.sysml.lang.sysml.Relationship
6595
import org.omg.sysml.lang.sysml.RenderingDefinition
6696
import org.omg.sysml.lang.sysml.RenderingUsage
97+
import org.omg.sysml.lang.sysml.RequirementConstraintKind
98+
import org.omg.sysml.lang.sysml.RequirementConstraintMembership
6799
import org.omg.sysml.lang.sysml.RequirementDefinition
68100
import org.omg.sysml.lang.sysml.RequirementUsage
69101
import org.omg.sysml.lang.sysml.RequirementVerificationMembership
102+
import org.omg.sysml.lang.sysml.SatisfyRequirementUsage
103+
import org.omg.sysml.lang.sysml.SendActionUsage
104+
import org.omg.sysml.lang.sysml.StakeholderMembership
105+
import org.omg.sysml.lang.sysml.StateDefinition
106+
import org.omg.sysml.lang.sysml.StateSubactionKind
107+
import org.omg.sysml.lang.sysml.StateSubactionMembership
70108
import org.omg.sysml.lang.sysml.StateUsage
71109
import org.omg.sysml.lang.sysml.Step
72-
import org.omg.sysml.lang.sysml.Structure
73110
import org.omg.sysml.lang.sysml.SubjectMembership
111+
import org.omg.sysml.lang.sysml.Succession
74112
import org.omg.sysml.lang.sysml.SysMLPackage
113+
import org.omg.sysml.lang.sysml.TransitionFeatureKind
114+
import org.omg.sysml.lang.sysml.TransitionFeatureMembership
115+
import org.omg.sysml.lang.sysml.TransitionUsage
116+
import org.omg.sysml.lang.sysml.TriggerInvocationExpression
117+
import org.omg.sysml.lang.sysml.TriggerKind
118+
import org.omg.sysml.lang.sysml.Type
75119
import org.omg.sysml.lang.sysml.Usage
120+
import org.omg.sysml.lang.sysml.UseCaseDefinition
121+
import org.omg.sysml.lang.sysml.UseCaseUsage
76122
import org.omg.sysml.lang.sysml.VariantMembership
77123
import org.omg.sysml.lang.sysml.VerificationCaseDefinition
78124
import org.omg.sysml.lang.sysml.VerificationCaseUsage
79125
import org.omg.sysml.lang.sysml.ViewDefinition
126+
import org.omg.sysml.lang.sysml.ViewRenderingMembership
80127
import org.omg.sysml.lang.sysml.ViewUsage
81128
import org.omg.sysml.lang.sysml.ViewpointDefinition
82129
import org.omg.sysml.lang.sysml.ViewpointUsage
83-
import org.omg.sysml.lang.sysml.TransitionUsage
84-
import org.omg.sysml.lang.sysml.Succession
85-
import org.omg.sysml.lang.sysml.StateDefinition
86-
import org.omg.sysml.lang.sysml.Type
87-
import org.omg.sysml.lang.sysml.StateSubactionKind
88-
import org.omg.sysml.lang.sysml.UseCaseUsage
89-
import org.omg.sysml.lang.sysml.UseCaseDefinition
90-
import org.omg.sysml.lang.sysml.MetadataUsage
91-
import org.omg.sysml.lang.sysml.Metaclass
92-
import org.omg.sysml.lang.sysml.Interaction
93-
import org.omg.sysml.lang.sysml.SendActionUsage
94-
import org.omg.sysml.lang.sysml.FeatureReferenceExpression
95-
import org.omg.sysml.lang.sysml.FeatureChainExpression
96-
import org.omg.sysml.lang.sysml.OperatorExpression
97-
import org.omg.sysml.lang.sysml.util.SysMLLibraryUtil
98-
import org.omg.sysml.lang.sysml.Expression
99-
import org.omg.sysml.lang.sysml.EventOccurrenceUsage
100-
import org.omg.sysml.lang.sysml.ConjugatedPortDefinition
101-
import org.omg.sysml.lang.sysml.AssignmentActionUsage
102-
import org.omg.sysml.lang.sysml.TriggerInvocationExpression
103-
import org.omg.sysml.lang.sysml.ControlNode
104-
import org.omg.sysml.lang.sysml.DecisionNode
105-
import org.omg.sysml.lang.sysml.ForkNode
106-
import org.omg.sysml.lang.sysml.JoinNode
107-
import org.omg.sysml.lang.sysml.MergeNode
108-
import org.omg.sysml.lang.sysml.PerformActionUsage
109-
import org.omg.sysml.lang.sysml.ExhibitStateUsage
110-
import org.omg.sysml.lang.sysml.StateSubactionMembership
111-
import org.omg.sysml.lang.sysml.TransitionFeatureMembership
112-
import org.omg.sysml.lang.sysml.AssertConstraintUsage
113-
import org.omg.sysml.lang.sysml.FramedConcernMembership
114-
import org.omg.sysml.lang.sysml.RequirementConstraintMembership
115-
import org.omg.sysml.lang.sysml.SatisfyRequirementUsage
116-
import org.omg.sysml.lang.sysml.StakeholderMembership
117-
import org.omg.sysml.lang.sysml.AcceptActionUsage
118-
import org.omg.sysml.lang.sysml.IncludeUseCaseUsage
119-
import org.omg.sysml.lang.sysml.Expose
120-
import org.omg.sysml.lang.sysml.ViewRenderingMembership
121-
import org.omg.sysml.lang.sysml.AttributeDefinition
122-
import org.omg.sysml.lang.sysml.Namespace
123-
import org.omg.sysml.lang.sysml.ActionDefinition
124-
import org.omg.sysml.lang.sysml.TransitionFeatureKind
125-
import org.omg.sysml.lang.sysml.ActorMembership
126-
import org.omg.sysml.lang.sysml.RequirementConstraintKind
127-
import org.omg.sysml.lang.sysml.ForLoopActionUsage
128-
import org.omg.sysml.lang.sysml.ReferenceUsage
129-
import org.omg.sysml.lang.sysml.IfActionUsage
130130
import org.omg.sysml.lang.sysml.WhileLoopActionUsage
131-
import org.omg.sysml.lang.sysml.TriggerKind
132-
import org.omg.sysml.lang.sysml.FlowDefinition
133-
import org.omg.sysml.lang.sysml.FlowUsage
134-
import org.omg.sysml.lang.sysml.Relationship
131+
import org.omg.sysml.lang.sysml.util.SysMLLibraryUtil
135132
import org.omg.sysml.util.FeatureUtil
136133
import org.omg.sysml.util.UsageUtil
137-
import org.omg.sysml.lang.sysml.Classifier
138134

139135
/**
140136
* This class contains custom validation rules.
@@ -181,7 +177,7 @@ class SysMLValidator extends KerMLValidator {
181177
public static val INVALID_EVENT_OCCURRENCE_USAGE_REFERENCE_MSG = "Must reference an occurrence."
182178

183179
public static val INVALID_OCCURRENCE_USAGE_TYPE = "validateOccurrenceUsageType_"
184-
public static val INVALID_OCCURRENCE_USAGE_TYPE_MSG = "An occurrence must be typed by occurrence definitions."
180+
public static val INVALID_OCCURRENCE_USAGE_TYPE_MSG = "An occurrence, item or part must be typed by occurrence definitions."
185181
public static val INVALID_OCCURRENCE_USAGE_INDIVIDUAL_DEFINITION = "validateOccurrenceUsageIndividualDefinition"
186182
public static val INVALID_OCCURRENCE_USAGE_INDIVIDUAL_DEFINITION_MSG = "At most one individual definition is allowed."
187183
public static val INVALID_OCCURRENCE_USAGE_INDIVIDUAL_USAGE = "validateOccurrenceUsageIndividualUsage"
@@ -580,7 +576,7 @@ class SysMLValidator extends KerMLValidator {
580576
@Check
581577
def checkOccurrenceUsage(OccurrenceUsage usg) {
582578
// All types must be Classes
583-
if (!(usg instanceof ItemUsage || usg instanceof PortUsage || usg instanceof Step))
579+
if (!(usg instanceof PortUsage || usg instanceof ConnectionUsage || usg instanceof MetadataUsage || usg instanceof Step))
584580
checkAllTypes(usg, org.omg.sysml.lang.sysml.Class, INVALID_OCCURRENCE_USAGE_TYPE_MSG, SysMLPackage.eINSTANCE.occurrenceUsage_OccurrenceDefinition, INVALID_OCCURRENCE_USAGE_TYPE)
585581

586582
// validateOccurrenceUsageIndividualDefinition
@@ -607,20 +603,13 @@ class SysMLValidator extends KerMLValidator {
607603

608604
}
609605

610-
@Check
611-
def checkItemUsage(ItemUsage iu) {
612-
// All types must be Structures
613-
if (!(iu instanceof PartUsage || iu instanceof PortUsage || iu instanceof MetadataUsage))
614-
checkAllTypes(iu, Structure, INVALID_ITEM_USAGE_TYPE_MSG, SysMLPackage.eINSTANCE.itemUsage_ItemDefinition, INVALID_ITEM_USAGE_TYPE)
615-
}
606+
// @Check
607+
// def checkItemUsage(ItemUsage iu) {
608+
// }
616609

617-
@Check
618-
def checkPartUsage(PartUsage pu){
619-
if (!(pu instanceof ConnectionUsage))
620-
if (checkAllTypes(pu, Structure, INVALID_PART_USAGE_TYPE_MSG, SysMLPackage.eINSTANCE.itemUsage_ItemDefinition, INVALID_PART_USAGE_TYPE))
621-
// validatePartUsagePartDefinition
622-
checkAtLeastOneType(pu, PartDefinition, INVALID_PART_USAGE_PART_DEFINITION_MSG, SysMLPackage.eINSTANCE.partUsage_PartDefinition, INVALID_PART_USAGE_PART_DEFINITION)
623-
}
610+
// @Check
611+
// def checkPartUsage(PartUsage pu){
612+
// }
624613

625614
@Check
626615
def checkConjugatedPortDefinition(ConjugatedPortDefinition cpd) {
@@ -868,7 +857,7 @@ class SysMLValidator extends KerMLValidator {
868857
if ((featureMembership instanceof StateSubactionMembership ||
869858
featureMembership instanceof TransitionFeatureMembership) &&
870859
usg.payloadArgument === null) {
871-
error(org.omg.sysml.xtext.validation.SysMLValidator.INVALID_SEND_ACTION_USAGE_PAYLOAD_ARGUMENT_MSG, usg, null, org.omg.sysml.xtext.validation.SysMLValidator.INVALID_SEND_ACTION_USAGE_PAYLOAD_ARGUMENT_MSG)
860+
error(SysMLValidator.INVALID_SEND_ACTION_USAGE_PAYLOAD_ARGUMENT_MSG, usg, null, SysMLValidator.INVALID_SEND_ACTION_USAGE_PAYLOAD_ARGUMENT_MSG)
872861
}
873862
}
874863

0 commit comments

Comments
 (0)