Interface Definition

All Superinterfaces:
BaseElement, Classifier, Cloneable, Comparable, Element, org.eclipse.emf.ecore.EObject, ModelElement, com.dassault_systemes.modeler.modelextension.model.modelextension.ModelExtensionObject, Namespace, org.eclipse.emf.common.notify.Notifier, Type
All Known Subinterfaces:
ActionDefinition, AllocationDefinition, AnalysisCaseDefinition, AttributeDefinition, CalculationDefinition, CaseDefinition, ConcernDefinition, ConjugatedPortDefinition, ConnectionDefinition, ConstraintDefinition, EnumerationDefinition, FlowDefinition, InterfaceDefinition, ItemDefinition, MetadataDefinition, OccurrenceDefinition, PartDefinition, PortDefinition, RenderingDefinition, RequirementDefinition, StateDefinition, UseCaseDefinition, VerificationCaseDefinition, ViewDefinition, ViewpointDefinition

@OpenApiAll public interface Definition extends Classifier

A Definition is a Classifier of Usages. The actual kinds of Definition that may appear in a model are given by the subclasses of Definition (possibly as extended with user-defined SemanticMetadata).

Normally, a Definition has owned Usages that model features of the thing being defined. A Definition may also have other Definitions nested in it, but this has no semantic significance, other than the nested scoping resulting from the Definition being considered as a Namespace for any nested Definitions.

However, if a Definition has isVariation = true, then it represents a variation point Definition. In this case, all of its members must be variant Usages, related to the Definition by VariantMembership Relationships. Rather than being features of the Definition, variant Usages model different concrete alternatives that can be chosen to fill in for an abstract Usage of the variation point Definition.

