Skip to content

Commit ae0a1a8

Browse files
committed
ST6RI-856 Implemented validation that a variation def/usage is abstract.
1 parent a32d79c commit ae0a1a8

1 file changed

Lines changed: 10 additions & 1 deletion

File tree

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

Lines changed: 10 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
/*****************************************************************************
22
* SysML 2 Pilot Implementation
33
* Copyright (c) 2020 California Institute of Technology/Jet Propulsion Laboratory
4-
* Copyright (c) 2020-2023 Model Driven Solutions, Inc.
4+
* Copyright (c) 2020-2025 Model Driven Solutions, Inc.
55
*
66
* This program is free software: you can redistribute it and/or modify
77
* it under the terms of the GNU Lesser General Public License as published by
@@ -143,11 +143,15 @@ import org.omg.sysml.lang.sysml.FlowUsage
143143
*/
144144
class SysMLValidator extends KerMLValidator {
145145

146+
public static val INVALID_DEFINITION_VARIATION_IS_ABSTRACT = "validateDefinitionVariationIsAbstract"
147+
public static val INVALID_DEFINITION_VARIATION_IS_ABSTRACT_MSG = "A variation must be abstract."
146148
public static val INVALID_DEFINITION_VARIATION_MEMBERSHIP = "validateDefinitionVariationMembership"
147149
public static val INVALID_DEFINITION_VARIATION_MEMBERSHIP_MSG = "An owned usage of a variation must be a variant."
148150
public static val INVALID_DEFINITION_VARIATION_SPECIALIZATION = "validateDefinitionVariationSpecialization"
149151
public static val INVALID_DEFINITION_VARIATION_SPECIALIZATION_MSG = "A variation must not specialize another variation."
150152

153+
public static val INVALID_USAGE_VARIATION_IS_ABSTRACT = "validateUsageVariationIsAbstract"
154+
public static val INVALID_USAGE_VARIATION_IS_ABSTRACT_MSG = "A variation must be abstract."
151155
public static val INVALID_USAGE_VARIATION_MEMBERSHIP = "validateUsageVariationMembership"
152156
public static val INVALID_USAGE_VARIATION_MEMBERSHIP_MSG = "An owned usage of a variation must be a variant."
153157
public static val INVALID_USAGE_VARIATION_SPECIALIZATION = "validateUsageVariationSpecialization"
@@ -476,6 +480,11 @@ class SysMLValidator extends KerMLValidator {
476480
// validateUsageIsReferential is satisfied automatically
477481

478482
if (usage.isVariation) {
483+
// validateUsageVariationIsAbstract
484+
if (!usage.isAbstract) {
485+
error(INVALID_USAGE_VARIATION_IS_ABSTRACT_MSG, usage, null, INVALID_USAGE_VARIATION_IS_ABSTRACT)
486+
}
487+
479488
// validateUsageVariationOwnedFeatureMembership
480489
for (mem: usage.ownedFeatureMembership) {
481490
// NOTE: Need to allow parameters and objectives because they are currently physically inserted by transform implementation.

0 commit comments

Comments
 (0)