Subsetting SysML

class Subsetting

Implementation of Subsetting defined in the KerML specification.

Specification:

Subsetting is Specialization in which the specific and general Types are Features. This means all values of the subsetting_feature (on instances of its domain, i.e., the intersection of its featuring_types) are values of the subsetted_feature on instances of its domain. To support this the domain of the subsetting_feature must be the same or specialize (at least indirectly) the domain of the subsetted_feature (via Specialization), and the co-domain (intersection of the types) of the subsetting_feature must specialize the co-domain of the subsetted_feature.

For language description, see section 7.3.4.4 of the KerML specification. For more details on the model, see section 8.3.3.3.11 of the KerML specification.

Subsetting Subsetting syside.Subsetting Specialization Specialization syside.Specialization Specialization->Subsetting Relationship Relationship syside.Relationship Relationship->Specialization Element Element syside.Element Element->Relationship AstNode AstNode syside.AstNode AstNode->Element
Children
Members defined in Subsetting (6 members)

STD

R

owning_feature

R

A subsetting_feature that is also the owning_related_element of this Subsetting.

subsetted_feature

R

The Feature that is subsetted by the subsetting_feature of this Subsetting.

subsetted_feature_target

R

SysIDE specific accessor for manipulating the target of subsetted_feature.

subsetting_feature

R

The Feature that is a subset of the subsetted_feature of this Subsetting.

subsetting_feature_target

R

SysIDE specific accessor for manipulating the target of subsetting_feature.

Members inherited from Specialization (6 members)

children

R

The elements enclosed by curly brackets in textual syntax.

general

R

A Type with a superset of all instances of the specific Type, which might be the same set.

general_target

R

SysIDE specific accessor for manipulating the target of general.

owning_type

R

The Type that is the specific Type of this Specialization and owns it as its owning_related_element.

specific

R

A Type with a subset of all instances of the general Type, which might be the same set.

specific_target

R

SysIDE specific accessor for manipulating the target of specific.

Members inherited from Relationship (12 members)

first_source

R

Convenience method for sources[0].

first_target

R

Convenience method for targets[0].

is_implied

RW

Whether this Relationship was generated by tooling to meet semantic rules, rather than being directly created by a modeler.

is_visibility_implied

R

Returns True if this Relationship is using implicit visibility.

owned_related_elements

R

The related_elements of this Relationship that are owned by the Relationship.

owning_related_element

R

The related_element of this Relationship that owns the Relationship, if any.

related_elements

R

The Elements that are related by this Relationship, derived as the union of the source and target Elements of the Relationship.

sources

R

The related_elements from which this Relationship is considered to be directed.

targets

R

The related_elements to which this Relationship is considered to be directed.

visibility

RW

The visibility level of the related elements from this Relationship relative to the owning_related_element.

reset_visibility

try_set_visibility

Members inherited from Element (23 members)

comments

R

The owned Comments related by owned_relationships.

declared_name

RW

The declared name of this Element.

declared_short_name

RW

An optional alternative name for the Element that is intended to be shorter or in some way more succinct than its primary name. It may act as a modeler-specified identifier for the Element, though it is then the responsibility of the modeler to maintain the uniqueness of this identifier within a model or relative to some other context.

documentation

R

The Documentation owned by this Element.

element_id

RW

The globally unique identifier for this Element. This is intended to be

set by tooling, and it must not change during the lifetime of the Element.

is_implied_included

R

Whether all necessary implied Relationships have been included in the owned_relationships of this Element. This property may be true, even if there are not actually any owned_relationships with is_implied = true, meaning that no such Relationships are actually implied for this Element. However, if it is false, then owned_relationships may not contain any implied Relationships. That is, either all required implied Relationships must be included, or none of them.

is_library_element

R

Whether this Element is contained in the ownership tree of a library model.

metadata

R

The owned metadata related by owned_relationships.

name

R

The name to be used for this Element during name resolution within its owning_namespace. This is derived using the effective_name() operation. By default, it is the same as the declared_name, but this is overridden for certain kinds of Elements to compute a name even when the declared_name is null.

owned_annotations

R

The owned_relationships of this Element that are Annotations, for which this Element is the annotated_element.

owned_elements

R

The Elements owned by this Element, derived as the owned_related_elements of the owned_relationships of this Element.

owned_relationships

R

The Relationships for which this Element is the owning_related_element.

owner

R

The owner of this Element, derived as the owning_related_element of the owning_relationship of this Element, if any.

owning_membership

R

The owning_relationship of this Element, if that Relationship is a Membership.

owning_namespace

R

The Namespace that owns this Element, which is the membership_owning_namespace of the owning_membership of this Element, if any.

owning_relationship

R

The Relationship for which this Element is an owned_related_element, if any.

qualified_name

R

The full ownership-qualified name of this Element, represented in a form that is valid according to the KerML textual concrete syntax for qualified names (including use of unrestricted name notation and escaped characters, as necessary). The qualified_name is null if this Element has no owning_namespace or if there is not a complete ownership chain of named Namespaces from a root Namespace to this Element.

scoped_owner

R

The owner of this Element as the parent of owning_membership or owning_relationship otherwise.

sema_state

RW

The state of semantic resolution for this Element. Based on this, sema may skip elements to avoid duplicate work, e.g. when resolving elements in a group of related documents.

short_name

R

The short name to be used for this Element during name resolution within its owning_namespace. This is derived using the effective_short_name() operation. By default, it is the same as the declared_short_name, but this is overridden for certain kinds of Elements to compute a short_name even when the declared_name is null.

textual_representations

R

The TextualRepresentations that annotate this Element.

__str__

matches_qualified_name

Members inherited from AstNode (7 members)

cst_node

R

document

R

parent

R

__hash__

cast

isinstance

try_cast

Attributes

STD: tuple[type[syside.Subsetting], ...] = ()
property owning_feature: syside.Feature | None

A subsetting_feature that is also the owning_related_element of this Subsetting.

property subsetted_feature: syside.Feature | None

The Feature that is subsetted by the subsetting_feature of this Subsetting.

supersetting
property subsetted_feature_target: syside.ChainedFeatureReference

SysIDE specific accessor for manipulating the target of subsetted_feature.

property subsetting_feature: syside.Feature | None

The Feature that is a subset of the subsetted_feature of this Subsetting.

subsetting
property subsetting_feature_target: syside.ChainedFeatureReference

SysIDE specific accessor for manipulating the target of subsetting_feature.

Used in