isVariation implies ownedFeatureMembership->isEmpty() variant = variantMembership.ownedVariantUsage variantMembership = ownedMembership->selectByKind(VariantMembership) isVariation implies not ownedSpecialization.specific->exists( oclIsKindOf(Definition) and oclAsType(Definition).isVariation) usage = feature->selectByKind(Usage) directedUsage = directedFeature->selectByKind(Usage) ownedUsage = ownedFeature->selectByKind(Usage) ownedAttribute = ownedUsage->selectByKind(AttributeUsage) ownedReference = ownedUsage->selectByKind(ReferenceUsage) ownedEnumeration = ownedUsage->selectByKind(EnumerationUsage) ownedOccurrence = ownedUsage->selectByKind(OccurrenceUsage) ownedItem = ownedUsage->selectByKind(ItemUsage) ownedPart = ownedUsage->selectByKind(PartUsage) ownedPort = ownedUsage->selectByKind(PortUsage) ownedConnection = ownedUsage->selectByKind(ConnectorAsUsage) ownedFlow = ownedUsage->selectByKind(FlowConnectionUsage) ownedInterface = ownedUsage->selectByKind(ReferenceUsage) ownedAllocation = ownedUsage->selectByKind(AllocationUsage) ownedAction = ownedUsage->selectByKind(ActionUsage) ownedState = ownedUsage->selectByKind(StateUsage) ownedTransition = ownedUsage->selectByKind(TransitionUsage) ownedCalculation = ownedUsage->selectByKind(CalculationUsage) ownedConstraint = ownedUsage->selectByKind(ConstraintUsage) ownedRequirement = ownedUsage->selectByKind(RequirementUsage) ownedConcern = ownedUsage->selectByKind(ConcernUsage) ownedCase = ownedUsage->selectByKind(CaseUsage) ownedAnalysisCase = ownedUsage->selectByKind(AnalysisCaseUsage) ownedVerificationCase = ownedUsage->selectByKind(VerificationCaseUsage) ownedUseCase = ownedUsage->selectByKind(UseCaseUsage) ownedView = ownedUsage->selectByKind(ViewUsage) ownedViewpoint = ownedUsage->selectByKind(ViewpointUsage) ownedRendering = ownedUsage->selectByKind(RenderingUsage) ownedMetadata = ownedUsage->selectByKind(MetadataUsage) isVariation implies isAbstract
  • Method Details

    • isVariation

      boolean isVariation()

      Whether this Definition is for a variation point or not. If true, then all the memberships of the Definition must be VariantMemberships.

      Returns:
      the isVariation value
      Model:
      derived="false" transient="false"
    • setIsVariation

      void setIsVariation(boolean value)

      Whether this Definition is for a variation point or not. If true, then all the memberships of the Definition must be VariantMemberships.

      Parameters:
      value - the isVariation value
      Model:
      derived="false" transient="false"
    • getVariant

      List<Usage> getVariant()

      The Usages which represent the variants of this Definition as a variation point Definition, if isVariation = true. If isVariation = false, the there must be no variants.

      Returns:
      the variant value
      Model:
      derived="true" transient="true" oppositeRoleName="owningVariationDefinition"
    • getVariantMembership

      List<VariantMembership> getVariantMembership()

      The ownedMemberships of this Definition that are VariantMemberships. If isVariation = true, then this must be all ownedMemberships of the Definition. If isVariation = false, then variantMembershipmust be empty.

      Returns:
      the variantMembership value
      Model:
      derived="true" transient="true" oppositeRoleName="owningVariationDefinition"
    • getUsage

      List<Usage> getUsage()

      The Usages that are features of this Definition (not necessarily owned).

      Returns:
      the usage value
      Model:
      derived="true" transient="true" oppositeRoleName="featuringDefinition"
    • getDirectedUsage

      List<Usage> getDirectedUsage()

      The usages of this Definition that are directedFeatures.

      Returns:
      the directedUsage value
      Model:
      derived="true" transient="true" oppositeRoleName="definitionWithDirectedUsage" subsets=getUsage()
    • getOwnedUsage

      List<Usage> getOwnedUsage()

      The Usages that are ownedFeatures of this Definition.

      Returns:
      the ownedUsage value
      Model:
      derived="true" transient="true" opposite=Usage.getOwningDefinition() subsets=getUsage()
    • getOwnedReference

      List<ReferenceUsage> getOwnedReference()

      The ReferenceUsages that are ownedUsages of this Definition.

      Returns:
      the ownedReference value
      Model:
      derived="true" transient="true" oppositeRoleName="referenceOwningDefinition" subsets=getOwnedUsage()
    • getOwnedAttribute

      List<AttributeUsage> getOwnedAttribute()

      The AttributeUsages that are ownedUsages of this Definition.

      Returns:
      the ownedAttribute value
      Model:
      derived="true" transient="true" oppositeRoleName="attributeOwningDefinition" subsets=getOwnedUsage()
    • getOwnedEnumeration

      List<EnumerationUsage> getOwnedEnumeration()

      The EnumerationUsages that are ownedUsages of this Definition.

      Returns:
      the ownedEnumeration value
      Model:
      derived="true" transient="true" oppositeRoleName="enumerationOwningDefinition" subsets=getOwnedAttribute()
    • getOwnedOccurrence

      List<OccurrenceUsage> getOwnedOccurrence()

      The OccurrenceUsages that are ownedUsages of this Definition.

      Returns:
      the ownedOccurrence value
      Model:
      derived="true" transient="true" oppositeRoleName="occurrenceOwningDefinition" subsets=getOwnedUsage()
    • getOwnedItem

      List<ItemUsage> getOwnedItem()

      The ItemUsages that are ownedUsages of this Definition.

      Returns:
      the ownedItem value
      Model:
      derived="true" transient="true" oppositeRoleName="itemOwningDefinition" subsets=getOwnedOccurrence()
    • getOwnedPart

      List<PartUsage> getOwnedPart()

      The PartUsages that are ownedUsages of this Definition.

      Returns:
      the ownedPart value
      Model:
      derived="true" transient="true" oppositeRoleName="partOwningDefinition" subsets=getOwnedItem()
    • getOwnedPort

      List<PortUsage> getOwnedPort()

      The PortUsages that are ownedUsages of this Definition.

      Returns:
      the ownedPort value
      Model:
      derived="true" transient="true" oppositeRoleName="portOwningDefinition" subsets=getOwnedUsage()
    • getOwnedConnection

      List<ConnectorAsUsage> getOwnedConnection()

      The ConnectorAsUsages that are ownedUsages of this Definition. Note that this list includes BindingConnectorAsUsages, SuccessionAsUsages, and FlowUsages because these are ConnectorAsUsages even though they are not ConnectionUsages.

      Returns:
      the ownedConnection value
      Model:
      derived="true" transient="true" oppositeRoleName="connectionOwningDefinition" subsets=getOwnedUsage()
    • getOwnedFlow

      List<FlowUsage> getOwnedFlow()

      The FlowUsages that are ownedUsages of this Definition.

      Returns:
      the ownedFlow value
      Model:
      derived="true" transient="true" oppositeRoleName="flowOwningDefinition" subsets=getOwnedConnection()
    • getOwnedInterface

      List<InterfaceUsage> getOwnedInterface()

      The InterfaceUsages that are ownedUsages of this Definition.

      Returns:
      the ownedInterface value
      Model:
      derived="true" transient="true" oppositeRoleName="interfaceOwningDefinition" subsets=getOwnedConnection()
    • getOwnedAllocation

      List<AllocationUsage> getOwnedAllocation()

      The AllocationUsages that are ownedUsages of this Definition.

      Returns:
      the ownedAllocation value
      Model:
      derived="true" transient="true" oppositeRoleName="allocationOwningDefinition" subsets=getOwnedConnection()
    • getOwnedAction

      List<ActionUsage> getOwnedAction()

      The ActionUsages that are ownedUsages of this Definition.

      Returns:
      the ownedAction value
      Model:
      derived="true" transient="true" oppositeRoleName="actionOwningDefinition" subsets=getOwnedOccurrence()
    • getOwnedState

      List<StateUsage> getOwnedState()

      The StateUsages that are ownedUsages of this Definition.

      Returns:
      the ownedState value
      Model:
      derived="true" transient="true" oppositeRoleName="stateOwningDefinition" subsets=getOwnedAction()
    • getOwnedTransition

      List<TransitionUsage> getOwnedTransition()

      The TransitionUsages that are ownedUsages of this Definition.

      Returns:
      the ownedTransition value
      Model:
      derived="true" transient="true" oppositeRoleName="transitionOwningDefinition" subsets=getOwnedUsage()
    • getOwnedCalculation

      List<CalculationUsage> getOwnedCalculation()

      The CalculationUsages that are ownedUsages of this Definition.

      Returns:
      the ownedCalculation value
      Model:
      derived="true" transient="true" oppositeRoleName="calculationOwningDefinition" subsets=getOwnedAction()
    • getOwnedConstraint

      List<ConstraintUsage> getOwnedConstraint()

      The ConstraintUsages that are ownedUsages of this Definition.

      Returns:
      the ownedConstraint value
      Model:
      derived="true" transient="true" oppositeRoleName="constraintOwningDefinition" subsets=getOwnedOccurrence()
    • getOwnedRequirement

      List<RequirementUsage> getOwnedRequirement()

      The RequirementUsages that are ownedUsages of this Definition.

      Returns:
      the ownedRequirement value
      Model:
      derived="true" transient="true" oppositeRoleName="requirementOwningDefinition" subsets=getOwnedConstraint()
    • getOwnedConcern

      List<ConcernUsage> getOwnedConcern()

      The ConcernUsages that are ownedUsages of this Definition.

      Returns:
      the ownedConcern value
      Model:
      derived="true" transient="true" oppositeRoleName="concernOwningDefinition" subsets=getOwnedRequirement()
    • getOwnedCase

      List<CaseUsage> getOwnedCase()

      The code>CaseUsages that are ownedUsages of this Definition.

      Returns:
      the ownedCase value
      Model:
      derived="true" transient="true" oppositeRoleName="caseOwningDefinition" subsets=getOwnedCalculation()
    • getOwnedAnalysisCase

      List<AnalysisCaseUsage> getOwnedAnalysisCase()

      The AnalysisCaseUsages that are ownedUsages of this Definition.

      Returns:
      the ownedAnalysisCase value
      Model:
      derived="true" transient="true" oppositeRoleName="analysisCaseOwningDefinition" subsets=getOwnedCase()
    • getOwnedVerificationCase

      List<VerificationCaseUsage> getOwnedVerificationCase()

      The VerificationCaseUsages that are ownedUsages of this Definition.

      Returns:
      the ownedVerificationCase value
      Model:
      derived="true" transient="true" oppositeRoleName="verificationCaseOwningDefinition" subsets=getOwnedCase()
    • getOwnedUseCase

      List<UseCaseUsage> getOwnedUseCase()

      The UseCaseUsages that are ownedUsages of this Definition.

      Returns:
      the ownedUseCase value
      Model:
      derived="true" transient="true" oppositeRoleName="useCaseOwningDefinition" subsets=getOwnedCase()
    • getOwnedView

      List<ViewUsage> getOwnedView()

      The ViewUsages that are ownedUsages of this Definition.

      Returns:
      the ownedView value
      Model:
      derived="true" transient="true" oppositeRoleName="viewOwningDefinition" subsets=getOwnedPart()
    • getOwnedViewpoint

      List<ViewpointUsage> getOwnedViewpoint()

      The ViewpointUsages that are ownedUsages of this Definition.

      Returns:
      the ownedViewpoint value
      Model:
      derived="true" transient="true" oppositeRoleName="viewpointOwningDefinition" subsets=getOwnedRequirement()
    • getOwnedRendering

      List<RenderingUsage> getOwnedRendering()

      The RenderingUsages that are ownedUsages of this Definition.

      Returns:
      the ownedRendering value
      Model:
      derived="true" transient="true" oppositeRoleName="redenderingOwningDefinition" subsets=getOwnedPart()
    • getOwnedMetadata

      List<MetadataUsage> getOwnedMetadata()

      The MetadataUsages that are ownedUsages of this Definition.

      Returns:
      the ownedMetadata value
      Model:
      derived="true" transient="true" oppositeRoleName="metadataOwningDefinition" subsets=getOwnedItem()