From e1ddbc3cee402a842ce5b72327dd47fb84bb1dd4 Mon Sep 17 00:00:00 2001 From: atheate Date: Mon, 8 Jun 2026 10:42:38 +0200 Subject: [PATCH 1/4] POCO/DTO regen --- Resources/KerML_only_xmi.uml | 15595 +++++++------- Resources/SysML_only_xmi.uml | 17051 ++++++++-------- .../Core/AutoGenDto/AcceptActionUsage.cs | 22 +- .../Core/AutoGenDto/ActionDefinition.cs | 12 +- SysML2.NET/Core/AutoGenDto/ActionUsage.cs | 22 +- .../Core/AutoGenDto/AllocationDefinition.cs | 12 +- SysML2.NET/Core/AutoGenDto/AllocationUsage.cs | 22 +- .../Core/AutoGenDto/AnalysisCaseDefinition.cs | 18 +- .../Core/AutoGenDto/AnalysisCaseUsage.cs | 22 +- .../Core/AutoGenDto/AssertConstraintUsage.cs | 22 +- .../Core/AutoGenDto/AssignmentActionUsage.cs | 22 +- SysML2.NET/Core/AutoGenDto/Association.cs | 10 +- .../Core/AutoGenDto/AssociationStructure.cs | 10 +- .../Core/AutoGenDto/AttributeDefinition.cs | 18 +- SysML2.NET/Core/AutoGenDto/AttributeUsage.cs | 27 +- SysML2.NET/Core/AutoGenDto/Behavior.cs | 10 +- .../Core/AutoGenDto/BindingConnector.cs | 10 +- .../AutoGenDto/BindingConnectorAsUsage.cs | 22 +- .../Core/AutoGenDto/BooleanExpression.cs | 10 +- .../Core/AutoGenDto/CalculationDefinition.cs | 18 +- .../Core/AutoGenDto/CalculationUsage.cs | 22 +- SysML2.NET/Core/AutoGenDto/CaseDefinition.cs | 18 +- SysML2.NET/Core/AutoGenDto/CaseUsage.cs | 22 +- SysML2.NET/Core/AutoGenDto/Class.cs | 10 +- SysML2.NET/Core/AutoGenDto/Classifier.cs | 23 +- .../Core/AutoGenDto/CollectExpression.cs | 14 +- .../Core/AutoGenDto/ConcernDefinition.cs | 20 +- SysML2.NET/Core/AutoGenDto/ConcernUsage.cs | 30 +- .../AutoGenDto/ConjugatedPortDefinition.cs | 14 +- SysML2.NET/Core/AutoGenDto/Conjugation.cs | 6 +- .../Core/AutoGenDto/ConnectionDefinition.cs | 12 +- SysML2.NET/Core/AutoGenDto/ConnectionUsage.cs | 22 +- SysML2.NET/Core/AutoGenDto/Connector.cs | 10 +- .../Core/AutoGenDto/ConstraintDefinition.cs | 18 +- SysML2.NET/Core/AutoGenDto/ConstraintUsage.cs | 22 +- .../Core/AutoGenDto/ConstructorExpression.cs | 14 +- SysML2.NET/Core/AutoGenDto/CrossSubsetting.cs | 23 +- SysML2.NET/Core/AutoGenDto/DataType.cs | 19 +- SysML2.NET/Core/AutoGenDto/DecisionNode.cs | 22 +- SysML2.NET/Core/AutoGenDto/Definition.cs | 28 +- SysML2.NET/Core/AutoGenDto/Dependency.cs | 5 +- .../Core/AutoGenDto/EnumerationDefinition.cs | 12 +- .../Core/AutoGenDto/EnumerationUsage.cs | 22 +- .../Core/AutoGenDto/EventOccurrenceUsage.cs | 28 +- .../Core/AutoGenDto/ExhibitStateUsage.cs | 22 +- SysML2.NET/Core/AutoGenDto/Expression.cs | 10 +- SysML2.NET/Core/AutoGenDto/Feature.cs | 35 +- .../Core/AutoGenDto/FeatureChainExpression.cs | 14 +- .../AutoGenDto/FeatureReferenceExpression.cs | 10 +- SysML2.NET/Core/AutoGenDto/FeatureValue.cs | 15 +- SysML2.NET/Core/AutoGenDto/Flow.cs | 10 +- SysML2.NET/Core/AutoGenDto/FlowDefinition.cs | 12 +- SysML2.NET/Core/AutoGenDto/FlowEnd.cs | 10 +- SysML2.NET/Core/AutoGenDto/FlowUsage.cs | 22 +- .../Core/AutoGenDto/ForLoopActionUsage.cs | 22 +- SysML2.NET/Core/AutoGenDto/ForkNode.cs | 22 +- SysML2.NET/Core/AutoGenDto/Function.cs | 16 +- .../Core/AutoGenDto/IAttributeDefinition.cs | 6 +- SysML2.NET/Core/AutoGenDto/IAttributeUsage.cs | 5 +- SysML2.NET/Core/AutoGenDto/IClassifier.cs | 13 +- SysML2.NET/Core/AutoGenDto/IConcernUsage.cs | 8 +- SysML2.NET/Core/AutoGenDto/IConjugation.cs | 6 +- .../Core/AutoGenDto/IConnectorAsUsage.cs | 2 +- .../Core/AutoGenDto/ICrossSubsetting.cs | 23 +- SysML2.NET/Core/AutoGenDto/IDataType.cs | 9 +- SysML2.NET/Core/AutoGenDto/IDefinition.cs | 18 +- SysML2.NET/Core/AutoGenDto/IDependency.cs | 5 +- .../Core/AutoGenDto/IEventOccurrenceUsage.cs | 6 +- SysML2.NET/Core/AutoGenDto/IFeature.cs | 25 +- SysML2.NET/Core/AutoGenDto/IFeatureValue.cs | 15 +- SysML2.NET/Core/AutoGenDto/IFunction.cs | 6 +- .../AutoGenDto/IInstantiationExpression.cs | 9 +- SysML2.NET/Core/AutoGenDto/IInteraction.cs | 2 +- SysML2.NET/Core/AutoGenDto/IItemUsage.cs | 6 +- SysML2.NET/Core/AutoGenDto/IMembership.cs | 9 +- SysML2.NET/Core/AutoGenDto/IMultiplicity.cs | 19 +- SysML2.NET/Core/AutoGenDto/INamespace.cs | 15 +- SysML2.NET/Core/AutoGenDto/IPartUsage.cs | 4 +- SysML2.NET/Core/AutoGenDto/IPortDefinition.cs | 2 +- .../Core/AutoGenDto/IReferenceSubsetting.cs | 4 +- SysML2.NET/Core/AutoGenDto/IRelationship.cs | 16 +- .../Core/AutoGenDto/IRequirementDefinition.cs | 2 +- .../Core/AutoGenDto/ISendActionUsage.cs | 4 +- .../Core/AutoGenDto/IStateDefinition.cs | 6 +- SysML2.NET/Core/AutoGenDto/IStateUsage.cs | 7 +- .../Core/AutoGenDto/ITextualRepresentation.cs | 44 +- .../Core/AutoGenDto/ITransitionUsage.cs | 6 +- SysML2.NET/Core/AutoGenDto/IType.cs | 10 +- SysML2.NET/Core/AutoGenDto/IUsage.cs | 27 +- SysML2.NET/Core/AutoGenDto/IfActionUsage.cs | 22 +- .../Core/AutoGenDto/IncludeUseCaseUsage.cs | 22 +- SysML2.NET/Core/AutoGenDto/IndexExpression.cs | 14 +- SysML2.NET/Core/AutoGenDto/Interaction.cs | 10 +- .../Core/AutoGenDto/InterfaceDefinition.cs | 12 +- SysML2.NET/Core/AutoGenDto/InterfaceUsage.cs | 22 +- SysML2.NET/Core/AutoGenDto/Invariant.cs | 10 +- .../Core/AutoGenDto/InvocationExpression.cs | 14 +- SysML2.NET/Core/AutoGenDto/ItemDefinition.cs | 12 +- SysML2.NET/Core/AutoGenDto/ItemUsage.cs | 28 +- SysML2.NET/Core/AutoGenDto/JoinNode.cs | 22 +- SysML2.NET/Core/AutoGenDto/LiteralBoolean.cs | 10 +- .../Core/AutoGenDto/LiteralExpression.cs | 10 +- SysML2.NET/Core/AutoGenDto/LiteralInfinity.cs | 10 +- SysML2.NET/Core/AutoGenDto/LiteralInteger.cs | 10 +- SysML2.NET/Core/AutoGenDto/LiteralRational.cs | 10 +- SysML2.NET/Core/AutoGenDto/LiteralString.cs | 10 +- SysML2.NET/Core/AutoGenDto/Membership.cs | 9 +- SysML2.NET/Core/AutoGenDto/MergeNode.cs | 22 +- SysML2.NET/Core/AutoGenDto/Metaclass.cs | 10 +- .../AutoGenDto/MetadataAccessExpression.cs | 10 +- .../Core/AutoGenDto/MetadataDefinition.cs | 12 +- SysML2.NET/Core/AutoGenDto/MetadataFeature.cs | 10 +- SysML2.NET/Core/AutoGenDto/MetadataUsage.cs | 22 +- SysML2.NET/Core/AutoGenDto/Multiplicity.cs | 29 +- .../Core/AutoGenDto/MultiplicityRange.cs | 10 +- SysML2.NET/Core/AutoGenDto/Namespace.cs | 15 +- SysML2.NET/Core/AutoGenDto/NullExpression.cs | 10 +- .../Core/AutoGenDto/OccurrenceDefinition.cs | 12 +- SysML2.NET/Core/AutoGenDto/OccurrenceUsage.cs | 22 +- .../Core/AutoGenDto/OperatorExpression.cs | 14 +- SysML2.NET/Core/AutoGenDto/PartDefinition.cs | 12 +- SysML2.NET/Core/AutoGenDto/PartUsage.cs | 26 +- SysML2.NET/Core/AutoGenDto/PayloadFeature.cs | 10 +- .../Core/AutoGenDto/PerformActionUsage.cs | 22 +- SysML2.NET/Core/AutoGenDto/PortDefinition.cs | 14 +- SysML2.NET/Core/AutoGenDto/PortUsage.cs | 22 +- SysML2.NET/Core/AutoGenDto/Predicate.cs | 16 +- .../Core/AutoGenDto/ReferenceSubsetting.cs | 4 +- SysML2.NET/Core/AutoGenDto/ReferenceUsage.cs | 22 +- .../Core/AutoGenDto/RenderingDefinition.cs | 12 +- SysML2.NET/Core/AutoGenDto/RenderingUsage.cs | 22 +- .../Core/AutoGenDto/RequirementDefinition.cs | 20 +- .../Core/AutoGenDto/RequirementUsage.cs | 22 +- .../AutoGenDto/SatisfyRequirementUsage.cs | 22 +- .../Core/AutoGenDto/SelectExpression.cs | 14 +- SysML2.NET/Core/AutoGenDto/SendActionUsage.cs | 26 +- SysML2.NET/Core/AutoGenDto/StateDefinition.cs | 18 +- SysML2.NET/Core/AutoGenDto/StateUsage.cs | 29 +- SysML2.NET/Core/AutoGenDto/Step.cs | 10 +- SysML2.NET/Core/AutoGenDto/Structure.cs | 10 +- SysML2.NET/Core/AutoGenDto/Succession.cs | 10 +- .../Core/AutoGenDto/SuccessionAsUsage.cs | 22 +- SysML2.NET/Core/AutoGenDto/SuccessionFlow.cs | 10 +- .../Core/AutoGenDto/SuccessionFlowUsage.cs | 22 +- .../Core/AutoGenDto/TerminateActionUsage.cs | 22 +- .../Core/AutoGenDto/TextualRepresentation.cs | 44 +- SysML2.NET/Core/AutoGenDto/TransitionUsage.cs | 28 +- .../AutoGenDto/TriggerInvocationExpression.cs | 14 +- SysML2.NET/Core/AutoGenDto/Type.cs | 10 +- SysML2.NET/Core/AutoGenDto/Usage.cs | 37 +- .../Core/AutoGenDto/UseCaseDefinition.cs | 18 +- SysML2.NET/Core/AutoGenDto/UseCaseUsage.cs | 22 +- .../AutoGenDto/VerificationCaseDefinition.cs | 18 +- .../Core/AutoGenDto/VerificationCaseUsage.cs | 22 +- SysML2.NET/Core/AutoGenDto/ViewDefinition.cs | 12 +- SysML2.NET/Core/AutoGenDto/ViewUsage.cs | 22 +- .../Core/AutoGenDto/ViewpointDefinition.cs | 20 +- SysML2.NET/Core/AutoGenDto/ViewpointUsage.cs | 22 +- .../Core/AutoGenDto/WhileLoopActionUsage.cs | 22 +- .../Core/AutoGenPoco/AcceptActionUsage.cs | 63 +- .../Core/AutoGenPoco/ActionDefinition.cs | 29 +- SysML2.NET/Core/AutoGenPoco/ActionUsage.cs | 63 +- .../Core/AutoGenPoco/ActorMembership.cs | 4 +- .../Core/AutoGenPoco/AllocationDefinition.cs | 29 +- .../Core/AutoGenPoco/AllocationUsage.cs | 63 +- .../AutoGenPoco/AnalysisCaseDefinition.cs | 35 +- .../Core/AutoGenPoco/AnalysisCaseUsage.cs | 73 +- .../Core/AutoGenPoco/AnnotatingElement.cs | 4 +- SysML2.NET/Core/AutoGenPoco/Annotation.cs | 4 +- .../Core/AutoGenPoco/AssertConstraintUsage.cs | 73 +- .../Core/AutoGenPoco/AssignmentActionUsage.cs | 63 +- SysML2.NET/Core/AutoGenPoco/Association.cs | 27 +- .../Core/AutoGenPoco/AssociationStructure.cs | 27 +- .../Core/AutoGenPoco/AttributeDefinition.cs | 35 +- SysML2.NET/Core/AutoGenPoco/AttributeUsage.cs | 68 +- SysML2.NET/Core/AutoGenPoco/Behavior.cs | 27 +- .../Core/AutoGenPoco/BindingConnector.cs | 51 +- .../AutoGenPoco/BindingConnectorAsUsage.cs | 63 +- .../Core/AutoGenPoco/BooleanExpression.cs | 61 +- .../Core/AutoGenPoco/CalculationDefinition.cs | 35 +- .../Core/AutoGenPoco/CalculationUsage.cs | 73 +- SysML2.NET/Core/AutoGenPoco/CaseDefinition.cs | 35 +- SysML2.NET/Core/AutoGenPoco/CaseUsage.cs | 73 +- SysML2.NET/Core/AutoGenPoco/Class.cs | 27 +- SysML2.NET/Core/AutoGenPoco/Classifier.cs | 40 +- .../Core/AutoGenPoco/CollectExpression.cs | 68 +- SysML2.NET/Core/AutoGenPoco/Comment.cs | 4 +- .../Core/AutoGenPoco/ConcernDefinition.cs | 37 +- SysML2.NET/Core/AutoGenPoco/ConcernUsage.cs | 81 +- .../AutoGenPoco/ConjugatedPortDefinition.cs | 31 +- .../Core/AutoGenPoco/ConjugatedPortTyping.cs | 4 +- SysML2.NET/Core/AutoGenPoco/Conjugation.cs | 10 +- .../Core/AutoGenPoco/ConnectionDefinition.cs | 29 +- .../Core/AutoGenPoco/ConnectionUsage.cs | 63 +- SysML2.NET/Core/AutoGenPoco/Connector.cs | 51 +- .../Core/AutoGenPoco/ConstraintDefinition.cs | 35 +- .../Core/AutoGenPoco/ConstraintUsage.cs | 73 +- .../Core/AutoGenPoco/ConstructorExpression.cs | 68 +- .../Core/AutoGenPoco/CrossSubsetting.cs | 27 +- SysML2.NET/Core/AutoGenPoco/DataType.cs | 36 +- SysML2.NET/Core/AutoGenPoco/DecisionNode.cs | 63 +- SysML2.NET/Core/AutoGenPoco/Definition.cs | 45 +- SysML2.NET/Core/AutoGenPoco/Dependency.cs | 9 +- SysML2.NET/Core/AutoGenPoco/Differencing.cs | 4 +- SysML2.NET/Core/AutoGenPoco/Disjoining.cs | 4 +- SysML2.NET/Core/AutoGenPoco/Documentation.cs | 4 +- .../AutoGenPoco/ElementFilterMembership.cs | 4 +- .../Core/AutoGenPoco/EndFeatureMembership.cs | 4 +- .../Core/AutoGenPoco/EnumerationDefinition.cs | 29 +- .../Core/AutoGenPoco/EnumerationUsage.cs | 63 +- .../Core/AutoGenPoco/EventOccurrenceUsage.cs | 69 +- .../Core/AutoGenPoco/ExhibitStateUsage.cs | 63 +- SysML2.NET/Core/AutoGenPoco/Expression.cs | 61 +- SysML2.NET/Core/AutoGenPoco/Feature.cs | 76 +- .../AutoGenPoco/FeatureChainExpression.cs | 68 +- .../Core/AutoGenPoco/FeatureChaining.cs | 4 +- .../Core/AutoGenPoco/FeatureInverting.cs | 4 +- .../Core/AutoGenPoco/FeatureMembership.cs | 4 +- .../AutoGenPoco/FeatureReferenceExpression.cs | 88 +- SysML2.NET/Core/AutoGenPoco/FeatureTyping.cs | 4 +- SysML2.NET/Core/AutoGenPoco/FeatureValue.cs | 19 +- SysML2.NET/Core/AutoGenPoco/Flow.cs | 51 +- SysML2.NET/Core/AutoGenPoco/FlowDefinition.cs | 29 +- SysML2.NET/Core/AutoGenPoco/FlowEnd.cs | 51 +- SysML2.NET/Core/AutoGenPoco/FlowUsage.cs | 63 +- .../Core/AutoGenPoco/ForLoopActionUsage.cs | 63 +- SysML2.NET/Core/AutoGenPoco/ForkNode.cs | 63 +- .../AutoGenPoco/FramedConcernMembership.cs | 4 +- SysML2.NET/Core/AutoGenPoco/Function.cs | 33 +- .../Core/AutoGenPoco/IAttributeDefinition.cs | 6 +- .../Core/AutoGenPoco/IAttributeUsage.cs | 5 +- SysML2.NET/Core/AutoGenPoco/IClassifier.cs | 13 +- SysML2.NET/Core/AutoGenPoco/IConcernUsage.cs | 8 +- SysML2.NET/Core/AutoGenPoco/IConjugation.cs | 6 +- .../Core/AutoGenPoco/IConnectorAsUsage.cs | 2 +- .../Core/AutoGenPoco/ICrossSubsetting.cs | 23 +- SysML2.NET/Core/AutoGenPoco/IDataType.cs | 9 +- SysML2.NET/Core/AutoGenPoco/IDefinition.cs | 18 +- SysML2.NET/Core/AutoGenPoco/IDependency.cs | 5 +- SysML2.NET/Core/AutoGenPoco/IElement.cs | 4 +- .../Core/AutoGenPoco/IEventOccurrenceUsage.cs | 6 +- SysML2.NET/Core/AutoGenPoco/IExpression.cs | 10 +- SysML2.NET/Core/AutoGenPoco/IFeature.cs | 49 +- .../IFeatureReferenceExpression.cs | 27 +- SysML2.NET/Core/AutoGenPoco/IFeatureValue.cs | 15 +- SysML2.NET/Core/AutoGenPoco/IFunction.cs | 6 +- .../AutoGenPoco/IInstantiationExpression.cs | 12 +- SysML2.NET/Core/AutoGenPoco/IInteraction.cs | 2 +- SysML2.NET/Core/AutoGenPoco/IItemUsage.cs | 6 +- SysML2.NET/Core/AutoGenPoco/IMembership.cs | 9 +- SysML2.NET/Core/AutoGenPoco/IMultiplicity.cs | 19 +- SysML2.NET/Core/AutoGenPoco/INamespace.cs | 15 +- SysML2.NET/Core/AutoGenPoco/IPartUsage.cs | 4 +- .../Core/AutoGenPoco/IPortDefinition.cs | 2 +- .../Core/AutoGenPoco/IReferenceSubsetting.cs | 4 +- SysML2.NET/Core/AutoGenPoco/IRelationship.cs | 16 +- .../AutoGenPoco/IRequirementDefinition.cs | 2 +- .../Core/AutoGenPoco/ISendActionUsage.cs | 2 +- .../Core/AutoGenPoco/IStateDefinition.cs | 6 +- SysML2.NET/Core/AutoGenPoco/IStateUsage.cs | 7 +- .../AutoGenPoco/ITextualRepresentation.cs | 44 +- .../Core/AutoGenPoco/ITransitionUsage.cs | 6 +- SysML2.NET/Core/AutoGenPoco/IType.cs | 23 +- SysML2.NET/Core/AutoGenPoco/IUsage.cs | 27 +- SysML2.NET/Core/AutoGenPoco/IfActionUsage.cs | 63 +- .../Core/AutoGenPoco/IncludeUseCaseUsage.cs | 73 +- .../Core/AutoGenPoco/IndexExpression.cs | 68 +- SysML2.NET/Core/AutoGenPoco/Interaction.cs | 27 +- .../Core/AutoGenPoco/InterfaceDefinition.cs | 29 +- SysML2.NET/Core/AutoGenPoco/InterfaceUsage.cs | 63 +- SysML2.NET/Core/AutoGenPoco/Intersecting.cs | 4 +- SysML2.NET/Core/AutoGenPoco/Invariant.cs | 61 +- .../Core/AutoGenPoco/InvocationExpression.cs | 68 +- SysML2.NET/Core/AutoGenPoco/ItemDefinition.cs | 29 +- SysML2.NET/Core/AutoGenPoco/ItemUsage.cs | 69 +- SysML2.NET/Core/AutoGenPoco/JoinNode.cs | 63 +- SysML2.NET/Core/AutoGenPoco/LibraryPackage.cs | 4 +- SysML2.NET/Core/AutoGenPoco/LiteralBoolean.cs | 61 +- .../Core/AutoGenPoco/LiteralExpression.cs | 61 +- .../Core/AutoGenPoco/LiteralInfinity.cs | 61 +- SysML2.NET/Core/AutoGenPoco/LiteralInteger.cs | 61 +- .../Core/AutoGenPoco/LiteralRational.cs | 61 +- SysML2.NET/Core/AutoGenPoco/LiteralString.cs | 61 +- SysML2.NET/Core/AutoGenPoco/Membership.cs | 13 +- .../Core/AutoGenPoco/MembershipExpose.cs | 4 +- .../Core/AutoGenPoco/MembershipImport.cs | 4 +- SysML2.NET/Core/AutoGenPoco/MergeNode.cs | 63 +- SysML2.NET/Core/AutoGenPoco/Metaclass.cs | 27 +- .../AutoGenPoco/MetadataAccessExpression.cs | 61 +- .../Core/AutoGenPoco/MetadataDefinition.cs | 29 +- .../Core/AutoGenPoco/MetadataFeature.cs | 51 +- SysML2.NET/Core/AutoGenPoco/MetadataUsage.cs | 63 +- SysML2.NET/Core/AutoGenPoco/Multiplicity.cs | 70 +- .../Core/AutoGenPoco/MultiplicityRange.cs | 51 +- SysML2.NET/Core/AutoGenPoco/Namespace.cs | 19 +- .../Core/AutoGenPoco/NamespaceExpose.cs | 4 +- .../Core/AutoGenPoco/NamespaceImport.cs | 4 +- SysML2.NET/Core/AutoGenPoco/NullExpression.cs | 61 +- .../Core/AutoGenPoco/ObjectiveMembership.cs | 4 +- .../Core/AutoGenPoco/OccurrenceDefinition.cs | 29 +- .../Core/AutoGenPoco/OccurrenceUsage.cs | 63 +- .../Core/AutoGenPoco/OperatorExpression.cs | 68 +- .../Core/AutoGenPoco/OwningMembership.cs | 4 +- SysML2.NET/Core/AutoGenPoco/Package.cs | 4 +- .../Core/AutoGenPoco/ParameterMembership.cs | 4 +- SysML2.NET/Core/AutoGenPoco/PartDefinition.cs | 29 +- SysML2.NET/Core/AutoGenPoco/PartUsage.cs | 67 +- SysML2.NET/Core/AutoGenPoco/PayloadFeature.cs | 51 +- .../Core/AutoGenPoco/PerformActionUsage.cs | 63 +- .../Core/AutoGenPoco/PortConjugation.cs | 4 +- SysML2.NET/Core/AutoGenPoco/PortDefinition.cs | 31 +- SysML2.NET/Core/AutoGenPoco/PortUsage.cs | 63 +- SysML2.NET/Core/AutoGenPoco/Predicate.cs | 33 +- SysML2.NET/Core/AutoGenPoco/Redefinition.cs | 4 +- .../Core/AutoGenPoco/ReferenceSubsetting.cs | 8 +- SysML2.NET/Core/AutoGenPoco/ReferenceUsage.cs | 63 +- .../Core/AutoGenPoco/RenderingDefinition.cs | 29 +- SysML2.NET/Core/AutoGenPoco/RenderingUsage.cs | 63 +- .../RequirementConstraintMembership.cs | 4 +- .../Core/AutoGenPoco/RequirementDefinition.cs | 37 +- .../Core/AutoGenPoco/RequirementUsage.cs | 73 +- .../RequirementVerificationMembership.cs | 4 +- .../AutoGenPoco/ResultExpressionMembership.cs | 4 +- .../AutoGenPoco/ReturnParameterMembership.cs | 4 +- .../AutoGenPoco/SatisfyRequirementUsage.cs | 73 +- .../Core/AutoGenPoco/SelectExpression.cs | 68 +- .../Core/AutoGenPoco/SendActionUsage.cs | 65 +- SysML2.NET/Core/AutoGenPoco/Specialization.cs | 4 +- .../Core/AutoGenPoco/StakeholderMembership.cs | 4 +- .../Core/AutoGenPoco/StateDefinition.cs | 35 +- .../AutoGenPoco/StateSubactionMembership.cs | 4 +- SysML2.NET/Core/AutoGenPoco/StateUsage.cs | 70 +- SysML2.NET/Core/AutoGenPoco/Step.cs | 51 +- SysML2.NET/Core/AutoGenPoco/Structure.cs | 27 +- .../Core/AutoGenPoco/Subclassification.cs | 4 +- .../Core/AutoGenPoco/SubjectMembership.cs | 4 +- SysML2.NET/Core/AutoGenPoco/Subsetting.cs | 4 +- SysML2.NET/Core/AutoGenPoco/Succession.cs | 51 +- .../Core/AutoGenPoco/SuccessionAsUsage.cs | 63 +- SysML2.NET/Core/AutoGenPoco/SuccessionFlow.cs | 51 +- .../Core/AutoGenPoco/SuccessionFlowUsage.cs | 63 +- .../Core/AutoGenPoco/TerminateActionUsage.cs | 63 +- .../Core/AutoGenPoco/TextualRepresentation.cs | 48 +- .../TransitionFeatureMembership.cs | 4 +- .../Core/AutoGenPoco/TransitionUsage.cs | 69 +- .../TriggerInvocationExpression.cs | 68 +- SysML2.NET/Core/AutoGenPoco/Type.cs | 27 +- SysML2.NET/Core/AutoGenPoco/TypeFeaturing.cs | 4 +- SysML2.NET/Core/AutoGenPoco/Unioning.cs | 4 +- SysML2.NET/Core/AutoGenPoco/Usage.cs | 78 +- .../Core/AutoGenPoco/UseCaseDefinition.cs | 35 +- SysML2.NET/Core/AutoGenPoco/UseCaseUsage.cs | 73 +- .../Core/AutoGenPoco/VariantMembership.cs | 4 +- .../AutoGenPoco/VerificationCaseDefinition.cs | 35 +- .../Core/AutoGenPoco/VerificationCaseUsage.cs | 73 +- SysML2.NET/Core/AutoGenPoco/ViewDefinition.cs | 29 +- .../AutoGenPoco/ViewRenderingMembership.cs | 4 +- SysML2.NET/Core/AutoGenPoco/ViewUsage.cs | 63 +- .../Core/AutoGenPoco/ViewpointDefinition.cs | 37 +- SysML2.NET/Core/AutoGenPoco/ViewpointUsage.cs | 73 +- .../Core/AutoGenPoco/WhileLoopActionUsage.cs | 63 +- .../Extend/AssignmentActionUsageExtensions.cs | 13 +- SysML2.NET/Extend/DefinitionExtensions.cs | 6 +- SysML2.NET/Extend/FeatureExtensions.cs | 2 +- SysML2.NET/Extend/NamespaceExtensions.cs | 2 +- .../SatisfyRequirementUsageExtensions.cs | 20 +- SysML2.NET/Extend/UsageExtensions.cs | 2 +- 367 files changed, 20941 insertions(+), 21301 deletions(-) diff --git a/Resources/KerML_only_xmi.uml b/Resources/KerML_only_xmi.uml index 4ee98bba0..49bd7aa35 100644 --- a/Resources/KerML_only_xmi.uml +++ b/Resources/KerML_only_xmi.uml @@ -1,7858 +1,7845 @@ - - - - The Root layer provides the syntactic foundation for KerML. - - - - - - <p>A <code>Dependency</code> is a <code>Relationship</code> that indicates that one or more <code>client</code> <code>Elements</code> require one more <code>supplier</code> <code>Elements</code> for their complete specification. In general, this means that a change to one of the <code>supplier</code> <code>Elements</code> may necessitate a change to, or re-specification of, the <code>client</code> <code>Elements</code>.</p> + + + + The Root layer provides the syntactic foundation for KerML. + + + + + + <p>A <code>Dependency</code> is a <code>Relationship</code> that indicates that one or more <code>client</code> <code>Elements</code> require one more <code>supplier</code> <code>Elements</code> for their complete specification. In general, this means that a change to one of the <code>supplier</code> <code>Elements</code> may necessitate a change to, or re-specification of, the <code>client</code> <code>Elements</code>.</p> - <p>Note that a <code>Dependency</code> is entirely a model-level <code>Relationship</code>, without instance-level semantics.</p> - - - - - <p>The <code>Element</code> or <code>Elements</code> dependent on the <code>supplier</code> <code>Elements</code>.</p> - - - - - - - <p>The <code>Element</code> or <code>Elements</code> on which the <code>client</code> <code>Elements</code> depend in some respect.</p> - - - - - - - - - <p>The <code>Dependencies</code> that have a certain <code>supplier</code> <code>Element</code>.</p> - - - - - - - - - <p>The <code>Dependencies</code> that have a certain <code>client</code> <code>Element</code>.</p> - - - - - - - - - - <p>A <code>Comment</code> is an <code>AnnotatingElement</code> whose <code>body</code> in some way describes its <code>annotatedElements</code>.</p> - - - - - - <p>Identification of the language of the <code>body</code> text and, optionally, the region and/or encoding. The format shall be a POSIX locale conformant to ISO/IEC 15897, with the format <code>[language[_territory][.codeset][@modifier]]</code>.</p> - - - - - - - - <p>The annotation text for the <code>Comment</code>.</p> - - - - - - - - - - <p>An <code>Annotation</code> is a Relationship between an <code>AnnotatingElement</code> and the <code>Element</code> that is annotated by that <code>AnnotatingElement</code>.</p> - - - - - <p>An <code>Annotation</code> owns its <code>annotatingElement</code> if and only if it is owned by its <code>annotatedElement</code>.</p> - - - OCL2.0 - (owningAnnotatedElement <> null) = (ownedAnnotatingElement <> null) - - - - - <p>Either the <code>ownedAnnotatingElement</code> of an <code>Annotation</code> must be non-null, or the <code>owningAnnotatingElement</code> must be non-null, but not both.</p> - - - OCL2.0 - ownedAnnotatingElement <> null xor owningAnnotatingElement <> null - - - - - <p>The <code>ownedAnnotatingElement</code> of an <code>Annotation</code> is the first <code>ownedRelatedElement</code> that is an <code>AnnotatingElement</code>, if any.</p> - - - OCL2.0 - ownedAnnotatingElement = - let ownedAnnotatingElements : Sequence(AnnotatingElement) = - ownedRelatedElement->selectByKind(AnnotatingElement) in - if ownedAnnotatingElements->isEmpty() then null - else ownedAnnotatingElements->first() - endif - - - - - <p>The <code>annotatingElement</code> of an <code>Annotation</code> is either its <code>ownedAnnotatingElement</code> or its <code>owningAnnotatingElement</code>.</p> - - - OCL2.0 - annotatingElement = - if ownedAnnotatingElement <> null then ownedAnnotatingElement - else owningAnnotatingElement - endif - - - - - - <p>The <code>AnnotatingElement</code> that annotates the <code>annotatedElement</code> of this <code>Annotation</code>. This is always either the <code>ownedAnnotatingElement</code> or the <code>owningAnnotatingElement</code>.</p> - - - - - - - - <p>The <code>Element</code> that is annotated by the <code>annotatingElement</code> of this Annotation.</p> - - - - - - - - <p>The <code>annotatedElement</code> of this <code>Annotation</code>, when it is also the <code>owningRelatedElement</code>.</p> - - - - - - - - <p>The <code>annotatingElement</code> of this <code>Annotation</code>, when it is the <code>owningRelatedElement</code>.</p> - - - - - - - <p>The <code>annotatingElement</code> of this <code>Annotation</code>, when it is an <code>ownedRelatedElement</code>.</p> - - - - - - - - - - <p>The Annotations associated with a certain <code>annotatedElement</code>.</p> - - - - - - - - <p>An <code>AnnotatingElement</code> is an <code>Element</code> that provides additional description of or metadata on some other <code>Element</code>. An <code>AnnotatingElement</code> is either attached to its <code>annotatedElements</code> by <code>Annotation</code> <code>Relationships</code>, or it implicitly annotates its <code>owningNamespace</code>.</p> - - - - - <p>If an <code>AnnotatingElement</code> has <code>annotations</code>, then its <code>annotatedElements</code> are the <code>annotatedElements</code> of all its <code>annotations</code>. Otherwise, it's single <code>annotatedElement</code> is its <code>owningNamespace</code>.</p> - - - OCL2.0 - annotatedElement = - if annotation->notEmpty() then annotation.annotatedElement - else Sequence{owningNamespace} endif - - - - - <p>The <code>ownedAnnotatingRelationships</code> of an <code>AnnotatingElement</code> are its <code>ownedRelationships</code> that are <code>Annotations</code>, for which the <code>AnnotatingElement</code> is not the <code>annotatedElement</code>.</p> - - - OCL2.0 - ownedAnnotatingRelationship = ownedRelationship-> - selectByKind(Annotation)-> - select(a | a.annotatedElement <> self) - - - - - <p>The <code>annotations</code> of an <code>AnnotatingElement</code> are its <code>owningAnnotatingRelationship</code> (if any) followed by all its <code>ownedAnnotatingRelationships</code>.</p> - - - OCL2.0 - annotation = - if owningAnnotatingRelationship = null then ownedAnnotatingRelationship - else owningAnnotatingRelationship->prepend(owningAnnotatingRelationship) - endif - - - - - - <p>The <code>Elements</code> that are annotated by this <code>AnnotatingElement</code>. If <code>annotation</code> is not empty, these are the <code>annotatedElements</code> of the <code>annotations</code>. If <code>annotation</code> is empty, then it is the <code>owningNamespace</code> of the <code>AnnotatingElement</code>.</p> - - - - - - - - <p>The <code>ownedRelationships</code> of this <code>AnnotatingElement</code> that are <code>Annotations</code>, for which this <code>AnnotatingElement</code> is the <code>annotatingElement</code>.</p> - - - - - - - <p>The <code>owningRelationship</code> of this <code>AnnotatingRelationship</code>, if it is an <code>Annotation</code></p> - - - - - - - <p>The <code>Annotations</code> that relate this <code>AnnotatingElement</code> to its <code>annotatedElements</code>. This includes the <code>owningAnnotatingRelationship</code> (if any) followed by all the <code>ownedAnnotatingRelationshps</code>.</p> - - - - - - - - - - <p>The AnnotatingElements that have a certain Element as their <code>annotatedElement</code>.</p> - - - - - - - - <p>A <code>TextualRepresentation</code> is an <code>AnnotatingElement</code> whose <code>body</code> represents the <code>representedElement</code> in a given <code>language</code>. The <code>representedElement</code> must be the <code>owner</code> of the <code>TextualRepresentation</code>. The named <code>language</code> can be a natural language, in which case the <code>body</code> is an informal representation, or an artificial language, in which case the <code>body</code> is expected to be a formal, machine-parsable representation.</p> +<p>Note that a <code>Dependency</code> is entirely a model-level <code>Relationship</code>, without instance-level semantics.</p> + + + + + <p>The <code>Element</code> or <code>Elements</code> dependent on the <code>supplier</code> <code>Elements</code>.</p> + + + + + + + <p>The <code>Element</code> or <code>Elements</code> on which the <code>client</code> <code>Elements</code> depend in some respect.</p> + + + + + + + + + <p>The <code>Dependencies</code> that have a certain <code>supplier</code> <code>Element</code>.</p> + + + + + + + + + <p>The <code>Dependencies</code> that have a certain <code>client</code> <code>Element</code>.</p> + + + + + + + + + + <p>A <code>Comment</code> is an <code>AnnotatingElement</code> whose <code>body</code> in some way describes its <code>annotatedElements</code>.</p> + + + + + + <p>Identification of the language of the <code>body</code> text and, optionally, the region and/or encoding. The format shall be a POSIX locale conformant to ISO/IEC 15897, with the format <code>[language[_territory][.codeset][@modifier]]</code>.</p> + + + + + + + + <p>The annotation text for the <code>Comment</code>.</p> + + + + + + + + + + <p>An <code>Annotation</code> is a Relationship between an <code>AnnotatingElement</code> and the <code>Element</code> that is annotated by that <code>AnnotatingElement</code>.</p> + + + + + <p>An <code>Annotation</code> owns its <code>annotatingElement</code> if and only if it is owned by its <code>annotatedElement</code>.</p> + + + OCL2.0 + (owningAnnotatedElement <> null) = (ownedAnnotatingElement <> null) + + + + + <p>Either the <code>ownedAnnotatingElement</code> of an <code>Annotation</code> must be non-null, or the <code>owningAnnotatingElement</code> must be non-null, but not both.</p> + + + OCL2.0 + ownedAnnotatingElement <> null xor owningAnnotatingElement <> null + + + + + <p>The <code>ownedAnnotatingElement</code> of an <code>Annotation</code> is the first <code>ownedRelatedElement</code> that is an <code>AnnotatingElement</code>, if any.</p> + + + OCL2.0 + ownedAnnotatingElement = + let ownedAnnotatingElements : Sequence(AnnotatingElement) = + ownedRelatedElement->selectByKind(AnnotatingElement) in + if ownedAnnotatingElements->isEmpty() then null + else ownedAnnotatingElements->first() + endif + + + + + <p>The <code>annotatingElement</code> of an <code>Annotation</code> is either its <code>ownedAnnotatingElement</code> or its <code>owningAnnotatingElement</code>.</p> + + + OCL2.0 + annotatingElement = + if ownedAnnotatingElement <> null then ownedAnnotatingElement + else owningAnnotatingElement + endif + + + + + + <p>The <code>AnnotatingElement</code> that annotates the <code>annotatedElement</code> of this <code>Annotation</code>. This is always either the <code>ownedAnnotatingElement</code> or the <code>owningAnnotatingElement</code>.</p> + + + + + + + + <p>The <code>Element</code> that is annotated by the <code>annotatingElement</code> of this Annotation.</p> + + + + + + + + <p>The <code>annotatedElement</code> of this <code>Annotation</code>, when it is also the <code>owningRelatedElement</code>.</p> + + + + + + + + <p>The <code>annotatingElement</code> of this <code>Annotation</code>, when it is the <code>owningRelatedElement</code>.</p> + + + + + + + <p>The <code>annotatingElement</code> of this <code>Annotation</code>, when it is an <code>ownedRelatedElement</code>.</p> + + + + + + + + + + <p>The Annotations associated with a certain <code>annotatedElement</code>.</p> + + + + + + + + <p>An <code>AnnotatingElement</code> is an <code>Element</code> that provides additional description of or metadata on some other <code>Element</code>. An <code>AnnotatingElement</code> is either attached to its <code>annotatedElements</code> by <code>Annotation</code> <code>Relationships</code>, or it implicitly annotates its <code>owningNamespace</code>.</p> + + + + + <p>If an <code>AnnotatingElement</code> has <code>annotations</code>, then its <code>annotatedElements</code> are the <code>annotatedElements</code> of all its <code>annotations</code>. Otherwise, it's single <code>annotatedElement</code> is its <code>owningNamespace</code>.</p> + + + OCL2.0 + annotatedElement = + if annotation->notEmpty() then annotation.annotatedElement + else Sequence{owningNamespace} endif + + + + + <p>The <code>ownedAnnotatingRelationships</code> of an <code>AnnotatingElement</code> are its <code>ownedRelationships</code> that are <code>Annotations</code>, for which the <code>AnnotatingElement</code> is not the <code>annotatedElement</code>.</p> + + + OCL2.0 + ownedAnnotatingRelationship = ownedRelationship-> + selectByKind(Annotation)-> + select(a | a.annotatedElement <> self) + + + + + <p>The <code>annotations</code> of an <code>AnnotatingElement</code> are its <code>owningAnnotatingRelationship</code> (if any) followed by all its <code>ownedAnnotatingRelationships</code>.</p> + + + OCL2.0 + annotation = + if owningAnnotatingRelationship = null then ownedAnnotatingRelationship + else owningAnnotatingRelationship->prepend(owningAnnotatingRelationship) + endif + + + + + + <p>The <code>Elements</code> that are annotated by this <code>AnnotatingElement</code>. If <code>annotation</code> is not empty, these are the <code>annotatedElements</code> of the <code>annotations</code>. If <code>annotation</code> is empty, then it is the <code>owningNamespace</code> of the <code>AnnotatingElement</code>.</p> + + + + + + + + <p>The <code>ownedRelationships</code> of this <code>AnnotatingElement</code> that are <code>Annotations</code>, for which this <code>AnnotatingElement</code> is the <code>annotatingElement</code>.</p> + + + + + + + <p>The <code>owningRelationship</code> of this <code>AnnotatingRelationship</code>, if it is an <code>Annotation</code></p> + + + + + + + <p>The <code>Annotations</code> that relate this <code>AnnotatingElement</code> to its <code>annotatedElements</code>. This includes the <code>owningAnnotatingRelationship</code> (if any) followed by all the <code>ownedAnnotatingRelationshps</code>.</p> + + + + + + + + + + <p>The AnnotatingElements that have a certain Element as their <code>annotatedElement</code>.</p> + + + + + + + + <p>A <code>TextualRepresentation</code> is an <code>AnnotatingElement</code> whose <code>body</code> represents the <code>representedElement</code> in a given <code>language</code>. The <code>representedElement</code> must be the <code>owner</code> of the <code>TextualRepresentation</code>. The named <code>language</code> can be a natural language, in which case the <code>body</code> is an informal representation, or an artificial language, in which case the <code>body</code> is expected to be a formal, machine-parsable representation.</p> - <p>If the named <code>language</code> of a <code>TextualRepresentation</code> is machine-parsable, then the <code>body</code> text should be legal input text as defined for that <code>language</code>. The interpretation of the named language string shall be case insensitive. The following <code>language</code> names are defined to correspond to the given standard languages:</p> +<p>If the named <code>language</code> of a <code>TextualRepresentation</code> is machine-parsable, then the <code>body</code> text should be legal input text as defined for that <code>language</code>. The interpretation of the named language string shall be case insensitive. The following <code>language</code> names are defined to correspond to the given standard languages:</p> - <table border="1" cellpadding="1" cellspacing="1" width="498"> - <thead> - </thead> - <tbody> - <tr> - <td style="text-align: center; width: 154px;"><code>kerml</code></td> - <td style="width: 332px;">Kernel Modeling Language</td> - </tr> - <tr> - <td style="text-align: center; width: 154px;"><code>ocl</code></td> - <td style="width: 332px;">Object Constraint Language</td> - </tr> - <tr> - <td style="text-align: center; width: 154px;"><code>alf</code></td> - <td style="width: 332px;">Action Language for fUML</td> - </tr> - </tbody> - </table> +<table border="1" cellpadding="1" cellspacing="1" width="498"> + <thead> + </thead> + <tbody> + <tr> + <td style="text-align: center; width: 154px;"><code>kerml</code></td> + <td style="width: 332px;">Kernel Modeling Language</td> + </tr> + <tr> + <td style="text-align: center; width: 154px;"><code>ocl</code></td> + <td style="width: 332px;">Object Constraint Language</td> + </tr> + <tr> + <td style="text-align: center; width: 154px;"><code>alf</code></td> + <td style="width: 332px;">Action Language for fUML</td> + </tr> + </tbody> +</table> - <p>Other specifications may define specific <code>language</code> strings, other than those shown above, to be used to indicate the use of languages from those specifications in KerML <code>TextualRepresentation</code>.</p> +<p>Other specifications may define specific <code>language</code> strings, other than those shown above, to be used to indicate the use of languages from those specifications in KerML <code>TextualRepresentation</code>.</p> - <p>If the <code>language</code> of a <code>TextualRepresentation</code> is &quot;<code>kerml</code>&quot;, then the <code>body</code> text shall be a legal representation of the <code>representedElement</code> in the KerML textual concrete syntax. A conforming tool can use such a <code>TextualRepresentation</code> <code>Annotation</code> to record the original KerML concrete syntax text from which an <code>Element</code> was parsed. In this case, it is a tool responsibility to ensure that the <code>body</code> of the <code>TextualRepresentation</code> remains correct (or the Annotation is removed) if the annotated <code>Element</code> changes other than by re-parsing the <code>body</code> text.</p> +<p>If the <code>language</code> of a <code>TextualRepresentation</code> is &quot;<code>kerml</code>&quot;, then the <code>body</code> text shall be a legal representation of the <code>representedElement</code> in the KerML textual concrete syntax. A conforming tool can use such a <code>TextualRepresentation</code> <code>Annotation</code> to record the original KerML concrete syntax text from which an <code>Element</code> was parsed. In this case, it is a tool responsibility to ensure that the <code>body</code> of the <code>TextualRepresentation</code> remains correct (or the Annotation is removed) if the annotated <code>Element</code> changes other than by re-parsing the <code>body</code> text.</p> - <p>An <code>Element</code> with a <code>TextualRepresentation</code> in a language other than KerML is essentially a semantically &quot;opaque&quot; <code>Element</code> specified in the other language. However, a conforming KerML tool may interpret such an element consistently with the specification of the named language.</p> - - - - - - <p>The natural or artifical language in which the <code>body</code> text is written.</p> - - - - - - - - - <p>The <code>Element</code> that is represented by this <code>TextualRepresentation</code>.</p> - - - - - - - - <p>The textual representation of the <code>representedElement</code> in the given <code>language</code>.</p> - - - - - - - - - - <p><code>Documentation</code> is a <code>Comment</code> that specifically documents a <code>documentedElement</code>, which must be its <code>owner</code>.</p> - - - - - - <p>The <code>Element</code> that is documented by this <code>Documentation</code>.</p> - - - - - - - - - - - - - <p>A <code>Namespace</code> is an <code>Element</code> that contains other <code>Elements</code>, known as its <code>members</code>, via <code>Membership</code> <code>Relationships</code> with those <code>Elements</code>. The <code>members</code> of a <code>Namespace</code> may be owned by the <code>Namespace</code>, aliased in the <code>Namespace</code>, or imported into the <code>Namespace</code> via <code>Import</code> <code>Relationships</code>.</p> +<p>An <code>Element</code> with a <code>TextualRepresentation</code> in a language other than KerML is essentially a semantically &quot;opaque&quot; <code>Element</code> specified in the other language. However, a conforming KerML tool may interpret such an element consistently with the specification of the named language.</p> + + + + + + <p>The natural or artifical language in which the <code>body</code> text is written.</p> + + + + + + + + + <p>The <code>Element</code> that is represented by this <code>TextualRepresentation</code>.</p> + + + + + + + + <p>The textual representation of the <code>representedElement</code> in the given <code>language</code>.</p> + + + + + + + + + + <p><code>Documentation</code> is a <code>Comment</code> that specifically documents a <code>documentedElement</code>, which must be its <code>owner</code>.</p> + + + + + + <p>The <code>Element</code> that is documented by this <code>Documentation</code>.</p> + + + + + + + + + + + + + <p>A <code>Namespace</code> is an <code>Element</code> that contains other <code>Elements</code>, known as its <code>members</code>, via <code>Membership</code> <code>Relationships</code> with those <code>Elements</code>. The <code>members</code> of a <code>Namespace</code> may be owned by the <code>Namespace</code>, aliased in the <code>Namespace</code>, or imported into the <code>Namespace</code> via <code>Import</code> <code>Relationships</code>.</p> - <p>A <code>Namespace</code> can provide names for its <code>members</code> via the <code>memberNames</code> and <code>memberShortNames</code> specified by the <code>Memberships</code> in the <code>Namespace</code>. If a <code>Membership</code> specifies a <code>memberName</code> and/or <code>memberShortName</code>, then those are names of the corresponding <code>memberElement</code> relative to the <code>Namespace</code>. For an <code>OwningMembership</code>, the <code>ownedMemberName</code> and <code>ownedMemberShortName</code> are given by the <code>Element</code> <code>name</code> and <code>shortName</code>. Note that the same <code>Element</code> may be the <code>memberElement</code> of multiple <code>Memberships</code> in a <code>Namespace</code> (though it may be owned at most once), each of which may define a separate alias for the <code>Element</code> relative to the <code>Namespace</code>.</p> - - - - - <p>All <code>memberships</code> of a <code>Namespace</code> must be distinguishable from each other.</p> - - - OCL2.0 - membership->forAll(m1 | - membership->forAll(m2 | - m1 <> m2 implies m1.isDistinguishableFrom(m2))) - - - - - <p>The <code>members</code> of a <code>Namespace</code> are the <code>memberElements</code> of all its <code>memberships</code>.</p> - - - OCL2.0 - member = membership.memberElement - - - - - <p>The <code>ownedMembers</code> of a <code>Namespace</code> are the <code>ownedMemberElements</code> of all its <code>ownedMemberships</code> that are <code>OwningMemberships</code>. - - - OCL2.0 - ownedMember = ownedMembership->selectByKind(OwningMembership).ownedMemberElement - - - - - <p>The <code>importedMemberships</code> of a <code>Namespace</code> are derived using the <code>importedMemberships()</code> operation, with no initially <code>excluded</code> <code>Namespaces</code>.</p> - - - OCL2.0 - importedMembership = importedMemberships(Set{}) - - - - - <p>The <code>ownedImports</code> of a <code>Namespace</code> are all its <code>ownedRelationships</code> that are <code>Imports</code>.</p> - - - OCL2.0 - ownedImport = ownedRelationship->selectByKind(Import) - - - - - <p>The <code>ownedMemberships</code> of a <code>Namespace</code> are all its <code>ownedRelationships</code> that are <code>Memberships</code>.</p> - - - OCL2.0 - ownedMembership = ownedRelationship->selectByKind(Membership) - - - - - - <p>All <code>Memberships</code> in this <code>Namespace</code>, including (at least) the union of <code>ownedMemberships</code> and <code>importedMemberships</code>.</p> - - - - - - - - <p>The <code>ownedRelationships</code> of this <code>Namespace</code> that are <code>Imports</code>, for which the <code>Namespace</code> is the <code>importOwningNamespace</code>.</p> - - - - - - - - <p>The set of all member <code>Elements</code> of this <code>Namespace</code>, which are the <code>memberElements</code> of all <code>memberships</code> of the <code>Namespace</code>.</p> - - - - - - - - <p>The owned <code>members</code> of this <code>Namespace</code>, which are the <cpde><code>ownedMemberElements</code> of the <code>ownedMemberships</code> of the <code>Namespace</code>.</p> - - - - - - - - <p>The <code>ownedRelationships</code> of this <code>Namespace</code> that are <code>Memberships</code>, for which the <code>Namespace</code> is the <code>membershipOwningNamespace</code>.</p> - - - - - - - - <p>The <code>Memberships</code> in this <code>Namespace</code> that result from the <code>ownedImports</code> of this <code>Namespace</code>.</p> - - - - - - - - <p>Return the names of the given <code>element</code> as it is known in this <code>Namespace</code>.</p> - - - - - OCL2.0 - let elementMemberships : Sequence(Membership) = - memberships->select(memberElement = element) in - memberships.memberShortName-> - union(memberships.memberName)-> - asSet() - - - - - - - - - - - - <p>Returns this visibility of <code>mem</code> relative to this <code>Namespace</code>. If <code>mem</code> is an <code>importedMembership</code>, this is the <code>visibility</code> of its Import. Otherwise it is the <code>visibility</code> of the <code>Membership</code> itself.</p> - - - - - OCL2.0 - if importedMembership->includes(mem) then - ownedImport-> - select(importedMemberships(Set{})->includes(mem)). - first().visibility - else if memberships->includes(mem) then - mem.visibility - else - VisibilityKind::private - endif - - - - - - - - <p>If <code>includeAll = true</code>, then return all the <code>Memberships</code> of this <code>Namespace</code>. Otherwise, return only the publicly visible <code>Memberships</code> of this <code>Namespace</code>, including <code>ownedMemberships</code> that have a <code>visibility</code> of <code>public</code> and <code>Memberships</code> imported with a <code>visibility</code> of <code>public</code>. If <code>isRecursive = true</code>, also recursively include all visible <code>Memberships</code> of any <code>public</code> owned <code>Namespaces</code>, or, if <code>IncludeAll = true</code>, all <code>Memberships</code> of all owned <code>Namespaces</code>. When computing imported <code>Memberships</code>, ignore this <code>Namespace</code> and any <code>Namespaces</code> in the given <code>excluded</code> set.</p> - - - - - OCL2.0 - let visibleMemberships : OrderedSet(Membership) = - if includeAll then membershipsOfVisibility(null, excluded) - else membershipsOfVisibility(VisibilityKind::public, excluded) - endif in - if not isRecursive then visibleMemberships - else visibleMemberships->union(ownedMember-> - selectAsKind(Namespace). - select(includeAll or owningMembership.visibility = VisibilityKind::public)-> - visibleMemberships(excluded->including(self), true, includeAll)) - endif - - - - - - - - - - - - - - - - - - - - - <p>Derive the imported <code>Memberships</code> of this <code>Namespace</code> as the <code>importedMembership</code> of all <code>ownedImports</code>, excluding those Imports whose <code>importOwningNamespace</code> is in the <code>excluded</code> set, and excluding <code>Memberships</code> that have distinguisibility collisions with each other or with any <code>ownedMembership</code>.</p> - - - - - OCL2.0 - ownedImport.importedMemberships(excluded->including(self)) - - - - - - - - - - - - - - <p>If <code>visibility</code> is not null, return the <code>Memberships</code> of this <code>Namespace</code> with the given <code>visibility</code>, including <code>ownedMemberships</code> with the given <code>visibility</code> and <code>Memberships</code> imported with the given <code>visibility</code>. If <code>visibility</code> is null, return all <code>ownedMemberships</code> and imported <code>Memberships</code> regardless of visibility. When computing imported <code>Memberships</code>, ignore this <code>Namespace</code> and any <code>Namespaces</code> in the given <code>excluded</code> set.</p> - - - - OCL2.0 - ownedMembership-> - select(mem | visibility = null or mem.visibility = visibility)-> - union(ownedImport-> - select(imp | visibility = null or imp.visibility = visibility). - importedMemberships(excluded->including(self))) - - - - - - - - - - - - - - - - - - <p>Resolve the given qualified name to the named <code>Membership</code> (if any), starting with this <code>Namespace</code> as the local scope. The qualified name string must conform to the concrete syntax of the KerML textual notation. According to the KerML name resolution rules every qualified name will resolve to either a single <code>Membership</code>, or to none.</p> - - - - - OCL2.0 - let qualification : String = qualificationOf(qualifiedName) in - let name : String = unqualifiedNameOf(qualifiedName) in - if qualification = null then resolveLocal(name) - else if qualification = '$' then resolveGlobal(name) - else - let namespaceMembership : Membership = resolve(qualification) in - if namespaceMembership = null or - not namespaceMembership.memberElement.oclIsKindOf(Namespace) - then null - else - namespaceMembership.memberElement.oclAsType(Namespace). - resolveVisible(name) - endif - endif endif - - - - - - - - - - - - - <p>Resolve the given qualified name to the named <code>Membership</code> (if any) in the effective global <code>Namespace</code> that is the outermost naming scope. The qualified name string must conform to the concrete syntax of the KerML textual notation.</p> - - - - - English - No OCL - - - - - - - - - - - - - <p>Resolve a simple <code>name</code> starting with this <code>Namespace</code> as the local scope, and continuing with containing outer scopes as necessary. However, if this <code>Namespace</code> is a root <code>Namespace</code>, then the resolution is done directly in global scope.</p> - - - - - OCL2.0 - if owningNamespace = null then resolveGlobal(name) - else - let memberships : Membership = membership-> - select(memberShortName = name or memberName = name) in - if memberships->notEmpty() then memberships->first() - else owningNamspace.resolveLocal(name) - endif - endif - - - - - - - - - - - - - <p>Resolve a simple name from the visible <code>Memberships</code> of this <code>Namespace</code>.</p> - - - - - OCL2.0 - let memberships : Sequence(Membership) = - visibleMemberships(Set{}, false, false)-> - select(memberShortName = name or memberName = name) in - if memberships->isEmpty() then null - else memberships->first() - endif - - - - - - - - - - - - - <p>Return a string with valid KerML syntax representing the qualification part of a given <code>qualifiedName</code>, that is, a qualified name with all the segment names of the given name except the last. If the given <code>qualifiedName</code> has only one segment, then return null.</p> - - - - English - No OCL - - - - - - - - - - - - - - <p>Return the simple name that is the last segment name of the given <code>qualifiedName</code>. If this segment name has the form of a KerML unrestricted name, then "unescape" it by removing the surrounding single quotes and replacing all escape sequences with the specified character.</p> - - - - English - No OCL - - - - - - - - - - - - - - - <p>An <code>Import</code> is an <code>Relationship</code> between its <code>importOwningNamespace</code> and either a <code>Membership</code> (for a <code>MembershipImport</code>) or another <code>Namespace</code> (for a <code>NamespaceImport</code>), which determines a set of <code>Memberships</code> that become <code>importedMemberships</code> of the <code>importOwningNamespace</code>. If <code>isImportAll = false</code> (the default), then only public <code>Memberships</code> are considered &quot;visible&quot;. If <code>isImportAll = true</code>, then all <code>Memberships</code> are considered &quot;visible&quot;, regardless of their declared <code>visibility</code>. If <code>isRecursive = true</code>, then visible <code>Memberships</code> are also recursively imported from owned sub-<code>Namespaces</code>.</p> +<p>A <code>Namespace</code> can provide names for its <code>members</code> via the <code>memberNames</code> and <code>memberShortNames</code> specified by the <code>Memberships</code> in the <code>Namespace</code>. If a <code>Membership</code> specifies a <code>memberName</code> and/or <code>memberShortName</code>, then those are names of the corresponding <code>memberElement</code> relative to the <code>Namespace</code>. For an <code>OwningMembership</code>, the <code>ownedMemberName</code> and <code>ownedMemberShortName</code> are given by the <code>Element</code> <code>name</code> and <code>shortName</code>. Note that the same <code>Element</code> may be the <code>memberElement</code> of multiple <code>Memberships</code> in a <code>Namespace</code> (though it may be owned at most once), each of which may define a separate alias for the <code>Element</code> relative to the <code>Namespace</code>.</p> + + + + + <p>All <code>memberships</code> of a <code>Namespace</code> must be distinguishable from each other.</p> + + + OCL2.0 + membership->forAll(m1 | + membership->forAll(m2 | + m1 <> m2 implies m1.isDistinguishableFrom(m2))) + + + + + <p>The <code>members</code> of a <code>Namespace</code> are the <code>memberElements</code> of all its <code>memberships</code>.</p> + + + OCL2.0 + member = membership.memberElement + + + + + <p>The <code>ownedMembers</code> of a <code>Namespace</code> are the <code>ownedMemberElements</code> of all its <code>ownedMemberships</code> that are <code>OwningMemberships</code>. + + + OCL2.0 + ownedMember = ownedMembership->selectByKind(OwningMembership).ownedMemberElement + + + + + <p>The <code>importedMemberships</code> of a <code>Namespace</code> are derived using the <code>importedMemberships()</code> operation, with no initially <code>excluded</code> <code>Namespaces</code>.</p> + + + OCL2.0 + importedMembership = importedMemberships(Set{}) + + + + + <p>The <code>ownedImports</code> of a <code>Namespace</code> are all its <code>ownedRelationships</code> that are <code>Imports</code>.</p> + + + OCL2.0 + ownedImport = ownedRelationship->selectByKind(Import) + + + + + <p>The <code>ownedMemberships</code> of a <code>Namespace</code> are all its <code>ownedRelationships</code> that are <code>Memberships</code>.</p> + + + OCL2.0 + ownedMembership = ownedRelationship->selectByKind(Membership) + + + + + + <p>All <code>Memberships</code> in this <code>Namespace</code>, including (at least) the union of <code>ownedMemberships</code> and <code>importedMemberships</code>.</p> + + + + + + + + <p>The <code>ownedRelationships</code> of this <code>Namespace</code> that are <code>Imports</code>, for which the <code>Namespace</code> is the <code>importOwningNamespace</code>.</p> + + + + + + + + <p>The set of all member <code>Elements</code> of this <code>Namespace</code>, which are the <code>memberElements</code> of all <code>memberships</code> of the <code>Namespace</code>.</p> + + + + + + + + <p>The owned <code>members</code> of this <code>Namespace</code>, which are the <cpde><code>ownedMemberElements</code> of the <code>ownedMemberships</code> of the <code>Namespace</code>.</p> + + + + + + + + <p>The <code>ownedRelationships</code> of this <code>Namespace</code> that are <code>Memberships</code>, for which the <code>Namespace</code> is the <code>membershipOwningNamespace</code>.</p> + + + + + + + + <p>The <code>Memberships</code> in this <code>Namespace</code> that result from the <code>ownedImports</code> of this <code>Namespace</code>.</p> + + + + + + + + <p>Return the names of the given <code>element</code> as it is known in this <code>Namespace</code>.</p> + + + + + OCL2.0 + let elementMemberships : Sequence(Membership) = + memberships->select(memberElement = element) in +memberships.memberShortName-> + union(memberships.memberName)-> + asSet() + + + + + + + + + + + + <p>Returns this visibility of <code>mem</code> relative to this <code>Namespace</code>. If <code>mem</code> is an <code>importedMembership</code>, this is the <code>visibility</code> of its Import. Otherwise it is the <code>visibility</code> of the <code>Membership</code> itself.</p> + + + + + OCL2.0 + if importedMembership->includes(mem) then + ownedImport-> + select(importedMemberships(Set{})->includes(mem)). + first().visibility +else if memberships->includes(mem) then + mem.visibility +else + VisibilityKind::private +endif + + + + + + + + <p>If <code>includeAll = true</code>, then return all the <code>Memberships</code> of this <code>Namespace</code>. Otherwise, return only the publicly visible <code>Memberships</code> of this <code>Namespace</code>, including <code>ownedMemberships</code> that have a <code>visibility</code> of <code>public</code> and <code>Memberships</code> imported with a <code>visibility</code> of <code>public</code>. If <code>isRecursive = true</code>, also recursively include all visible <code>Memberships</code> of any <code>public</code> owned <code>Namespaces</code>, or, if <code>IncludeAll = true</code>, all <code>Memberships</code> of all owned <code>Namespaces</code>. When computing imported <code>Memberships</code>, ignore this <code>Namespace</code> and any <code>Namespaces</code> in the given <code>excluded</code> set.</p> + + + + + OCL2.0 + let visibleMemberships : OrderedSet(Membership) = + if includeAll then membershipsOfVisibility(null, excluded) + else membershipsOfVisibility(VisibilityKind::public, excluded) + endif in +if not isRecursive then visibleMemberships +else visibleMemberships->union(ownedMember-> + selectAsKind(Namespace). + select(includeAll or owningMembership.visibility = VisibilityKind::public)-> + visibleMemberships(excluded->including(self), true, includeAll)) +endif + + + + + + + + + + + + + + + + + + + + + <p>Derive the imported <code>Memberships</code> of this <code>Namespace</code> as the <code>importedMembership</code> of all <code>ownedImports</code>, excluding those Imports whose <code>importOwningNamespace</code> is in the <code>excluded</code> set, and excluding <code>Memberships</code> that have distinguisibility collisions with each other or with any <code>ownedMembership</code>.</p> + + + + + OCL2.0 + ownedImport.importedMemberships(excluded->including(self)) + + + + + + + + + + + + + + <p>If <code>visibility</code> is not null, return the <code>Memberships</code> of this <code>Namespace</code> with the given <code>visibility</code>, including <code>ownedMemberships</code> with the given <code>visibility</code> and <code>Memberships</code> imported with the given <code>visibility</code>. If <code>visibility</code> is null, return all <code>ownedMemberships</code> and imported <code>Memberships</code> regardless of visibility. When computing imported <code>Memberships</code>, ignore this <code>Namespace</code> and any <code>Namespaces</code> in the given <code>excluded</code> set.</p> + + + + OCL2.0 + ownedMembership-> + select(mem | visibility = null or mem.visibility = visibility)-> + union(ownedImport-> + select(imp | visibility = null or imp.visibility = visibility). + importedMemberships(excluded->including(self))) + + + + + + + + + + + + + + + + + + <p>Resolve the given qualified name to the named <code>Membership</code> (if any), starting with this <code>Namespace</code> as the local scope. The qualified name string must conform to the concrete syntax of the KerML textual notation. According to the KerML name resolution rules every qualified name will resolve to either a single <code>Membership</code>, or to none.</p> + + + + + OCL2.0 + let qualification : String = qualificationOf(qualifiedName) in +let name : String = unqualifiedNameOf(qualifiedName) in +if qualification = null then resolveLocal(name) +else if qualification = '$' then resolveGlobal(name) +else + let namespaceMembership : Membership = resolve(qualification) in + if namespaceMembership = null or + not namespaceMembership.memberElement.oclIsKindOf(Namespace) + then null + else + namespaceMembership.memberElement.oclAsType(Namespace). + resolveVisible(name) + endif +endif endif + + + + + + + + + + + + + <p>Resolve the given qualified name to the named <code>Membership</code> (if any) in the effective global <code>Namespace</code> that is the outermost naming scope. The qualified name string must conform to the concrete syntax of the KerML textual notation.</p> + + + + + English + No OCL + + + + + + + + + + + + + <p>Resolve a simple <code>name</code> starting with this <code>Namespace</code> as the local scope, and continuing with containing outer scopes as necessary. However, if this <code>Namespace</code> is a root <code>Namespace</code>, then the resolution is done directly in global scope.</p> + + + + + OCL2.0 + if owningNamespace = null then resolveGlobal(name) +else + let memberships : Membership = membership-> + select(memberShortName = name or memberName = name) in + if memberships->notEmpty() then memberships->first() + else owningNamespace.resolveLocal(name) + endif +endif + + + + + + + + + + + + + <p>Resolve a simple name from the visible <code>Memberships</code> of this <code>Namespace</code>.</p> + + + + + OCL2.0 + let memberships : Sequence(Membership) = + visibleMemberships(Set{}, false, false)-> + select(memberShortName = name or memberName = name) in +if memberships->isEmpty() then null +else memberships->first() +endif + + + + + + + + + + + + + <p>Return a string with valid KerML syntax representing the qualification part of a given <code>qualifiedName</code>, that is, a qualified name with all the segment names of the given name except the last. If the given <code>qualifiedName</code> has only one segment, then return null.</p> + + + + English + No OCL + + + + + + + + + + + + + + <p>Return the simple name that is the last segment name of the given <code>qualifiedName</code>. If this segment name has the form of a KerML unrestricted name, then "unescape" it by removing the surrounding single quotes and replacing all escape sequences with the specified character.</p> + + + + English + No OCL + + + + + + + + + + + + + + + <p>An <code>Import</code> is an <code>Relationship</code> between its <code>importOwningNamespace</code> and either a <code>Membership</code> (for a <code>MembershipImport</code>) or another <code>Namespace</code> (for a <code>NamespaceImport</code>), which determines a set of <code>Memberships</code> that become <code>importedMemberships</code> of the <code>importOwningNamespace</code>. If <code>isImportAll = false</code> (the default), then only public <code>Memberships</code> are considered &quot;visible&quot;. If <code>isImportAll = true</code>, then all <code>Memberships</code> are considered &quot;visible&quot;, regardless of their declared <code>visibility</code>. If <code>isRecursive = true</code>, then visible <code>Memberships</code> are also recursively imported from owned sub-<code>Namespaces</code>.</p> - - - - - <p>A top-level <code>Import</code> (that is, one that is owned by a root <code>Namespace</code>) must have a <code>visibility</code> of <code>private</code>.</p> - - - OCL2.0 - importOwningNamespace.owner = null implies - visibility = VisibilityKind::private - - - - - - <p>The Namespace into which Memberships are imported by this Import, which must be the <code>owningRelatedElement</code> of the Import.</p> - - - - - - - - <p>The visibility level of the imported <code>members</code> from this Import relative to the <code>importOwningNamespace</code>. The default is <code>private</code>.</p> - - - - - - - <p>Whether to recursively import Memberships from visible, owned sub-Namespaces.</p> - - - - - - - <p>Whether to import memberships without regard to declared visibility.</p> - - - - - - - - <p>The effectively imported <code>Element</code> for this </code>Import</code>. For a <code>MembershipImport</code>, this is the <code>memberElement</code> of the <code>importedMembership</code>. For a <code>NamespaceImport</code>, it is the <code>importedNamespace</code>.</p> - - - - - - - <p>Returns Memberships that are to become <code>importedMemberships</code> of the <code>importOwningNamespace</code>. (The <code>excluded</code> parameter is used to handle the possibility of circular Import Relationships.)</p> - - - - - - - - - - - - - - - - <p>A <code>MembershipImport</code> is an <code>Import</code> that imports its <code>importedMembership</code> into the <code>importOwningNamespace</code>. If <code>isRecursive = true</code> and the <code>memberElement</code> of the <code>importedMembership</code> is a <code>Namespace</code>, then the equivalent of a recursive <code>NamespaceImport</code> is also performed on that <code>Namespace</code>.</p> - - - - - <p>The <code>importedElement</code> of a <code>MembershipImport</code> is the <code>memberElement</code> of its <code>importedMembership</code>.</p> - - - OCL2.0 - importedElement = importedMembership.memberElement - - - - - - <p>The <code>Membership</code> to be imported.</p> - - - - - - - - <p>Returns at least the <code>importedMembership</code>. If <code>isRecursive = true</code> and the <code>memberElement</code> of the <code>importedMembership</code> is a <code>Namespace</code>, then <code>Memberships</code> are also recursively imported from that <code>Namespace</code>.</p> - - - - - OCL2.0 - if not isRecursive or - not importedElement.oclIsKindOf(Namespace) or - excluded->includes(importedElement) - then Sequence{importedMembership} - else importedElement.oclAsType(Namespace). - visibleMemberships(excluded, true, importAll)-> - prepend(importedMembership) - endif - - - - - - - - - - - - - - - - <p>The Membership with a certain Element as its <code>memberElement</code>.</p> - - - - - - - - - <p>An Import with a certain <code>importedElement</code>.</p> - - - - - - - - <p>A <code>NamespaceImport</code> is an Import that imports <code>Memberships</code> from its <code>importedNamespace</code> into the <code>importOwningNamespace</code>. If <code> isRecursive = false</code>, then only the visible <code>Memberships</code> of the <code>importedNamespace</code> are imported. If <code> isRecursive = true</code>, then, in addition, <code>Memberships</code> are recursively imported from any <code>ownedMembers</code> of the <code>importedNamespace</code> that are <code>Namespaces</code>.</p> - - - - - <p>The <code>importedElement</code> of a <code>NamespaceImport</code> is its <code>importedNamespace</code>.</p> - - - OCL2.0 - importedElement = importedNamespace - - - - - - <p>The <code>Namespace</code> whose visible <code>Memberships</code> are imported by this <code>NamespaceImport</code>.</p> - - - - - - - - <p>Returns at least the visible <code>Memberships</code> of the <code>importedNamespace</code>. If <code>isRecursive = true</code>, then <code>Memberships</code> are also recursively imported from any <code>ownedMembers</code> of the <code>importedNamespace</code> that are themselves <code>Namespaces</code>.</p> - - - - - OCL2.0 - if excluded->includes(importedNamespace) then Sequence{} - else importedNamespace.visibleMemberships(excluded, isRecursive, isImportAll) - - - - - - - - - - - - - - - - <p>The Namespace that has a certain <code>membership</code>.</p> - - - - - - - - <p>A <code>Membership</code> is a <code>Relationship</code> between a <code>Namespace</code> and an <code>Element</code> that indicates the <code>Element</code> is a <code>member</code> of (i.e., is contained in) the Namespace. Any <code>memberNames</code> specify how the <code>memberElement</code> is identified in the <code>Namespace</code> and the <code>visibility</code> specifies whether or not the <code>memberElement</code> is publicly visible from outside the <code>Namespace</code>.</p> + + + + + <p>A top-level <code>Import</code> (that is, one that is owned by a root <code>Namespace</code>) must have a <code>visibility</code> of <code>private</code>.</p> + + + OCL2.0 + importOwningNamespace.owner = null implies + visibility = VisibilityKind::private + + + + + + <p>The Namespace into which Memberships are imported by this Import, which must be the <code>owningRelatedElement</code> of the Import.</p> + + + + + + + + <p>The visibility level of the imported <code>members</code> from this Import relative to the <code>importOwningNamespace</code>. The default is <code>private</code>.</p> + + + + + + + <p>Whether to recursively import Memberships from visible, owned sub-Namespaces.</p> + + + + + + + <p>Whether to import memberships without regard to declared visibility.</p> + + + + + + + + <p>The effectively imported <code>Element</code> for this </code>Import</code>. For a <code>MembershipImport</code>, this is the <code>memberElement</code> of the <code>importedMembership</code>. For a <code>NamespaceImport</code>, it is the <code>importedNamespace</code>.</p> + + + + + + + <p>Returns Memberships that are to become <code>importedMemberships</code> of the <code>importOwningNamespace</code>. (The <code>excluded</code> parameter is used to handle the possibility of circular Import Relationships.)</p> + + + + + + + + + + + + + + + + <p>A <code>MembershipImport</code> is an <code>Import</code> that imports its <code>importedMembership</code> into the <code>importOwningNamespace</code>. If <code>isRecursive = true</code> and the <code>memberElement</code> of the <code>importedMembership</code> is a <code>Namespace</code>, then the equivalent of a recursive <code>NamespaceImport</code> is also performed on that <code>Namespace</code>.</p> + + + + + <p>The <code>importedElement</code> of a <code>MembershipImport</code> is the <code>memberElement</code> of its <code>importedMembership</code>.</p> + + + OCL2.0 + importedElement = importedMembership.memberElement + + + + + + <p>The <code>Membership</code> to be imported.</p> + + + + + + + + <p>Returns at least the <code>importedMembership</code>. If <code>isRecursive = true</code> and the <code>memberElement</code> of the <code>importedMembership</code> is a <code>Namespace</code>, then <code>Memberships</code> are also recursively imported from that <code>Namespace</code>.</p> + + + + + OCL2.0 + if not isRecursive or + not importedElement.oclIsKindOf(Namespace) or + excluded->includes(importedElement) +then Sequence{importedMembership} +else importedElement.oclAsType(Namespace). + visibleMemberships(excluded, true, importAll)-> + prepend(importedMembership) +endif + + + + + + + + + + + + + + + + <p>The Membership with a certain Element as its <code>memberElement</code>.</p> + + + + + + + + + <p>An Import with a certain <code>importedElement</code>.</p> + + + + + + + + <p>A <code>NamespaceImport</code> is an Import that imports <code>Memberships</code> from its <code>importedNamespace</code> into the <code>importOwningNamespace</code>. If <code> isRecursive = false</code>, then only the visible <code>Memberships</code> of the <code>importedNamespace</code> are imported. If <code> isRecursive = true</code>, then, in addition, <code>Memberships</code> are recursively imported from any <code>ownedMembers</code> of the <code>importedNamespace</code> that are <code>Namespaces</code>.</p> + + + + + <p>The <code>importedElement</code> of a <code>NamespaceImport</code> is its <code>importedNamespace</code>.</p> + + + OCL2.0 + importedElement = importedNamespace + + + + + + <p>The <code>Namespace</code> whose visible <code>Memberships</code> are imported by this <code>NamespaceImport</code>.</p> + + + + + + + + <p>Returns at least the visible <code>Memberships</code> of the <code>importedNamespace</code>. If <code>isRecursive = true</code>, then <code>Memberships</code> are also recursively imported from any <code>ownedMembers</code> of the <code>importedNamespace</code> that are themselves <code>Namespaces</code>.</p> + + + + + OCL2.0 + if excluded->includes(importedNamespace) then Sequence{} +else importedNamespace.visibleMemberships(excluded, isRecursive, isImportAll) + + + + + + + + + + + + + + + + <p>The Namespace that has a certain <code>membership</code>.</p> + + + + + + + + <p>A <code>Membership</code> is a <code>Relationship</code> between a <code>Namespace</code> and an <code>Element</code> that indicates the <code>Element</code> is a <code>member</code> of (i.e., is contained in) the Namespace. Any <code>memberNames</code> specify how the <code>memberElement</code> is identified in the <code>Namespace</code> and the <code>visibility</code> specifies whether or not the <code>memberElement</code> is publicly visible from outside the <code>Namespace</code>.</p> - <p>If a <code>Membership</code> is an <code>OwningMembership</code>, then it owns its <code>memberElement</code>, which becomes an <code>ownedMember</code> of the <code>membershipOwningNamespace</code>. Otherwise, the <code>memberNames</code> of a <code>Membership</code> are effectively aliases within the <code>membershipOwningNamespace</code> for an <code>Element</code> with a separate <code>OwningMembership</code> in the same or a different <code>Namespace</code>.</p> +<p>If a <code>Membership</code> is an <code>OwningMembership</code>, then it owns its <code>memberElement</code>, which becomes an <code>ownedMember</code> of the <code>membershipOwningNamespace</code>. Otherwise, the <code>memberNames</code> of a <code>Membership</code> are effectively aliases within the <code>membershipOwningNamespace</code> for an <code>Element</code> with a separate <code>OwningMembership</code> in the same or a different <code>Namespace</code>.</p> - <p>&nbsp;</p> - - - - - <p>The <code>memberElementId</code> of a <code>Membership</code> is the <code>elementId</code> of its <code>memberElement</code>.</p> - - - OCL2.0 - memberElementId = memberElement.elementId - - - - - - <p>The <code>elementId</code> of the <code>memberElement</code>.</p> - - - - - - <p>The <code>Namespace</code> of which the <code>memberElement</code> becomes a <code>member</code> due to this <code>Membership</code>.</p> - - - - - - - - <p>The short name of the <code>memberElement</code> relative to the <code>membershipOwningNamespace</code>.</p> - - - - - - - - <p>The <code>Element</code> that becomes a <code>member</code> of the <code>membershipOwningNamespace</code> due to this <code>Membership</code>.</p> - - - - - - - - <p>The name of the <code>memberElement</code> relative to the <code>membershipOwningNamespace</code>.</p> - - - - - - - - - <p>Whether or not the <code>Membership</code> of the <code>memberElement</code> in the <code>membershipOwningNamespace</code> is publicly visible outside that <code>Namespace</code>.</p> - - - - - - - <p>Whether this <code>Membership</code> is distinguishable from a given <code>other</code> <code>Membership</code>. By default, this is true if this <code>Membership</code> has no <code>memberShortName</code> or <code>memberName</code>; or each of the <code>memberShortName</code> and <code>memberName</code> are different than both of those of the <code>other</code> <code>Membership</code>; or neither of the metaclasses of the <code>memberElement</code> of this <code>Membership</code> and the <code>memberElement</code> of the <code>other</code> <code>Membership</code> conform to the other. But this may be overridden in specializations of <code>Membership</code>.</p> - - - - - OCL2.0 - not (memberElement.oclKindOf(other.memberElement.oclType()) or - other.memberElement.oclKindOf(memberElement.oclType())) or - (shortMemberName = null or - (shortMemberName <> other.shortMemberName and - shortMemberName <> other.memberName)) and - (memberName = null or - (memberName <> other.shortMemberName and - memberName <> other.memberName))) - - - - - - - - - - - - - <p>The Namespace with a certain <code>importedMembership</code>.</p> - - - - - - - - - - <p>A NamespaceImport that has a certain <code>importedNamespace</code>.</p> - - - - - - - - <p>An <code>OwningMembership</code> is a <code>Membership</code> that owns its <code>memberElement</code> as a <code>ownedRelatedElement</code>. The <code>ownedMemberElement</code> becomes an <code>ownedMember</code> of the <code>membershipOwningNamespace</code>.</p> - - - - - <p>The <code>ownedMemberName</code> of an <code>OwningMembership</code> is the <code>name</code> of its <code>ownedMemberElement</code>.</p> - - - OCL2.0 - ownedMemberName = ownedMemberElement.name - - - - - <p>The <code>ownedMemberShortName</code> of an <code>OwningMembership</code> is the <code>shortName</code> of its <code>ownedMemberElement</code>.</p> - - - OCL2.0 - ownedMemberShortName = ownedMemberElement.shortName - - - - - - <p>The <code>Element</code> that becomes an <code>ownedMember</code> of the <code>membershipOwningNamespace</code> due to this <code>OwningMembership</code>.</p> - - - - - - - - <p>The <code>elementId</code> of the <code>ownedMemberElement</code>.</p> - - - - - - <p>The <code>shortName</code> of the <code>ownedMemberElement</code>.</p> - - - - - - - - <p>The <code>name</code> of the <code>ownedMemberElement</code>.</p> - - - - - - - - - <p>If the <code>ownedMemberElement</code> of this <code>OwningMembership</code> has a non-null <code>qualifiedName</code>, then return the string constructed by appending to that <code>qualifiedName</code> the string <code>"/owningMembership"</code>. Otherwise, return the <code>path</code> of the <code>OwningMembership</code> as specified for a <code>Relationship</code> in general. - - - - OCL2.0 - if ownedElement.qualifiedName <> null then - ownedElement.qualifiedName + '/owningMembership' - else self.oclAsType(Relationship).path() - endif - - - - - - - - - - - <p>The Namespace the has a certain Element as a <code>member</code>.</p> - - - - - - - - <p><code>VisibilityKind</code> is an enumeration whose literals specify the visibility of a <code>Membership</code> of an <code>Element</code> in a <code>Namespace</code> outside of that <code>Namespace</code>. Note that &quot;visibility&quot; specifically restricts whether an <code>Element</code> in a <code>Namespace</code> may be referenced by name from outside the <code>Namespace</code> and only otherwise restricts access to an <code>Element</code> as provided by specific constraints in the abstract syntax (e.g., preventing the import or inheritance of private <code>Elements</code>).</p> - - - - - <p>Indicates a <code>Membership</code> is not visible outside its owning <code>Namespace</code>.</p> - - - - - <p>An intermediate level of visibility between <code>public</code> and <code>private</code>. By default, it is equivalent to <code>private</code> for the purposes of normal access to and import of <code>Elements</code> from a <code>Namespace</code>. However, other <code>Relationships</code> may be specified to include <code>Memberships</code> with <code>protected</code> visibility in the list of <code>memberships</code> for a <code>Namespace</code> (e.g., <code>Specialization</code>).</p> - - - - - - <p>Indicates that a <code>Membership</code> is publicly visible outside its owning <code>Namespace</code>.</p> - - - - - - - <p>A MembershipImport that has a certain <code>importedMembership</code>.</p> - - - - - - - - - - <p>An <code>Element</code> is a constituent of a model that is uniquely identified relative to all other <code>Elements</code>. It can have <code>Relationships</code> with other <code>Elements</code>. Some of these <code>Relationships</code> might imply ownership of other <code>Elements</code>, which means that if an <code>Element</code> is deleted from a model, then so are all the <code>Elements</code> that it owns.</p> - - - - - <p>The <code>ownedElements</code> of an <code>Element</code> are the <code>ownedRelatedElements</code> of its <code>ownedRelationships</code>.</p> - - - OCL2.0 - ownedElement = ownedRelationship.ownedRelatedElement - - - - - <p>The <code>owner</code> of an <code>Element</code> is the <code>owningRelatedElement</code> of its <code>owningRelationship</code>.</p> - - - OCL2.0 - owner = owningRelationship.owningRelatedElement - - - - - <p>If this <code>Element</code> does not have an <code>owningNamespace</code>, then its <code>qualifiedName</code> is null. If the <code>owningNamespace</code> of this Element is a root <code>Namespace</code>, then the <code>qualifiedName</code> of the <code>Element</code> is the escaped name of the <code>Element</code> (if any). If the <code>owningNamespace</code> is non-null but not a root <code>Namespace</code>, then the <code>qualifiedName</code> of this <code>Element</code> is constructed from the <code>qualifiedName</code> of the <code>owningNamespace</code> and the escaped name of the <code>Element</code>, unless the <code>qualifiedName</code> of the <code>owningNamespace</code> is null or the escaped name is null, in which case the <code>qualifiedName</code> of this <code>Element</code> is also null. Further, if the <code>owningNamespace</code> has other <code>ownedMembers</code> with the same non-null name as this <code>Element</code>, and this <code>Element</code> is not the first, then the <code>qualifiedName</code> of this <code>Element</code> is null.</p> - - - OCL2.0 - qualifiedName = - if owningNamespace = null then null - else if name <> null and - owningNamespace.ownedMember-> - select(m | m.name = name).indexOf(self) <> 1 then null - else if owningNamespace.owner = null then escapedName() - else if owningNamespace.qualifiedName = null or - escapedName() = null then null - else owningNamespace.qualifiedName + '::' + escapedName() - endif endif endif endif - - - - - <p>The <code>documentation</code> of an <code>Element</code> is its <code>ownedElements</code> that are <code>Documentation</code>.</p> - - - OCL2.0 - documentation = ownedElement->selectByKind(Documentation) - - - - - <p>The <code>ownedAnnotations</code> of an <code>Element</code> are its <code>ownedRelationships</code> that are <code>Annotations</code>, for which the <code>Element</code> is the <code>annotatedElement</code>.</p> - - - OCL2.0 - ownedAnnotation = ownedRelationship-> - selectByKind(Annotation)-> - select(a | a.annotatedElement = self) - - - - - <p>The <code>name</code> of an <code>Element</code> is given by the result of the <code>effectiveName()</code> operation.</p> - - - OCL2.0 - name = effectiveName() - - - - - <p>If an <code>Element</code> has any <code>ownedRelationships</code> for which <code>isImplied = true</code>, then the <code>Element</code> must also have <code>isImpliedIncluded = true</code>. (Note that an <code>Element</code> <em>can</em> have <code>isImplied = true</code> even if no <code>ownedRelationships</code> have <code>isImplied = true</code>, indicating the <code>Element</code> simply has no implied <code>Relationships</code>.</p> - - - OCL2.0 - ownedRelationship->exists(isImplied) implies isImpliedIncluded - - - - - <p>An <code>Element</code> <code>isLibraryElement</code> if <code>libraryNamespace()</code> is not null.</p> - - - OCL2.0 - isLibraryElement = libraryNamespace() <> null - - - - - - <p>The <code>shortName</code> of an <code>Element</code> is given by the result of the <code>effectiveShortName()</code> operation.</p> - - - OCL2.0 - shortName = effectiveShortName() - - - - - <p>The <code>owningNamespace</code> of an <code>Element</code> is the <code>membershipOwningNamspace</code> of its <code>owningMembership</code> (if any).</p> - - - OCL2.0 - owningNamespace = - if owningMembership = null then null - else owningMembership.membershipOwningNamespace - endif - - - - - <p>The <code>textualRepresentations</code> of an <code>Element</code> are its <code>ownedElements</code> that are <code>TextualRepresentations</code>.</p> - - - OCL2.0 - textualRepresentation = ownedElement->selectByKind(TextualRepresentation) - - - - - <p>The <code>owningRelationship</code> of this <code>Element</code>, if that <code>Relationship</code> is a <code>Membership</code>.</p> - - - - - - - - <p>The Relationship for which this Element is an <tt>ownedRelatedElement</tt>, if any.</p> - - - - - - - - <p>The <code>Namespace</code> that owns this <code>Element</code>, which is the <code>membershipOwningNamespace</code> of the <code>owningMembership</code> of this <code>Element</code>, if any.</p> - - - - - - - - <p>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.</p> - - - - - - <p>The Relationships for which this Element is the <tt>owningRelatedElement</tt>.</p> - - - - - - - <p>The owner of this Element, derived as the <code>owningRelatedElement</code> of the <code>owningRelationship</code> of this Element, if any.</p> - - - - - - - <p>The Elements owned by this Element, derived as the <tt>ownedRelatedElements</tt> of the <tt>ownedRelationships</tt> of this Element.</p> - - - - - - - - <p>The Documentation owned by this Element.</p> - - - - - - - <p>The <code>ownedRelationships</code> of this <code>Element</code> that are <code>Annotations</code>, for which this <code>Element</code> is the <code>annotatedElement</code>.</code> - - - - - - - <p>The <code>TextualRepresentations</code> that annotate this <code>Element</code>.</p> - - - - - - - <p>Various alternative identifiers for this Element. Generally, these will be set by tools.</p> - - - - - - - - <p>An optional alternative name for the <code>Element</code> that is intended to be shorter or in some way more succinct than its primary <code>name</code>. It may act as a modeler-specified identifier for the <code>Element</code>, 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.</p> - - - - - - - - - <p>The declared name of this <code>Element</code>.</p> - - - - - - - - - <p>The short name to be used for this <code>Element</code> during name resolution within its <code>owningNamespace</code>. This is derived using the <code>effectiveShortName()</code> operation. By default, it is the same as the <code>declaredShortName</code>, but this is overridden for certain kinds of <code>Elements</code> to compute a <code>shortName</code> even when the <code>declaredName</code> is null.</p> - - - - - - - - <p>The name to be used for this <code>Element</code> during name resolution within its <code>owningNamespace</code>. This is derived using the <code>effectiveName()</code> operation. By default, it is the same as the <code>declaredName</code>, but this is overridden for certain kinds of <code>Elements</code> to compute a <code>name</code> even when the <code>declaredName</code> is null.</p> - - - - - - - - <p>The full ownership-qualified name of this <code>Element</code>, 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 <code>qualifiedName</code> is null if this <code>Element</code> has no <code>owningNamespace</code> or if there is not a complete ownership chain of named <code>Namespaces</code> from a root <code>Namespace</code> to this <code>Element</code>. If the <code>owningNamespace</code> has other <code>Elements</code> with the same name as this one, then the <code>qualifiedName</code> is null for all such <code>Elements</code> other than the first.</p> - - - - - - - - <p>Whether all necessary implied Relationships have been included in the <code>ownedRelationships</code> of this Element. This property may be true, even if there are not actually any <code>ownedRelationships</code> with <code>isImplied = true</code>, meaning that no such Relationships are actually implied for this Element. However, if it is false, then <code>ownedRelationships</code> may <em>not</em> contain any implied Relationships. That is, either <em>all</em> required implied Relationships must be included, or none of them.</p> - - - - - - - <p>Whether this Element is contained in the ownership tree of a library model.</p> - - - - - - <p>Return <code>name</code>, if that is not null, otherwise the <code>shortName</code>, if that is not null, otherwise null. If the returned value is non-null, it is returned as-is if it has the form of a basic name, or, otherwise, represented as a restricted name according to the lexical structure of the KerML textual notation (i.e., surrounded by single quote characters and with special characters escaped).</p> - - - - - - - - - - <p>Return an effective <code>shortName</code> for this <code>Element</code>. By default this is the same as its <code>declaredShortName</code>.</p> - - - - OCL2.0 - declaredShortName - - - - - - - - - - - <p>Return an effective <code>name</code> for this <code>Element</code>. By default this is the same as its <code>declaredName</code>.</p> - - - - OCL2.0 - declaredName - - - - - - - - - - - <p>By default, return the library Namespace of the <code>owningRelationship</code> of this Element, if it has one.</p> - - - - OCL2.0 - if owningRelationship <> null then owningRelationship.libraryNamespace() - else null endif - - - - - - - - - - <p>Return a unique description of the location of this <code>Element</code> in the containment structure rooted in a root <code>Namespace</code>. If the <code>Element</code> has a non-null <code>qualifiedName</code>, then return that. Otherwise, if it has an <code>owningRelationship</code>, then return the string constructed by appending to the <code>path</code> of it's <code>owningRelationship</code> the character <code>/</code> followed by the string representation of its position in the list of <code>ownedRelatedElements</code> of the <code>owningRelationship</code> (indexed starting at 1). Otherwise, return the empty string.</p> +<p>&nbsp;</p> + + + + + <p>The <code>memberElementId</code> of a <code>Membership</code> is the <code>elementId</code> of its <code>memberElement</code>.</p> + + + OCL2.0 + memberElementId = memberElement.elementId + + + + + + <p>The <code>elementId</code> of the <code>memberElement</code>.</p> + + + + + + <p>The <code>Namespace</code> of which the <code>memberElement</code> becomes a <code>member</code> due to this <code>Membership</code>.</p> + + + + + + + + <p>The short name of the <code>memberElement</code> relative to the <code>membershipOwningNamespace</code>.</p> + + + + + + + + <p>The <code>Element</code> that becomes a <code>member</code> of the <code>membershipOwningNamespace</code> due to this <code>Membership</code>.</p> + + + + + + + + <p>The name of the <code>memberElement</code> relative to the <code>membershipOwningNamespace</code>.</p> + + + + + + + + + <p>Whether or not the <code>Membership</code> of the <code>memberElement</code> in the <code>membershipOwningNamespace</code> is publicly visible outside that <code>Namespace</code>.</p> + + + + + + + <p>Whether this <code>Membership</code> is distinguishable from a given <code>other</code> <code>Membership</code>. By default, this is true if this <code>Membership</code> has no <code>memberShortName</code> or <code>memberName</code>; or each of the <code>memberShortName</code> and <code>memberName</code> are different than both of those of the <code>other</code> <code>Membership</code>; or neither of the metaclasses of the <code>memberElement</code> of this <code>Membership</code> and the <code>memberElement</code> of the <code>other</code> <code>Membership</code> conform to the other. But this may be overridden in specializations of <code>Membership</code>.</p> + + + + + OCL2.0 + not (memberElement.oclKindOf(other.memberElement.oclType()) or + other.memberElement.oclKindOf(memberElement.oclType())) or +(shortMemberName = null or + (shortMemberName <> other.shortMemberName and + shortMemberName <> other.memberName)) and +(memberName = null or + (memberName <> other.shortMemberName and + memberName <> other.memberName))) + + + + + + + + + + + + + <p>The Namespace with a certain <code>importedMembership</code>.</p> + + + + + + + + + + <p>A NamespaceImport that has a certain <code>importedNamespace</code>.</p> + + + + + + + + <p>An <code>OwningMembership</code> is a <code>Membership</code> that owns its <code>memberElement</code> as a <code>ownedRelatedElement</code>. The <code>ownedMemberElement</code> becomes an <code>ownedMember</code> of the <code>membershipOwningNamespace</code>.</p> + + + + + <p>The <code>ownedMemberName</code> of an <code>OwningMembership</code> is the <code>name</code> of its <code>ownedMemberElement</code>.</p> + + + OCL2.0 + ownedMemberName = ownedMemberElement.name + + + + + <p>The <code>ownedMemberShortName</code> of an <code>OwningMembership</code> is the <code>shortName</code> of its <code>ownedMemberElement</code>.</p> + + + OCL2.0 + ownedMemberShortName = ownedMemberElement.shortName + + + + + + <p>The <code>Element</code> that becomes an <code>ownedMember</code> of the <code>membershipOwningNamespace</code> due to this <code>OwningMembership</code>.</p> + + + + + + + + <p>The <code>elementId</code> of the <code>ownedMemberElement</code>.</p> + + + + + + <p>The <code>shortName</code> of the <code>ownedMemberElement</code>.</p> + + + + + + + + <p>The <code>name</code> of the <code>ownedMemberElement</code>.</p> + + + + + + + + + <p>If the <code>ownedMemberElement</code> of this <code>OwningMembership</code> has a non-null <code>qualifiedName</code>, then return the string constructed by appending to that <code>qualifiedName</code> the string <code>"/owningMembership"</code>. Otherwise, return the <code>path</code> of the <code>OwningMembership</code> as specified for a <code>Relationship</code> in general. + + + + OCL2.0 + if ownedElement.qualifiedName <> null then + ownedElement.qualifiedName + '/owningMembership' +else self.oclAsType(Relationship).path() +endif + + + + + + + + + + + <p>The Namespace the has a certain Element as a <code>member</code>.</p> + + + + + + + + <p><code>VisibilityKind</code> is an enumeration whose literals specify the visibility of a <code>Membership</code> of an <code>Element</code> in a <code>Namespace</code> outside of that <code>Namespace</code>. Note that &quot;visibility&quot; specifically restricts whether an <code>Element</code> in a <code>Namespace</code> may be referenced by name from outside the <code>Namespace</code> and only otherwise restricts access to an <code>Element</code> as provided by specific constraints in the abstract syntax (e.g., preventing the import or inheritance of private <code>Elements</code>).</p> + + + + + <p>Indicates a <code>Membership</code> is not visible outside its owning <code>Namespace</code>.</p> + + + + + <p>An intermediate level of visibility between <code>public</code> and <code>private</code>. By default, it is equivalent to <code>private</code> for the purposes of normal access to and import of <code>Elements</code> from a <code>Namespace</code>. However, other <code>Relationships</code> may be specified to include <code>Memberships</code> with <code>protected</code> visibility in the list of <code>memberships</code> for a <code>Namespace</code> (e.g., <code>Specialization</code>).</p> + + + + + + <p>Indicates that a <code>Membership</code> is publicly visible outside its owning <code>Namespace</code>.</p> + + + + + + + <p>A MembershipImport that has a certain <code>importedMembership</code>.</p> + + + + + + + + + + <p>An <code>Element</code> is a constituent of a model that is uniquely identified relative to all other <code>Elements</code>. It can have <code>Relationships</code> with other <code>Elements</code>. Some of these <code>Relationships</code> might imply ownership of other <code>Elements</code>, which means that if an <code>Element</code> is deleted from a model, then so are all the <code>Elements</code> that it owns.</p> + + + + + <p>The <code>ownedElements</code> of an <code>Element</code> are the <code>ownedRelatedElements</code> of its <code>ownedRelationships</code>.</p> + + + OCL2.0 + ownedElement = ownedRelationship.ownedRelatedElement + + + + + <p>The <code>owner</code> of an <code>Element</code> is the <code>owningRelatedElement</code> of its <code>owningRelationship</code>.</p> + + + OCL2.0 + owner = owningRelationship.owningRelatedElement + + + + + <p>If this <code>Element</code> does not have an <code>owningNamespace</code>, then its <code>qualifiedName</code> is null. If the <code>owningNamespace</code> of this Element is a root <code>Namespace</code>, then the <code>qualifiedName</code> of the <code>Element</code> is the escaped name of the <code>Element</code> (if any). If the <code>owningNamespace</code> is non-null but not a root <code>Namespace</code>, then the <code>qualifiedName</code> of this <code>Element</code> is constructed from the <code>qualifiedName</code> of the <code>owningNamespace</code> and the escaped name of the <code>Element</code>, unless the <code>qualifiedName</code> of the <code>owningNamespace</code> is null or the escaped name is null, in which case the <code>qualifiedName</code> of this <code>Element</code> is also null. Further, if the <code>owningNamespace</code> has other <code>ownedMembers</code> with the same non-null name as this <code>Element</code>, and this <code>Element</code> is not the first, then the <code>qualifiedName</code> of this <code>Element</code> is null.</p> + + + OCL2.0 + qualifiedName = + if owningNamespace = null then null + else if name <> null and + owningNamespace.ownedMember-> + select(m | m.name = name).indexOf(self) <> 1 then null + else if owningNamespace.owner = null then escapedName() + else if owningNamespace.qualifiedName = null or + escapedName() = null then null + else owningNamespace.qualifiedName + '::' + escapedName() + endif endif endif endif + + + + + <p>The <code>documentation</code> of an <code>Element</code> is its <code>ownedElements</code> that are <code>Documentation</code>.</p> + + + OCL2.0 + documentation = ownedElement->selectByKind(Documentation) + + + + + <p>The <code>ownedAnnotations</code> of an <code>Element</code> are its <code>ownedRelationships</code> that are <code>Annotations</code>, for which the <code>Element</code> is the <code>annotatedElement</code>.</p> + + + OCL2.0 + ownedAnnotation = ownedRelationship-> + selectByKind(Annotation)-> + select(a | a.annotatedElement = self) + + + + + <p>The <code>name</code> of an <code>Element</code> is given by the result of the <code>effectiveName()</code> operation.</p> + + + OCL2.0 + name = effectiveName() + + + + + <p>If an <code>Element</code> has any <code>ownedRelationships</code> for which <code>isImplied = true</code>, then the <code>Element</code> must also have <code>isImpliedIncluded = true</code>. (Note that an <code>Element</code> <em>can</em> have <code>isImplied = true</code> even if no <code>ownedRelationships</code> have <code>isImplied = true</code>, indicating the <code>Element</code> simply has no implied <code>Relationships</code>.</p> + + + OCL2.0 + ownedRelationship->exists(isImplied) implies isImpliedIncluded + + + + + <p>An <code>Element</code> <code>isLibraryElement</code> if <code>libraryNamespace()</code> is not null.</p> + + + OCL2.0 + isLibraryElement = libraryNamespace() <> null + + + + + + <p>The <code>shortName</code> of an <code>Element</code> is given by the result of the <code>effectiveShortName()</code> operation.</p> + + + OCL2.0 + shortName = effectiveShortName() + + + + + <p>The <code>owningNamespace</code> of an <code>Element</code> is the <code>membershipOwningNamespace</code> of its <code>owningMembership</code> (if any).</p> + + + OCL2.0 + owningNamespace = + if owningMembership = null then null + else owningMembership.membershipOwningNamespace + endif + + + + + <p>The <code>textualRepresentations</code> of an <code>Element</code> are its <code>ownedElements</code> that are <code>TextualRepresentations</code>.</p> + + + OCL2.0 + textualRepresentation = ownedElement->selectByKind(TextualRepresentation) + + + + + <p>The <code>owningRelationship</code> of this <code>Element</code>, if that <code>Relationship</code> is a <code>Membership</code>.</p> + + + + + + + + <p>The Relationship for which this Element is an <tt>ownedRelatedElement</tt>, if any.</p> + + + + + + + + <p>The <code>Namespace</code> that owns this <code>Element</code>, which is the <code>membershipOwningNamespace</code> of the <code>owningMembership</code> of this <code>Element</code>, if any.</p> + + + + + + + + <p>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.</p> + + + + + + <p>The Relationships for which this Element is the <tt>owningRelatedElement</tt>.</p> + + + + + + + <p>The owner of this Element, derived as the <code>owningRelatedElement</code> of the <code>owningRelationship</code> of this Element, if any.</p> + + + + + + + <p>The Elements owned by this Element, derived as the <tt>ownedRelatedElements</tt> of the <tt>ownedRelationships</tt> of this Element.</p> + + + + + + + + <p>The Documentation owned by this Element.</p> + + + + + + + <p>The <code>ownedRelationships</code> of this <code>Element</code> that are <code>Annotations</code>, for which this <code>Element</code> is the <code>annotatedElement</code>.</code> + + + + + + + <p>The <code>TextualRepresentations</code> that annotate this <code>Element</code>.</p> + + + + + + + <p>Various alternative identifiers for this Element. Generally, these will be set by tools.</p> + + + + + + + + <p>An optional alternative name for the <code>Element</code> that is intended to be shorter or in some way more succinct than its primary <code>name</code>. It may act as a modeler-specified identifier for the <code>Element</code>, 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.</p> + + + + + + + + + <p>The declared name of this <code>Element</code>.</p> + + + + + + + + + <p>The short name to be used for this <code>Element</code> during name resolution within its <code>owningNamespace</code>. This is derived using the <code>effectiveShortName()</code> operation. By default, it is the same as the <code>declaredShortName</code>, but this is overridden for certain kinds of <code>Elements</code> to compute a <code>shortName</code> even when the <code>declaredName</code> is null.</p> + + + + + + + + <p>The name to be used for this <code>Element</code> during name resolution within its <code>owningNamespace</code>. This is derived using the <code>effectiveName()</code> operation. By default, it is the same as the <code>declaredName</code>, but this is overridden for certain kinds of <code>Elements</code> to compute a <code>name</code> even when the <code>declaredName</code> is null.</p> + + + + + + + + <p>The full ownership-qualified name of this <code>Element</code>, 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 <code>qualifiedName</code> is null if this <code>Element</code> has no <code>owningNamespace</code> or if there is not a complete ownership chain of named <code>Namespaces</code> from a root <code>Namespace</code> to this <code>Element</code>. If the <code>owningNamespace</code> has other <code>Elements</code> with the same name as this one, then the <code>qualifiedName</code> is null for all such <code>Elements</code> other than the first.</p> + + + + + + + + <p>Whether all necessary implied Relationships have been included in the <code>ownedRelationships</code> of this Element. This property may be true, even if there are not actually any <code>ownedRelationships</code> with <code>isImplied = true</code>, meaning that no such Relationships are actually implied for this Element. However, if it is false, then <code>ownedRelationships</code> may <em>not</em> contain any implied Relationships. That is, either <em>all</em> required implied Relationships must be included, or none of them.</p> + + + + + + + <p>Whether this Element is contained in the ownership tree of a library model.</p> + + + + + + <p>Return <code>name</code>, if that is not null, otherwise the <code>shortName</code>, if that is not null, otherwise null. If the returned value is non-null, it is returned as-is if it has the form of a basic name, or, otherwise, represented as a restricted name according to the lexical structure of the KerML textual notation (i.e., surrounded by single quote characters and with special characters escaped).</p> + + + + + + + + + + <p>Return an effective <code>shortName</code> for this <code>Element</code>. By default this is the same as its <code>declaredShortName</code>.</p> + + + + OCL2.0 + declaredShortName + + + + + + + + + + + <p>Return an effective <code>name</code> for this <code>Element</code>. By default this is the same as its <code>declaredName</code>.</p> + + + + OCL2.0 + declaredName + + + + + + + + + + + <p>By default, return the library Namespace of the <code>owningRelationship</code> of this Element, if it has one.</p> + + + + OCL2.0 + if owningRelationship <> null then owningRelationship.libraryNamespace() +else null endif + + + + + + + + + + <p>Return a unique description of the location of this <code>Element</code> in the containment structure rooted in a root <code>Namespace</code>. If the <code>Element</code> has a non-null <code>qualifiedName</code>, then return that. Otherwise, if it has an <code>owningRelationship</code>, then return the string constructed by appending to the <code>path</code> of it's <code>owningRelationship</code> the character <code>/</code> followed by the string representation of its position in the list of <code>ownedRelatedElements</code> of the <code>owningRelationship</code> (indexed starting at 1). Otherwise, return the empty string.</p> - <p>(Note that this operation is overridden for <code>Relationships</code> to use <code>owningRelatedElement</code> when appropriate.)</p> - - - - OCL2.0 - if qualifiedName <> null then qualifiedName - else if owningRelationship <> null then - owningRelationship.path() + '/' + - owningRelationship.ownedRelatedElement->indexOf(self).toString() - -- A position index shall be converted to a decimal string representation - -- consisting of only decimal digits, with no sign, leading zeros or leading - -- or trailing whitespace. - else '' - endif endif - - - - - - - - - - - - - - - - - - - - - - - - - - <p>A <code>Relationship</code> is an <code>Element</code> that relates other <code>Element</code>. Some of its <code>relatedElements</code> may be owned, in which case those <code>ownedRelatedElements</code> will be deleted from a model if their <code>owningRelationship</code> is. A <code>Relationship</code> may also be owned by another <code>Element</code>, in which case the <code>ownedRelatedElements</code> of the <code>Relationship</code> are also considered to be transitively owned by the <code>owningRelatedElement</code> of the <code>Relationship</code>.</p> +<p>(Note that this operation is overridden for <code>Relationships</code> to use <code>owningRelatedElement</code> when appropriate.)</p> + + + + OCL2.0 + if qualifiedName <> null then qualifiedName +else if owningRelationship <> null then + owningRelationship.path() + '/' + + owningRelationship.ownedRelatedElement->indexOf(self).toString() + -- A position index shall be converted to a decimal string representation + -- consisting of only decimal digits, with no sign, leading zeros or leading + -- or trailing whitespace. +else '' +endif endif + + + + + + + + + + + + + + + + + + + + + + + + + + <p>A <code>Relationship</code> is an <code>Element</code> that relates other <code>Element</code>. Some of its <code>relatedElements</code> may be owned, in which case those <code>ownedRelatedElements</code> will be deleted from a model if their <code>owningRelationship</code> is. A <code>Relationship</code> may also be owned by another <code>Element</code>, in which case the <code>ownedRelatedElements</code> of the <code>Relationship</code> are also considered to be transitively owned by the <code>owningRelatedElement</code> of the <code>Relationship</code>.</p> - <p>The <code>relatedElements</code> of a <code>Relationship</code> are divided into <code>source</code> and <code>target</code> <code>Elements</code>. The <code>Relationship</code> is considered to be directed from the <code>source</code> to the <code>target</code> <code>Elements</code>. An undirected <code>Relationship</code> may have either all <code>source</code> or all <code>target</code> <code>Elements</code>.</p> +<p>The <code>relatedElements</code> of a <code>Relationship</code> are divided into <code>source</code> and <code>target</code> <code>Elements</code>. The <code>Relationship</code> is considered to be directed from the <code>source</code> to the <code>target</code> <code>Elements</code>. An undirected <code>Relationship</code> may have either all <code>source</code> or all <code>target</code> <code>Elements</code>.</p> - <p>A &quot;relationship <code>Element</code>&quot; in the abstract syntax is generically any <code>Element</code> that is an instance of either <code>Relationship</code> or a direct or indirect specialization of <code>Relationship</code>. Any other kind of <code>Element</code> is a &quot;non-relationship <code>Element</code>&quot;. It is a convention of that non-relationship <code>Elements</code> are <em>only</em> related via reified relationship <code>Elements</code>. Any meta-associations directly between non-relationship <code>Elements</code> must be derived from underlying reified <code>Relationship</code>.</p> - - - - - <p>The <code>relatedElements</code> of a <code>Relationship</code> consist of all of its <code>source</code> <code>Elements</code> followed by all of its <code>target</code> <code>Elements</code>.</p> - - - OCL2.0 - relatedElement = source->union(target) - - - - - - <p>The Elements that are related by this Relationship, derived as the union of the <code>source</code> and <code>target</code> Elements of the Relationship.</p> - - - - - - - <p>The <code>relatedElements</code> to which this Relationship is considered to be directed.</p> - - - - - - - - <p>The <code>relatedElements</c ode> from which this Relationship is considered to be directed.</p> - - - - - - - <p>The <tt>relatedElement</tt> of this Relationship that owns the Relationship, if any.</p> - - - - - - - <p>The <tt>relatedElements</tt> of this Relationship that are owned by the Relationship.</p> - - - - - - - <p>Whether this Relationship was generated by tooling to meet semantic rules, rather than being directly created by a modeler.</p> - - - - - - - <p>Return whether this Relationship has either an <code>owningRelatedElement</code> or <code>owningRelationship</code> that is a library element.</p> - - - - OCL2.0 - if owningRelatedElement <> null then owningRelatedElement.libraryNamespace() - else if owningRelationship <> null then owningRelationship.libraryNamespace() - else null endif endif - - - - - - - - - - <p>If the <code>owningRelationship</code> of the <code>Relationship</code> is null but its <code>owningRelatedElement</code> is non-null, construct the <code>path</code> using the position of the <code>Relationship</code> in the list of <code>ownedRelationships</code> of its <code>owningRelatedElement</code>. Otherwise, return the <code>path</code> of the <code>Relationship</code> as specified for an <code>Element</code> in general.</p> - - - - OCL2.0 - if owningRelationship = null and owningRelatedElement <> null then - owningRelatedElement.path() + '/' + - owningRelatedElement.ownedRelationship->indexOf(self).toString() - -- A position index shall be converted to a decimal string representation - -- consisting of only decimal digits, with no sign, leading zeros or leading - -- or trailing whitespace. - else self.oclAsType(Element).path() - endif - - - - - - - - - - - - - - - - +<p>A &quot;relationship <code>Element</code>&quot; in the abstract syntax is generically any <code>Element</code> that is an instance of either <code>Relationship</code> or a direct or indirect specialization of <code>Relationship</code>. Any other kind of <code>Element</code> is a &quot;non-relationship <code>Element</code>&quot;. It is a convention of that non-relationship <code>Elements</code> are <em>only</em> related via reified relationship <code>Elements</code>. Any meta-associations directly between non-relationship <code>Elements</code> must be derived from underlying reified <code>Relationship</code>.</p> + + + + + <p>The <code>relatedElements</code> of a <code>Relationship</code> consist of all of its <code>source</code> <code>Elements</code> followed by all of its <code>target</code> <code>Elements</code>.</p> + + + OCL2.0 + relatedElement = source->union(target) + + + + + + <p>The Elements that are related by this Relationship, derived as the union of the <code>source</code> and <code>target</code> Elements of the Relationship.</p> + + + + + + + <p>The <code>relatedElements</code> to which this Relationship is considered to be directed.</p> + + + + + + + + <p>The <code>relatedElements</c ode> from which this Relationship is considered to be directed.</p> + + + + + + + <p>The <tt>relatedElement</tt> of this Relationship that owns the Relationship, if any.</p> + + + + + + + <p>The <tt>relatedElements</tt> of this Relationship that are owned by the Relationship.</p> + + + + + + + <p>Whether this Relationship was generated by tooling to meet semantic rules, rather than being directly created by a modeler.</p> + + + + + + + <p>Return whether this Relationship has either an <code>owningRelatedElement</code> or <code>owningRelationship</code> that is a library element.</p> + + + + OCL2.0 + if owningRelatedElement <> null then owningRelatedElement.libraryNamespace() +else if owningRelationship <> null then owningRelationship.libraryNamespace() +else null endif endif + + + + + + + + + + <p>If the <code>owningRelationship</code> of the <code>Relationship</code> is null but its <code>owningRelatedElement</code> is non-null, construct the <code>path</code> using the position of the <code>Relationship</code> in the list of <code>ownedRelationships</code> of its <code>owningRelatedElement</code>. Otherwise, return the <code>path</code> of the <code>Relationship</code> as specified for an <code>Element</code> in general.</p> + + + + OCL2.0 + if owningRelationship = null and owningRelatedElement <> null then + owningRelatedElement.path() + '/' + + owningRelatedElement.ownedRelationship->indexOf(self).toString() + -- A position index shall be converted to a decimal string representation + -- consisting of only decimal digits, with no sign, leading zeros or leading + -- or trailing whitespace. +else self.oclAsType(Element).path() +endif + + + + + + + + + + + + + + + - - - The Core layer provides the semantic foundation for KerML. + + + + The Core layer provides the semantic foundation for KerML. + + + + + + + <p>A Type with a certain <code>input</code>.</p> + + + + + + + + + <p>A Type that has an EndFeatureMembership in which the <code>endFeature</code> is a <code>memberFeature</code>.</p> + + + + + + + + + + <p>A Type with a certain <code>output</code>.</p> + + + + + + + + + + <p><code>Specialization</code> is a <code>Relationship</code> between two <code>Types</code> that requires all instances of the <code>specific</code> type to also be instances of the <code>general</code> Type (i.e., the set of instances of the <code>specific</code> Type is a <em>subset</em> of those of the <code>general</code> Type, which might be the same set).</p> + + + + + <p>The <code>specific</code> <code>Type</code> of a <code>Specialization</code> cannot be a conjugated <code>Type</code>.</p> + + + OCL2.0 + not specific.isConjugated + + + + + + <p>The <code>Type</code> that is the <code>specific</code> <code>Type</code> of this <code>Specialization</code> and owns it as its <code>owningRelatedElement</code>.</p> + + + + + + + + <p>A <code>Type</code> with a superset of all instances of the <code>specific</code> <code>Type</code>, which might be the same set.</p> + + + + + + + + <p>A <code>Type</code> with a subset of all instances of the <code>general</code> <code>Type</code>, which might be the same set.</p> + + + + + + + + + <p><code>FeatureDirectionKind</code> enumerates the possible kinds of <code>direction</code> that a <code>Feature</code> may be given as a member of a <code>Type</code>.</p> + - - - - - - <p>A Type with a certain <code>input</code>.</p> - - - - - - - - - <p>A Type that has an EndFeatureMembership in which the <code>endFeature</code> is a <code>memberFeature</code>.</p> - - - - - - - - - - <p>A Type with a certain <code>output</code>.</p> - - - - - - - - - - <p><code>Specialization</code> is a <code>Relationship</code> between two <code>Types</code> that requires all instances of the <code>specific</code> type to also be instances of the <code>general</code> Type (i.e., the set of instances of the <code>specific</code> Type is a <em>subset</em> of those of the <code>general</code> Type, which might be the same set).</p> - - - - - <p>The <code>specific</code> <code>Type</code> of a <code>Specialization</code> cannot be a conjugated <code>Type</code>.</p> - - - OCL2.0 - not specific.isConjugated - - - - - - <p>The <code>Type</code> that is the <code>specific</code> <code>Type</code> of this <code>Specialization</code> and owns it as its <code>owningRelatedElement</code>.</p> - - - - - - - - <p>A <code>Type</code> with a superset of all instances of the <code>specific</code> <code>Type</code>, which might be the same set.</p> - - - - - - - - <p>A <code>Type</code> with a subset of all instances of the <code>general</code> <code>Type</code>, which might be the same set.</p> - - - - - - - - - <p><code>FeatureDirectionKind</code> enumerates the possible kinds of <code>direction</code> that a <code>Feature</code> may be given as a member of a <code>Type</code>.</p> - - - - - <p>Values of the <code>Feature</code> on each instance of its domain are determined externally to that instance and used internally.</p> - - - - - - <p>Values of the <code>Feature</code> on each instance are determined either as <em>in</em> or <em>out</em> directions, or both.</p> - - - - - - <p>Values of the <code>Feature</code> on each instance of its domain are determined internally to that instance and used externally.</p> - - - - - - - - <p>The Specializations with a certain <code>specific</code> Type.</p> - - - - - - - - - - <p>The Specializations with a certain <code>general<code> Type.</p> - - - - - - - - <p>A <code>Type</code> is a <code>Namespace</code> that is the most general kind of <code>Element</code> supporting the semantics of classification. A <code>Type</code> may be a <code>Classifier</code> or a <code>Feature</code>, defining conditions on what is classified by the <code>Type</code> (see also the description of <code>isSufficient</code>).</p> - - - - - <p>The <code>ownedSpecializations</code> of a <code>Type</code> are the <code>ownedRelationships</code> that are <code>Specializations</code> whose <code>special</code> <code>Type</code> is the owning <code>Type</code>.</p> - - - OCL2.0 - ownedSpecialization = ownedRelationship->selectByKind(Specialization)-> - select(s | s.special = self) - - - - - - <p>If a <code>Type</code> has an owned <code>Multiplicity</code>, then that is its <code>multiplicity</code>. Otherwise, if the <code>Type</code> has an <code>ownedSpecialization</code>, then its <code>multiplicity</code> is the <code>multiplicity</code> of the <code>general</code> <code>Type</code> of that <code>Specialization</code>.</p> - - - OCL2.0 - multiplicity = - let ownedMultiplicities: Sequence(Multiplicity) = - ownedMember->selectByKind(Multiplicity) in - if ownedMultiplicities->isEmpty() then null - else ownedMultiplicities->first() - endif - - - - - <p>The <code>ownedFeatureMemberships</code> of a <code>Type</code> are its <code>ownedMemberships</code> that are <code>FeatureMemberships</code>.</p> - - - OCL2.0 - ownedFeatureMembership = ownedRelationship->selectByKind(FeatureMembership) - - - - - <p>The <code>ownedConjugator</code> of a <code>Type</code> is the its single <code>ownedRelationship</code> that is a <code>Conjugation</code>.</p> - - - OCL2.0 - ownedConjugator = - let ownedConjugators: Sequence(Conjugator) = - ownedRelationship->selectByKind(Conjugation) in - if ownedConjugators->isEmpty() then null - else ownedConjugators->at(1) endif - - - - - <p>The <code>outputs</code> of a <code>Type</code> are those of its <code>features</code> that have a direction of <ode>out</code> or <code>inout</code> relative to the <code>Type</code>, taking conjugation into account.</p> - - - OCL2.0 - output = feature->select(f | - let direction: FeatureDirectionKind = directionOf(f) in - direction = FeatureDirectionKind::out or - direction = FeatureDirectionKind::inout) - - - - - <p>The <code>inputs</code> of a <code>Type</code> are those of its features that have a direction of <code>in</code> or <code>inout</code> relative to the <code>Type</code>, taking conjugation into account.</p> - - - OCL2.0 - input = feature->select(f | - let direction: FeatureDirectionKind = directionOf(f) in - direction = FeatureDirectionKind::_'in' or - direction = FeatureDirectionKind::inout) - - - - - <p>The <code>inheritedMemberships<code> of a <code>Type</code> are determined by the <code>inheritedMemberships()</code> operation.</p> - - - OCL2.0 - inheritedMembership = inheritedMemberships(Set{}, Set{}, false) - - - - - <p>A <code>Type</code> must directly or indirectly specialize <code><em>Base::Anything</em></code> from the Kernel Semantic Library.</p> - - - OCL2.0 - specializesFromLibrary('Base::Anything') - - - - - <p>The <code>directedFeatures</code> of a <code>Type</code> are those <code>features</code> for which the <code>direction</code> is non-null.</p> - - - OCL2.0 - directedFeature = feature->select(f | directionOf(f) <> null) - - - - - <p>The <code>features</code> of a <code>Type</code> are the <code>ownedMemberFeatures</code> of its <code>featureMemberships</code>. - - - OCL2.0 - feature = featureMembership.ownedMemberFeature - - - - - <p>The <code>featureMemberships</code> of a <code>Type</code> is the union of the <code>ownedFeatureMemberships</code> and those <code>inheritedMemberships</code> that are <code>FeatureMemberships</code>.</p> - - - OCL2.0 - featureMembership = ownedFeatureMembership->union( - inheritedMembership->selectByKind(FeatureMembership)) - - - - - <p>The <code>ownedFeatures</code> of a <code>Type</code> are the <code>ownedMemberFeatures</code> of its <code>ownedFeatureMemberships</code>. - - - English - ownedFeature = ownedFeatureMembership.ownedMemberFeature - - - - - <p>The <code>differencingTypes</code> of a <code>Type</code> are the <code>differencingTypes</code> of its <code>ownedDifferencings</code>, in the same order.</p> - - - English - differencingType = ownedDifferencing.differencingType - - - - - <p>A <code>Type</code> cannot be one of its own <code>intersectingTypes</code>.</p> - - - English - intersectingType->excludes(self) - - - - - <p>A <code>Type</code> cannot be one of its own <code>differencingTypes</code>.</p> - - - English - differencingType->excludes(self) - - - - - <p>The <code>unioningTypes</code> of a <code>Type</code> are the <code>unioningTypes</code> of its <code>ownedUnionings</code>.<p> - - - OCL2.0 - unioningType = ownedUnioning.unioningType - - - - - <p>A <code>Type</code> cannot be one of its own <code>unioningTypes</code>.</p> - - - English - unioningType->excludes(self) - - - - - <p>The <code>intersectingTypes</code> of a <code>Type</code> are the <code>intersectingTypes</code> of its <code>ownedIntersectings</code>.</p> - - - OCL2.0 - intersectingType = ownedIntersecting.intersectingType - - - - - A <code>Type</code> must have at most one owned <code>Conjugation</code> <code>Relationship</code>. - - - OCL2.0 - ownedRelationship->selectByKind(Conjugation)->size() <= 1 - - - - - <p>A <code>Type</code> may have at most one <code>ownedMember</code> that is a <code>Multiplicity</code>.</p> - - - OCL2.0 - ownedMember->selectByKind(Multiplicity)->size() <= 1 - - - - - <p>The <code>endFeatures</code> of a <code>Type</code> are all its <code>features</code> for which <code>isEnd = true</code>.</p> - - - OCL2.0 - endFeature = feature->select(isEnd) - - - - - <p>The <code>ownedDisjoinings</code> of a <code>Type</code> are the <code>ownedRelationships</code> that are <code>Disjoinings</code>.</p> - - - OCL2.0 - ownedDisjoining = - ownedRelationship->selectByKind(Disjoining) - - - - - <p>The <code>ownedUnionings</code> of a <code>Type</code> are the <code>ownedRelationships</code> that are <code>Unionings</code>.</p> - - - OCL2.0 - ownedUnioning = - ownedRelationship->selectByKind(Unioning) - - - - - <p>The <code>ownedIntersectings</code> of a <code>Type</code> are the <code>ownedRelationships</code> that are <code>Intersectings</code>.</p> - - - OCL2.0 - ownedRelationship->selectByKind(Intersecting) - - - - - <p>The <code>ownedDifferencings</code> of a <code>Type</code> are its <code>ownedRelationships</code> that are <code>Differencings</code>.</p> - - - OCL2.0 - ownedDifferencing = - ownedRelationship->selectByKind(Differencing) - - - - - <p>The <code>ownedEndFeatures</code> of a <code>Type</code> are all its <code>ownedFeatures</code> for which <code>isEnd = true</code>.</p> - - - OCL2.0 - ownedEndFeature = ownedFeature->select(isEnd) - - - - - <p>The <code>inheritedFeatures</code> of this <code>Type</code> are the <code>memberFeatures</code> of the <code>inheritedMemberships</code> that are <code>FeatureMemberships</code>.</p> - - - OCL2.0 - inheritedFeature = inheritedMemberships-> - selectByKind(FeatureMembership).memberFeature - - - - - A <code>Type</code> must not have exactly one <code>ownedUnioning</code>. - - - OCL2.0 - ownedUnioning->size() <> 1 - - - - - A <code>Type</code> must not have exactly one <code>ownedIntersecting</code>. - - - OCL2.0 - ownedIntersecting->size() <> 1 - - - - - A <code>Type</code> must not have exactly one <code>ownedDifferencing</code>. - - - OCL2.0 - ownedDifferencing->size() <> 1 - - - - - - <p>The <code>ownedRelationships</code> of this <code>Type</code> that are <code>Specializations</code>, for which the <code>Type</code> is the <code>specific</code> <code>Type</code>.</p> - - - - - - - - <p>The <code>ownedMemberships</code> of this <code>Type</code> that are <code>FeatureMemberships</code>, for which the <code>Type</code> is the <code>owningType</code>. Each such <code>FeatureMembership</code> identifies an <code>ownedFeature</code> of the <code>Type</code>.</p> - - - - - - - - <p>The <code>ownedMemberFeatures</code> of the <code>featureMemberships</code> of this <code>Type</code>.</p> - - - - - - - - <p>The <code>ownedMemberFeatures</code> of the <code>ownedFeatureMemberships</code> of this <code>Type</code>.</p> - - - - - - - - <p>All <code>features</code> related to this <code>Type</code> by <code>FeatureMemberships</code> that have <code>direction</code> <code>in</code> or <code>inout</code>.</p> - - - - - - - - <p>All <code>features</code> related to this <code>Type</code> by <code>FeatureMemberships</code> that have <code>direction</code> <code>out</code> or <code>inout</code>.</p> - - - - - - - - <p>Indicates whether instances of this <code>Type</code> must also be instances of at least one of its specialized <code>Types</code>.</p> - - - - - - - - <p>All <code>Memberships</code> inherited by this <code>Type</code> via <code>Specialization</code> or <code>Conjugation</code>. These are included in the derived union for the <code>memberships</code> of the <code>Type</code>.</p> - - - - - - - - <p>All <code>features</code> of this <code>Type</code> with <code>isEnd = true</code>.</p> - - - - - - - <p>All <code>endFeatures</code> of this <code>Type</code> that are <code>ownedFeatures</code>.</p> - - - - - - - - <p>Whether all things that meet the classification conditions of this <code>Type</code> must be classified by the <code>Type</code>.</p> + + + <p>Values of the <code>Feature</code> on each instance of its domain are determined externally to that instance and used internally.</p> + + + + + + <p>Values of the <code>Feature</code> on each instance are determined either as <em>in</em> or <em>out</em> directions, or both.</p> + + + + + + <p>Values of the <code>Feature</code> on each instance of its domain are determined internally to that instance and used externally.</p> + + + + + + + + <p>The Specializations with a certain <code>specific</code> Type.</p> + + + + + + + + + + <p>The Specializations with a certain <code>general<code> Type.</p> + + + + + + + + <p>A <code>Type</code> is a <code>Namespace</code> that is the most general kind of <code>Element</code> supporting the semantics of classification. A <code>Type</code> may be a <code>Classifier</code> or a <code>Feature</code>, defining conditions on what is classified by the <code>Type</code> (see also the description of <code>isSufficient</code>).</p> + + + + + <p>The <code>ownedSpecializations</code> of a <code>Type</code> are the <code>ownedRelationships</code> that are <code>Specializations</code> whose <code>special</code> <code>Type</code> is the owning <code>Type</code>.</p> + + + OCL2.0 + ownedSpecialization = ownedRelationship->selectByKind(Specialization)-> + select(s | s.special = self) + + + + + + <p>If a <code>Type</code> has an owned <code>Multiplicity</code>, then that is its <code>multiplicity</code>. Otherwise, if the <code>Type</code> has an <code>ownedSpecialization</code>, then its <code>multiplicity</code> is the <code>multiplicity</code> of the <code>general</code> <code>Type</code> of that <code>Specialization</code>.</p> + + + OCL2.0 + multiplicity = + let ownedMultiplicities: Sequence(Multiplicity) = + ownedMember->selectByKind(Multiplicity) in + if ownedMultiplicities->isEmpty() then null + else ownedMultiplicities->first() + endif + + + + + <p>The <code>ownedFeatureMemberships</code> of a <code>Type</code> are its <code>ownedMemberships</code> that are <code>FeatureMemberships</code>.</p> + + + OCL2.0 + ownedFeatureMembership = ownedRelationship->selectByKind(FeatureMembership) + + + + + <p>The <code>ownedConjugator</code> of a <code>Type</code> is the its single <code>ownedRelationship</code> that is a <code>Conjugation</code>.</p> + + + OCL2.0 + ownedConjugator = + let ownedConjugators: Sequence(Conjugator) = + ownedRelationship->selectByKind(Conjugation) in + if ownedConjugators->isEmpty() then null + else ownedConjugators->at(1) endif + + + + + <p>The <code>outputs</code> of a <code>Type</code> are those of its <code>features</code> that have a direction of <ode>out</code> or <code>inout</code> relative to the <code>Type</code>, taking conjugation into account.</p> + + + OCL2.0 + output = feature->select(f | + let direction: FeatureDirectionKind = directionOf(f) in + direction = FeatureDirectionKind::out or + direction = FeatureDirectionKind::inout) + + + + + <p>The <code>inputs</code> of a <code>Type</code> are those of its features that have a direction of <code>in</code> or <code>inout</code> relative to the <code>Type</code>, taking conjugation into account.</p> + + + OCL2.0 + input = feature->select(f | + let direction: FeatureDirectionKind = directionOf(f) in + direction = FeatureDirectionKind::_'in' or + direction = FeatureDirectionKind::inout) + + + + + <p>The <code>inheritedMemberships<code> of a <code>Type</code> are determined by the <code>inheritedMemberships()</code> operation.</p> + + + OCL2.0 + inheritedMembership = inheritedMemberships(Set{}, Set{}, false) + + + + + <p>A <code>Type</code> must directly or indirectly specialize <code><em>Base::Anything</em></code> from the Kernel Semantic Library.</p> + + + OCL2.0 + specializesFromLibrary('Base::Anything') + + + + + <p>The <code>directedFeatures</code> of a <code>Type</code> are those <code>features</code> for which the <code>direction</code> is non-null.</p> + + + OCL2.0 + directedFeature = feature->select(f | directionOf(f) <> null) + + + + + <p>The <code>features</code> of a <code>Type</code> are the <code>ownedMemberFeatures</code> of its <code>featureMemberships</code>. + + + OCL2.0 + feature = featureMembership.ownedMemberFeature + + + + + <p>The <code>featureMemberships</code> of a <code>Type</code> is the union of the <code>ownedFeatureMemberships</code> and those <code>inheritedMemberships</code> that are <code>FeatureMemberships</code>.</p> + + + OCL2.0 + featureMembership = ownedFeatureMembership->union( + inheritedMembership->selectByKind(FeatureMembership)) + + + + + <p>The <code>ownedFeatures</code> of a <code>Type</code> are the <code>ownedMemberFeatures</code> of its <code>ownedFeatureMemberships</code>. + + + English + ownedFeature = ownedFeatureMembership.ownedMemberFeature + + + + + <p>The <code>differencingTypes</code> of a <code>Type</code> are the <code>differencingTypes</code> of its <code>ownedDifferencings</code>, in the same order.</p> + + + English + differencingType = ownedDifferencing.differencingType + + + + + <p>A <code>Type</code> cannot be one of its own <code>intersectingTypes</code>.</p> + + + English + intersectingType->excludes(self) + + + + + <p>A <code>Type</code> cannot be one of its own <code>differencingTypes</code>.</p> + + + English + differencingType->excludes(self) + + + + + <p>The <code>unioningTypes</code> of a <code>Type</code> are the <code>unioningTypes</code> of its <code>ownedUnionings</code>.<p> + + + OCL2.0 + unioningType = ownedUnioning.unioningType + + + + + <p>A <code>Type</code> cannot be one of its own <code>unioningTypes</code>.</p> + + + English + unioningType->excludes(self) + + + + + <p>The <code>intersectingTypes</code> of a <code>Type</code> are the <code>intersectingTypes</code> of its <code>ownedIntersectings</code>.</p> + + + OCL2.0 + intersectingType = ownedIntersecting.intersectingType + + + + + A <code>Type</code> must have at most one owned <code>Conjugation</code> <code>Relationship</code>. + + + OCL2.0 + ownedRelationship->selectByKind(Conjugation)->size() <= 1 + + + + + <p>A <code>Type</code> may have at most one <code>ownedMember</code> that is a <code>Multiplicity</code>.</p> + + + OCL2.0 + ownedMember->selectByKind(Multiplicity)->size() <= 1 + + + + + <p>The <code>endFeatures</code> of a <code>Type</code> are all its <code>features</code> for which <code>isEnd = true</code>.</p> + + + OCL2.0 + endFeature = feature->select(isEnd) + + + + + <p>The <code>ownedDisjoinings</code> of a <code>Type</code> are the <code>ownedRelationships</code> that are <code>Disjoinings</code>.</p> + + + OCL2.0 + ownedDisjoining = + ownedRelationship->selectByKind(Disjoining) + + + + + <p>The <code>ownedUnionings</code> of a <code>Type</code> are the <code>ownedRelationships</code> that are <code>Unionings</code>.</p> + + + OCL2.0 + ownedUnioning = + ownedRelationship->selectByKind(Unioning) + + + + + <p>The <code>ownedIntersectings</code> of a <code>Type</code> are the <code>ownedRelationships</code> that are <code>Intersectings</code>.</p> + + + OCL2.0 + ownedRelationship->selectByKind(Intersecting) + + + + + <p>The <code>ownedDifferencings</code> of a <code>Type</code> are its <code>ownedRelationships</code> that are <code>Differencings</code>.</p> + + + OCL2.0 + ownedDifferencing = + ownedRelationship->selectByKind(Differencing) + + + + + <p>The <code>ownedEndFeatures</code> of a <code>Type</code> are all its <code>ownedFeatures</code> for which <code>isEnd = true</code>.</p> + + + OCL2.0 + ownedEndFeature = ownedFeature->select(isEnd) + + + + + <p>The <code>inheritedFeatures</code> of this <code>Type</code> are the <code>memberFeatures</code> of the <code>inheritedMemberships</code> that are <code>FeatureMemberships</code>.</p> + + + OCL2.0 + inheritedFeature = inheritedMemberships-> + selectByKind(FeatureMembership).memberFeature + + + + + A <code>Type</code> must not have exactly one <code>ownedUnioning</code>. + + + OCL2.0 + ownedUnioning->size() <> 1 + + + + + A <code>Type</code> must not have exactly one <code>ownedIntersecting</code>. + + + OCL2.0 + ownedIntersecting->size() <> 1 + + + + + A <code>Type</code> must not have exactly one <code>ownedDifferencing</code>. + + + OCL2.0 + ownedDifferencing->size() <> 1 + + + + + + <p>The <code>ownedRelationships</code> of this <code>Type</code> that are <code>Specializations</code>, for which the <code>Type</code> is the <code>specific</code> <code>Type</code>.</p> + + + + + + + + <p>The <code>ownedMemberships</code> of this <code>Type</code> that are <code>FeatureMemberships</code>, for which the <code>Type</code> is the <code>owningType</code>. Each such <code>FeatureMembership</code> identifies an <code>ownedFeature</code> of the <code>Type</code>.</p> + + + + + + + + <p>The <code>ownedMemberFeatures</code> of the <code>featureMemberships</code> of this <code>Type</code>.</p> + + + + + + + + <p>The <code>ownedMemberFeatures</code> of the <code>ownedFeatureMemberships</code> of this <code>Type</code>.</p> + + + + + + + + <p>All <code>features</code> related to this <code>Type</code> by <code>FeatureMemberships</code> that have <code>direction</code> <code>in</code> or <code>inout</code>.</p> + + + + + + + + <p>All <code>features</code> related to this <code>Type</code> by <code>FeatureMemberships</code> that have <code>direction</code> <code>out</code> or <code>inout</code>.</p> + + + + + + + + <p>Indicates whether instances of this <code>Type</code> must also be instances of at least one of its specialized <code>Types</code>.</p> + + + + + + + + <p>All <code>Memberships</code> inherited by this <code>Type</code> via <code>Specialization</code> or <code>Conjugation</code>. These are included in the derived union for the <code>memberships</code> of the <code>Type</code>.</p> + + + + + + + + <p>All <code>features</code> of this <code>Type</code> with <code>isEnd = true</code>.</p> + + + + + + + <p>All <code>endFeatures</code> of this <code>Type</code> that are <code>ownedFeatures</code>.</p> + + + + + + + + <p>Whether all things that meet the classification conditions of this <code>Type</code> must be classified by the <code>Type</code>.</p> - <p>(A <code>Type</code>&nbsp;gives conditions that must be met by whatever it classifies, but when <code>isSufficient</code> is false, things may meet those conditions but still not be classified by the <code>Type</code>. For example, a Type <code><em>Car</em></code> that is not sufficient could require everything it classifies to have four wheels, but not all four wheeled things would classify as cars. However, if the <code>Type</code> <code><em>Car</em></code> were sufficient, it would classify all four-wheeled things.)</p> - - - - - - - - <p>A <code>Conjugation</code> owned by this <code>Type</code> for which the <code>Type</code> is the <code>originalType</code>.</p> - - - - - - - - <p>Indicates whether this <code>Type</code> has an <code>ownedConjugator</code>.</p> - - - - - - - <p>All the <code>memberFeatures</code> of the <code>inheritedMemberships</code> of this <code>Type</code> that are <code>FeatureMemberships</code>.</p> - - - - - - - - <p>An <code>ownedMember</code> of this <code>Type</code> that is a <code>Multiplicity</code>, which constraints the cardinality of the <code>Type</code>. If there is no such <code>ownedMember</code>, then the cardinality of this <code>Type</code> is constrained by all the <code>Multiplicity</code> constraints applicable to any direct supertypes.</p> - - - - - - - <p>The interpretations of a <code>Type</code> with <code>unioningTypes</code> are asserted to be the same as those of all the <code>unioningTypes</code> together, which are the <code>Types</code> derived from the <code>unioningType</code> of the <code>ownedUnionings</code> of this <code>Type</code>. For example, a <code>Classifier</code> for people might be the union of <code>Classifiers</code> for all the sexes. Similarly, a feature for people&#39;s children might be the union of features dividing them in the same ways as people in general.</p> - - - - - - - - <p>The <code>ownedRelationships</code> of this <code>Type</code> that are <code>Intersectings</code>, have the <code>Type</code> as their <code>typeIntersected</code>.</p> - - - - - - - - <p>The interpretations of a <code>Type</code> with <code>intersectingTypes</code> are asserted to be those in common among the <code>intersectingTypes</code>, which are the <code>Types</code> derived from the <code>intersectingType</code> of the <code>ownedIntersectings</code> of this <code>Type</code>. For example, a <code>Classifier</code> might be an intersection of <code>Classifiers</code> for people of a particular sex and of a particular nationality. Similarly, a feature for people&#39;s children of a particular sex might be the intersection of a <code>Feature</code> for their children and a <code>Classifier</code> for people of that sex (because the interpretations of the children <code>Feature</code> that identify those of that sex are also interpretations of the Classifier for that sex).</p> - - - - - - - - <p>The <code>ownedRelationships</code> of this <code>Type</code> that are <code>Unionings</code>, having the <code>Type</code> as their <code>typeUnioned</code>.</p> - - - - - - - - <p>The <code>ownedRelationships</code> of this <code>Type</code> that are <code>Disjoinings</code>, for which the <code>Type</code> is the <code>typeDisjoined</code> <code>Type</code>.</p> - - - - - - - - <p>The <code>FeatureMemberships</code> for <code>features</code> of this <code>Type</code>, which include all <code>ownedFeatureMemberships</code> and those <code>inheritedMemberships</code> that are <code>FeatureMemberships</code> (but does <em>not</em> include any <code>importedMemberships</code>).</p> - - - - - - - - <p>The interpretations of a <code>Type</code> with <code>differencingTypes</code> are asserted to be those of the first of those <code>Types</code>, but not including those of the remaining <code>Types</code>. For example, a <code>Classifier</code> might be the difference of a <code>Classifier</code> for people and another for people of a particular nationality, leaving people who are not of that nationality. Similarly, a feature of people might be the difference between a feature for their children and a <code>Classifier</code> for people of a particular sex, identifying their children not of that sex (because the interpretations of the children <code>Feature</code> that identify those of that sex are also interpretations of the <code>Classifier</code> for that sex).</p> - - - - - - - - <p>The <code>ownedRelationships</code> of this <code>Type</code> that are <code>Differencings</code>, having this <code>Type</code> as their <code>typeDifferenced</code>.</p> - - - - - - - - <p>The <code>features</code> of this <code>Type</code> that have a non-null <code>direction</code>.</p> - - - - - - - - <p>The visible <code>Memberships</code> of a <code>Type</code> include <code>inheritedMemberships</code>.</p> - - - - - OCL2.0 - let visibleMemberships : OrderedSet(Membership) = - self.oclAsType(Namespace). - visibleMemberships(excluded, isRecursive, includeAll) in - let visibleInheritedMemberships : OrderedSet(Membership) = - inheritedMemberships(excluded->including(self), Set{}, isRecursive)-> - select(includeAll or visibility = VisibilityKind::public) in - visibleMemberships->union(visibleInheritedMemberships) - - - - - - - - - - - - - - - - - - - - <p>Return the <code>Memberships</code> inheritable from supertypes of this <code>Type</code> with redefined <code>Features</code> removed. When computing inheritable <code>Memberships</code>, exclude <code>Imports</code> of <code>excludedNamespaces</code>, <code>Specializations</code> of <code>excludedTypes</code>, and, if <code>excludeImplied = true</code>, all implied <code>Specializations</code>.</p> - - - - - OCL2.0 - removeRedefinedFeatures( - inheritableMemberships(excludedNamespaces, excludedTypes, excludeImplied)) - - - - - - - - - - - - - - - - - - - - - <p>Return all the non-<code>private</code> <code>Memberships</code> of all the supertypes of this <code>Type</code>, excluding any supertypes that are this <code>Type</code> or are in the given set of <code>excludedTypes</code>. If <code>excludeImplied = true</code>, then also transitively exclude any supertypes from implied <code>Specializations</code>.</p> - - - - OCL2.0 - let excludingSelf : Set(Type) = excludedType->including(self) in - supertypes(excludeImplied)->reject(t | excludingSelf->includes(t)). - nonPrivateMemberships(excludedNamespaces, excludingSelf, excludeImplied) - - - - - - - - - - - - - - - - - - - - - - <p>Return the <code>public</code>, <code>protected</code> and inherited <code>Memberships</code> of this <code>Type</code>. When computing imported <code>Memberships</code>, exclude the given set of <code>excludedNamespaces</code>. When computing inherited <code>Memberships</code>, exclude <code>Types</code> in the given set of <code>excludedTypes</code>. If <code>excludeImplied = true</code>, then also exclude any supertypes from implied <code>Specializations</code>.</p> - - - - OCL2.0 - let publicMemberships : OrderedSet(Membership) = - membershipsOfVisibility(VisibilityKind::public, excludedNamespaces) in - let protectedMemberships : OrderedSet(Membership) = - membershipsOfVisibility(VisibilityKind::protected, excludedNamespaces) in - let inheritedMemberships : OrderedSet(Membership) = - inheritedMemberships(excludedNamespaces, excludedTypes, excludeImplied) in - publicMemberships-> - union(protectedMemberships)-> - union(inheritedMemberships) - - - - - - - - - - - - - - - - - - - - - <p>Return a subset of <code>memberships</code>, removing those <code>Memberships</code> whose <code>memberElements</code> are <code>Features</code> and for which either of the following two conditions holds:</p> +<p>(A <code>Type</code>&nbsp;gives conditions that must be met by whatever it classifies, but when <code>isSufficient</code> is false, things may meet those conditions but still not be classified by the <code>Type</code>. For example, a Type <code><em>Car</em></code> that is not sufficient could require everything it classifies to have four wheels, but not all four wheeled things would classify as cars. However, if the <code>Type</code> <code><em>Car</em></code> were sufficient, it would classify all four-wheeled things.)</p> + + + + + + + + <p>A <code>Conjugation</code> owned by this <code>Type</code> for which the <code>Type</code> is the <code>originalType</code>.</p> + + + + + + + + <p>Indicates whether this <code>Type</code> has an <code>ownedConjugator</code>.</p> + + + + + + + <p>All the <code>memberFeatures</code> of the <code>inheritedMemberships</code> of this <code>Type</code> that are <code>FeatureMemberships</code>.</p> + + + + + + + + <p>An <code>ownedMember</code> of this <code>Type</code> that is a <code>Multiplicity</code>, which constraints the cardinality of the <code>Type</code>. If there is no such <code>ownedMember</code>, then the cardinality of this <code>Type</code> is constrained by all the <code>Multiplicity</code> constraints applicable to any direct supertypes.</p> + + + + + + + <p>The interpretations of a <code>Type</code> with <code>unioningTypes</code> are asserted to be the same as those of all the <code>unioningTypes</code> together, which are the <code>Types</code> derived from the <code>unioningType</code> of the <code>ownedUnionings</code> of this <code>Type</code>. For example, a <code>Classifier</code> for people might be the union of <code>Classifiers</code> for all the sexes. Similarly, a feature for people&#39;s children might be the union of features dividing them in the same ways as people in general.</p> + + + + + + + + <p>The <code>ownedRelationships</code> of this <code>Type</code> that are <code>Intersectings</code>, have the <code>Type</code> as their <code>typeIntersected</code>.</p> + + + + + + + + <p>The interpretations of a <code>Type</code> with <code>intersectingTypes</code> are asserted to be those in common among the <code>intersectingTypes</code>, which are the <code>Types</code> derived from the <code>intersectingType</code> of the <code>ownedIntersectings</code> of this <code>Type</code>. For example, a <code>Classifier</code> might be an intersection of <code>Classifiers</code> for people of a particular sex and of a particular nationality. Similarly, a feature for people&#39;s children of a particular sex might be the intersection of a <code>Feature</code> for their children and a <code>Classifier</code> for people of that sex (because the interpretations of the children <code>Feature</code> that identify those of that sex are also interpretations of the Classifier for that sex).</p> + + + + + + + + <p>The <code>ownedRelationships</code> of this <code>Type</code> that are <code>Unionings</code>, having the <code>Type</code> as their <code>typeUnioned</code>.</p> + + + + + + + + <p>The <code>ownedRelationships</code> of this <code>Type</code> that are <code>Disjoinings</code>, for which the <code>Type</code> is the <code>typeDisjoined</code> <code>Type</code>.</p> + + + + + + + + <p>The <code>FeatureMemberships</code> for <code>features</code> of this <code>Type</code>, which include all <code>ownedFeatureMemberships</code> and those <code>inheritedMemberships</code> that are <code>FeatureMemberships</code> (but does <em>not</em> include any <code>importedMemberships</code>).</p> + + + + + + + + <p>The interpretations of a <code>Type</code> with <code>differencingTypes</code> are asserted to be those of the first of those <code>Types</code>, but not including those of the remaining <code>Types</code>. For example, a <code>Classifier</code> might be the difference of a <code>Classifier</code> for people and another for people of a particular nationality, leaving people who are not of that nationality. Similarly, a feature of people might be the difference between a feature for their children and a <code>Classifier</code> for people of a particular sex, identifying their children not of that sex (because the interpretations of the children <code>Feature</code> that identify those of that sex are also interpretations of the <code>Classifier</code> for that sex).</p> + + + + + + + + <p>The <code>ownedRelationships</code> of this <code>Type</code> that are <code>Differencings</code>, having this <code>Type</code> as their <code>typeDifferenced</code>.</p> + + + + + + + + <p>The <code>features</code> of this <code>Type</code> that have a non-null <code>direction</code>.</p> + + + + + + + + <p>The visible <code>Memberships</code> of a <code>Type</code> include <code>inheritedMemberships</code>.</p> + + + + + OCL2.0 + let visibleMemberships : OrderedSet(Membership) = + self.oclAsType(Namespace). + visibleMemberships(excluded, isRecursive, includeAll) in +let visibleInheritedMemberships : OrderedSet(Membership) = + inheritedMemberships(excluded->including(self), Set{}, isRecursive)-> + select(includeAll or visibility = VisibilityKind::public) in +visibleMemberships->union(visibleInheritedMemberships) + + + + + + + + + + + + + + + + + + + + <p>Return the <code>Memberships</code> inheritable from supertypes of this <code>Type</code> with redefined <code>Features</code> removed. When computing inheritable <code>Memberships</code>, exclude <code>Imports</code> of <code>excludedNamespaces</code>, <code>Specializations</code> of <code>excludedTypes</code>, and, if <code>excludeImplied = true</code>, all implied <code>Specializations</code>.</p> + + + + + OCL2.0 + removeRedefinedFeatures( + inheritableMemberships(excludedNamespaces, excludedTypes, excludeImplied)) + + + + + + + + + + + + + + + + + + + + + <p>Return all the non-<code>private</code> <code>Memberships</code> of all the supertypes of this <code>Type</code>, excluding any supertypes that are this <code>Type</code> or are in the given set of <code>excludedTypes</code>. If <code>excludeImplied = true</code>, then also transitively exclude any supertypes from implied <code>Specializations</code>.</p> + + + + OCL2.0 + let excludingSelf : Set(Type) = excludedType->including(self) in +supertypes(excludeImplied)->reject(t | excludingSelf->includes(t)). + nonPrivateMemberships(excludedNamespaces, excludingSelf, excludeImplied) + + + + + + + + + + + + + + + + + + + + + + <p>Return the <code>public</code>, <code>protected</code> and inherited <code>Memberships</code> of this <code>Type</code>. When computing imported <code>Memberships</code>, exclude the given set of <code>excludedNamespaces</code>. When computing inherited <code>Memberships</code>, exclude <code>Types</code> in the given set of <code>excludedTypes</code>. If <code>excludeImplied = true</code>, then also exclude any supertypes from implied <code>Specializations</code>.</p> + + + + OCL2.0 + let publicMemberships : OrderedSet(Membership) = + membershipsOfVisibility(VisibilityKind::public, excludedNamespaces) in +let protectedMemberships : OrderedSet(Membership) = + membershipsOfVisibility(VisibilityKind::protected, excludedNamespaces) in +let inheritedMemberships : OrderedSet(Membership) = + inheritedMemberships(excludedNamespaces, excludedTypes, excludeImplied) in +publicMemberships-> + union(protectedMemberships)-> + union(inheritedMemberships) + + + + + + + + + + + + + + + + + + + + + <p>Return a subset of <code>memberships</code>, removing those <code>Memberships</code> whose <code>memberElements</code> are <code>Features</code> and for which either of the following two conditions holds:</p> - <ol> - <li>The <code>memberElement</code> of the <code>Membership</code> is included in redefined <code>Features</code> of another <code>Membership</code> in <code>memberships</code>.</li> - <li>One of the redefined <code>Features</code> of the <code>Membership</code> is a directly <code>redefinedFeature</code> of an <code>ownedFeature</code> of this <code>Type</code>.</li> - </ol> +<ol> + <li>The <code>memberElement</code> of the <code>Membership</code> is included in redefined <code>Features</code> of another <code>Membership</code> in <code>memberships</code>.</li> + <li>One of the redefined <code>Features</code> of the <code>Membership</code> is a directly <code>redefinedFeature</code> of an <code>ownedFeature</code> of this <code>Type</code>.</li> +</ol> - <p>For this purpose, the redefined <code>Features</code> of a <code>Membership</code> whose <code>memberElement</code> is a <code>Feature</code> includes the <code>memberElement</code> and all <code>Features</code> directly or indirectly redefined by the <code>memberElement</code>.</p> - - - - OCL2.0 - let reducedMemberships : Sequence(Membership) = - memberships->reject(mem1 | - memberships->excluding(mem1)-> - exists(mem2 | allRedefinedFeaturesOf(mem2)-> - includes(mem1.memberElement))) in - let redefinedFeatures : Set(Feature) = - ownedFeature.redefinition.redefinedFeature->asSet() in - reducedMemberships->reject(mem | allRedefinedFeaturesOf(mem)-> - exists(feature | redefinedFeatures->includes(feature))) - - - - - - - - - - - - - - <p>If the <code>memberElement</code> of the given <code>membership</code> is a <code>Feature</code>, then return all <code>Features</code> directly or indirectly redefined by the <code>memberElement</code>.</p> - - - - OCL2.0 - if not membership.memberElement.oclIsType(Feature) then Set{} - else membership.memberElement.oclAsType(Feature).allRedefinedFeatures() - endif - - - - - - - - - - - <p>If the given <code>feature</code> is a <code>feature</code> of this <code>Type</code>, then return its direction relative to this <code>Type</code>, taking conjugation into account.</p> - - - - - OCL2.0 - directionOfExcluding(f, Set{}) - - - - - - - - - - - <p>Return the direction of the given <code>feature</code> relative to this <code>Type</code>, excluding a given set of <code>Types</code> from the search of supertypes of this <code>Type</code>.</p> - - - - OCL2.0 - let excludedSelf : Set(Type) = excluded->including(self) in - if feature.owningType = self then feature.direction - else - let directions : Sequence(FeatureDirectionKind) = - supertypes(false)->excluding(excludedSelf). - directionOfExcluding(feature, excludedSelf)-> - select(d | d <> null) in - if directions->isEmpty() then null - else - let direction : FeatureDirectionKind = directions->first() in - if not isConjugated then direction - else if direction = FeatureDirectionKind::_'in' then FeatureDirectionKind::out - else if direction = FeatureDirectionKind::out then FeatureDirectionKind::_'in' - else direction - endif endif endif endif - endif - - - - - - - - - - - - - - - <p>If this <code>Type</code> is conjugated, then return just the <code>originalType</code> of the <code>Conjugation</code>. Otherwise, return the <code>general</code> <code>Types</code> from all <code>ownedSpecializations</code> of this type, if <code>excludeImplied = false</code>, or all non-implied <code>ownedSpecializations</code>, if <code>excludeImplied = true</code>.</p> - - - - OCL2.0 - if isConjugated then Sequence{conjugator.originalType} - else if not excludeImplied then ownedSpecialization.general - else ownedSpecialization->reject(isImplied).general - endif - endif - - - - - - - - - - - - - <p>Return this <code>Type</code> and all <code>Types</code> that are directly or transitively supertypes of this <code>Type</code> (as determined by the <code>supertypes</code> operation with <code>excludeImplied = false</code>).</p> - - - - - OCL2.0 - OrderedSet{self}->closure(supertypes(false)) - - - - - - - - - - <p>Check whether this <code>Type</code> is a direct or indirect specialization of the given <code>supertype<code>.</p> - - - - OCL2.0 - if isConjugated then - ownedConjugator.originalType.specializes(supertype) - else - allSupertypes()->includes(supertype) - endif - - - - - - - - - - <p>Check whether this <code>Type</code> is a direct or indirect specialization of the named library <code>Type</code>. <code>libraryTypeName</code> must conform to the syntax of a KerML qualified name and must resolve to a <code>Type</code> in global scope.</p> - - - - - OCL2.0 - let mem : Membership = resolveGlobal(libraryTypeName) in - mem <> null and mem.memberElement.oclIsKindOf(Type) and - specializes(mem.memberElement.oclAsType(Type)) - - - - - - - - - - - - <p>By default, this <code>Type</code> is compatible with an <code>otherType</code> if it directly or indirectly specializes the <code>otherType</code>.</p> - - - - OCL2.0 - specializes(otherType) - - - - - - - - - - <p>Return the owned or inherited <code>Multiplicities</code> for this <code>Type<./code>.</p> - - - - OCL2.0 - if multiplicity <> null then OrderedSet{multiplicity} - else - ownedSpecialization.general->closure(t | - if t.multiplicity <> null then OrderedSet{} - else ownedSpecialization.general - )->select(multiplicity <> null).multiplicity->asOrderedSet() - endif - - - - - - - - - - - - <p>A Type that owns or inherits a FeatureMembership Relationship with the <code>feature</code>.</p> - - - - - - - - <p>A <code>FeatureMembership</code> is an <code>OwningMembership</code> between an <code>ownedMemberFeature</code> and an <code>owningType</code>. If the <code>ownedMemberFeature</code> has <code>isVariable = false</code>, then the <code>FeatureMembership</code> implies that the <code>owningType</code> is also a <code>featuringType</code> of the <code>ownedMemberFeature</code>. If the <code>ownedMemberFeature</code> has <code>isVariable = true</code>, then the <code>FeatureMembership</code> implies that the <code>ownedMemberFeature</code> is featured by the <em><code>snapshots</code></em> of the <code>owningType</code>, which must specialize the Kernel Semantic Library base class <em><code>Occurrence</code></em>.</p> - - - - - - <p>The <code>Type</code> that owns this <code>FeatureMembership</code>.</p> - - - - - - - - <p>The <code>Feature</code> that this <code>FeatureMembership</code> relates to its <code>owningType</code>, making it an <code>ownedFeature</code> of the <code>owningType</code>.</p> - - - - - - - - - - <p>The Type that inherits the <code>inheritedMembership</code>.</p> - - - - - - - - - - <p>A Type that has an <code>inheritedMembership</code> with the <code>inheritedFeature</code> as its <code>memberFeature</code>.</p> - - - - - - - - - - <p>The Conjugations with a certain Type as the <code>originalType</code>.</p> - - - - - - - - <p><code>Conjugation</code> is a <code>Relationship</code> between two types in which the <code>conjugatedType</code> inherits all the <code>Features</code> of the <code>originalType</code>, but with all <code>input</code> and <code>output</code> <code>Features</code> reversed. That is, any <code>Features</code> with a <code>direction</code> <em>in</em> relative to the <code>originalType</code> are considered to have an effective <code>direction</code> of <em>out</em> relative to the <code>conjugatedType</code> and, similarly, <code>Features</code> with <code>direction</code> <em>out</em> in the <code>originalType</code> are considered to have an effective <code>direction</code> of <em>in</em> in the <code>conjugatedType</code>. <code>Features</code> with <code>direction</code> <em>inout</em>, or with no <code>direction</code>, in the <code>originalType</code>, are inherited without change.</p> +<p>For this purpose, the redefined <code>Features</code> of a <code>Membership</code> whose <code>memberElement</code> is a <code>Feature</code> includes the <code>memberElement</code> and all <code>Features</code> directly or indirectly redefined by the <code>memberElement</code>.</p> + + + + OCL2.0 + let reducedMemberships : Sequence(Membership) = + memberships->reject(mem1 | + memberships->excluding(mem1)-> + exists(mem2 | allRedefinedFeaturesOf(mem2)-> + includes(mem1.memberElement))) in +let redefinedFeatures : Set(Feature) = + ownedFeature.redefinition.redefinedFeature->asSet() in +reducedMemberships->reject(mem | allRedefinedFeaturesOf(mem)-> + exists(feature | redefinedFeatures->includes(feature))) + + + + + + + + + + + + + + <p>If the <code>memberElement</code> of the given <code>membership</code> is a <code>Feature</code>, then return all <code>Features</code> directly or indirectly redefined by the <code>memberElement</code>.</p> + + + + OCL2.0 + if not membership.memberElement.oclIsType(Feature) then Set{} +else membership.memberElement.oclAsType(Feature).allRedefinedFeatures() +endif + + + + + + + + + + + <p>If the given <code>feature</code> is a <code>feature</code> of this <code>Type</code>, then return its direction relative to this <code>Type</code>, taking conjugation into account.</p> + + + + + OCL2.0 + directionOfExcluding(f, Set{}) + + + + + + + + + + + <p>Return the direction of the given <code>feature</code> relative to this <code>Type</code>, excluding a given set of <code>Types</code> from the search of supertypes of this <code>Type</code>.</p> + + + + OCL2.0 + let excludedSelf : Set(Type) = excluded->including(self) in +if feature.owningType = self then feature.direction +else + let directions : Sequence(FeatureDirectionKind) = + supertypes(false)->excluding(excludedSelf). + directionOfExcluding(feature, excludedSelf)-> + select(d | d <> null) in + if directions->isEmpty() then null + else + let direction : FeatureDirectionKind = directions->first() in + if not isConjugated then direction + else if direction = FeatureDirectionKind::_'in' then FeatureDirectionKind::out + else if direction = FeatureDirectionKind::out then FeatureDirectionKind::_'in' + else direction + endif endif endif endif +endif + + + + + + + + + + + + + + + <p>If this <code>Type</code> is conjugated, then return just the <code>originalType</code> of the <code>Conjugation</code>. Otherwise, return the <code>general</code> <code>Types</code> from all <code>ownedSpecializations</code> of this type, if <code>excludeImplied = false</code>, or all non-implied <code>ownedSpecializations</code>, if <code>excludeImplied = true</code>.</p> + + + + OCL2.0 + if isConjugated then Sequence{conjugator.originalType} +else if not excludeImplied then ownedSpecialization.general +else ownedSpecialization->reject(isImplied).general +endif +endif + + + + + + + + + + + + + <p>Return this <code>Type</code> and all <code>Types</code> that are directly or transitively supertypes of this <code>Type</code> (as determined by the <code>supertypes</code> operation with <code>excludeImplied = false</code>).</p> + + + + + OCL2.0 + OrderedSet{self}->closure(supertypes(false)) + + + + + + + + + + <p>Check whether this <code>Type</code> is a direct or indirect specialization of the given <code>supertype<code>.</p> + + + + OCL2.0 + if isConjugated then + ownedConjugator.originalType.specializes(supertype) +else + allSupertypes()->includes(supertype) +endif + + + + + + + + + + <p>Check whether this <code>Type</code> is a direct or indirect specialization of the named library <code>Type</code>. <code>libraryTypeName</code> must conform to the syntax of a KerML qualified name and must resolve to a <code>Type</code> in global scope.</p> + + + + + OCL2.0 + let mem : Membership = resolveGlobal(libraryTypeName) in +mem <> null and mem.memberElement.oclIsKindOf(Type) and +specializes(mem.memberElement.oclAsType(Type)) + + + + + + + + + + + + <p>By default, this <code>Type</code> is compatible with an <code>otherType</code> if it directly or indirectly specializes the <code>otherType</code>.</p> + + + + OCL2.0 + specializes(otherType) + + + + + + + + + + <p>Return the owned or inherited <code>Multiplicities</code> for this <code>Type<./code>.</p> + + + + OCL2.0 + if multiplicity <> null then OrderedSet{multiplicity} +else + ownedSpecialization.general->closure(t | + if t.multiplicity <> null then OrderedSet{} + else ownedSpecialization.general + )->select(multiplicity <> null).multiplicity->asOrderedSet() +endif + + + + + + + + + + + + <p>A Type that owns or inherits a FeatureMembership Relationship with the <code>feature</code>.</p> + + + + + + + + <p>A <code>FeatureMembership</code> is an <code>OwningMembership</code> between an <code>ownedMemberFeature</code> and an <code>owningType</code>. If the <code>ownedMemberFeature</code> has <code>isVariable = false</code>, then the <code>FeatureMembership</code> implies that the <code>owningType</code> is also a <code>featuringType</code> of the <code>ownedMemberFeature</code>. If the <code>ownedMemberFeature</code> has <code>isVariable = true</code>, then the <code>FeatureMembership</code> implies that the <code>ownedMemberFeature</code> is featured by the <em><code>snapshots</code></em> of the <code>owningType</code>, which must specialize the Kernel Semantic Library base class <em><code>Occurrence</code></em>.</p> + + + + + + <p>The <code>Type</code> that owns this <code>FeatureMembership</code>.</p> + + + + + + + + <p>The <code>Feature</code> that this <code>FeatureMembership</code> relates to its <code>owningType</code>, making it an <code>ownedFeature</code> of the <code>owningType</code>.</p> + + + + + + + + + + <p>The Type that inherits the <code>inheritedMembership</code>.</p> + + + + + + + + + + <p>A Type that has an <code>inheritedMembership</code> with the <code>inheritedFeature</code> as its <code>memberFeature</code>.</p> + + + + + + + + + + <p>The Conjugations with a certain Type as the <code>originalType</code>.</p> + + + + + + + + <p><code>Conjugation</code> is a <code>Relationship</code> between two types in which the <code>conjugatedType</code> inherits all the <code>Features</code> of the <code>originalType</code>, but with all <code>input</code> and <code>output</code> <code>Features</code> reversed. That is, any <code>Features</code> with a <code>direction</code> <em>in</em> relative to the <code>originalType</code> are considered to have an effective <code>direction</code> of <em>out</em> relative to the <code>conjugatedType</code> and, similarly, <code>Features</code> with <code>direction</code> <em>out</em> in the <code>originalType</code> are considered to have an effective <code>direction</code> of <em>in</em> in the <code>conjugatedType</code>. <code>Features</code> with <code>direction</code> <em>inout</em>, or with no <code>direction</code>, in the <code>originalType</code>, are inherited without change.</p> - <p>A <code>Type</code> may participate as a <code>conjugatedType</code> in at most one <code>Conjugation</code> relationship, and such a <code>Type</code> may not also be the <code>specific</code> <code>Type</code> in any <code>Specialization</code> relationship.</p> - - - - - - <p>The <code>Type</code> to be conjugated.</p> - - - - - - - - <p>The <code>Type</code> that is the result of applying <code>Conjugation</code> to the <code>originalType</code>.</p> - - - - - - - - <p>The <code>conjugatedType</code> of this <code>Conjugation</code> that is also its <code>owningRelatedElement</code>.</p> - - - - - - - - - - <p>The Conjugation corresponding to the <code>conjugatedType</code>.</p> - - - - - - - - <p>A <code>Multiplicity</code> is a <code>Feature</code> whose co-domain is a set of natural numbers giving the allowed cardinalities of each <code>typeWithMultiplicity</code>. The <em>cardinality</em> of a <code>Type</code> is defined as follows, depending on whether the <code>Type</code> is a <code>Classifier</code> or <code>Feature</code>. - <ul> - <li><code>Classifier</code> – The number of basic instances of the <code>Classifier</code>, that is, those instances representing things, which are not instances of any subtypes of the <code>Classifier</code> that are <code>Features</code>. - <li><code>Features</code> – The number of instances with the same featuring instances. In the case of a <code>Feature</code> with a <code>Classifier</code> as its <code>featuringType</code>, this is the number of values of <code>Feature</code> for each basic instance of the <code>Classifier</code>. Note that, for non-unique <code>Features</code>, all duplicate values are included in this count.</li> - </ul> +<p>A <code>Type</code> may participate as a <code>conjugatedType</code> in at most one <code>Conjugation</code> relationship, and such a <code>Type</code> may not also be the <code>specific</code> <code>Type</code> in any <code>Specialization</code> relationship.</p> + + + + + + <p>The <code>Type</code> to be conjugated.</p> + + + + + + + + <p>The <code>Type</code> that is the result of applying <code>Conjugation</code> to the <code>originalType</code>.</p> + + + + + + + + <p>The <code>conjugatedType</code> of this <code>Conjugation</code> that is also its <code>owningRelatedElement</code>.</p> + + + + + + + + + + <p>The Conjugation corresponding to the <code>conjugatedType</code>.</p> + + + + + + + + <p>A <code>Multiplicity</code> is a <code>Feature</code> whose co-domain is a set of natural numbers giving the allowed cardinalities of each <code>typeWithMultiplicity</code>. The <em>cardinality</em> of a <code>Type</code> is defined as follows, depending on whether the <code>Type</code> is a <code>Classifier</code> or <code>Feature</code>. +<ul> +<li><code>Classifier</code> – The number of basic instances of the <code>Classifier</code>, that is, those instances representing things, which are not instances of any subtypes of the <code>Classifier</code> that are <code>Features</code>. +<li><code>Features</code> – The number of instances with the same featuring instances. In the case of a <code>Feature</code> with a <code>Classifier</code> as its <code>featuringType</code>, this is the number of values of <code>Feature</code> for each basic instance of the <code>Classifier</code>. Note that, for non-unique <code>Features</code>, all duplicate values are included in this count.</li> +</ul> - <p><code>Multiplicity</code> co-domains (in models) can be specified by <code>Expression</code> that might vary in their results. If the <code>typeWithMultiplicity</code> is a <code>Classifier</code>, the domain of the <code>Multiplicity</code> shall be <em><code>Base::Anything</code></em>. If the <code>typeWithMultiplicity</code> is a <code>Feature</code>, the <code>Multiplicity</code> shall have the same domain as the <code>typeWithMultiplicity</code>.</p> - - - - - <p>If the <code>owningType</code> of a <code>Multiplicity</code> is a <code>Feature</code>, then the <code>Multiplicity</code> must have the same <code>featuringTypes</code> as that <code>Feature</code>. Otherwise, it must have no <code>featuringTypes</code> (meaning that it is implicitly featured by the base <code>Classifier</code> <em><code>Anything</code></em>).</p> - - - OCL2.0 - if owningType <> null and owningType.oclIsKindOf(Feature) then - featuringType = - owningType.oclAsType(Feature).featuringType - else - featuringType->isEmpty() - endif - - - - - <p>A <code>Multiplicity</code> must directly or indirectly specialize the <code>Feature</code> <code><em>Base::naturals</em></code> from the Kernel Semantic Library.</p> - - - OCL2.0 - specializesFromLibrary('Base::naturals') - - - - - - - - <p>The Disjoinings that identify this Type as their <code>disjoiningType</code>.</p> - - - - - - - - <p>A <code>Disjoining</code> is a <code>Relationship</code> between <code>Types</code> asserted to have interpretations that are not shared (disjoint) between them, identified as <code>typeDisjoined</code> and <code>disjoiningType</code>. For example, a <code>Classifier</code> for mammals is disjoint from a <code>Classifier</code> for minerals, and a <code>Feature</code> for people&#39;s parents is disjoint from a <code>Feature</code> for their children.</p> - - - - - - <p><code>Type</code> asserted to be disjoint with the <code>disjoiningType</code>.</p> - - - - - - - - <p><code>Type</code> asserted to be disjoint with the <code>typeDisjoined</code>.</p> - - - - - - - - <p>A <code>typeDisjoined</code> that is also an <code>owningRelatedElement</code>.</p> - - - - - - - - - - - - - - - <p>The Disjoinings that identify this Type as their <code>typeDisjoined</code>.</p> - - - - - - - - - - - <p>A Type that owns or inherits the <code>featureMembership</code>.</p> - - - - - - - - - <p>The Differencings that identify this Type as their <code>differencingType</code>.</p> - - - - - - - - - <p>The Types that include this one among their <code>unioningTypes</code>.</p> - - - - - - - - - <p>The Unionings that identify all these Types as their <code>unioningType</code>.</p> - - - - - - - - - <p>The Types that include this one among their <code>intersectingTypes</code>.</p> - - - - - - - - - - <p>The Types that include this one among their <code>differencingTypes</code>.</p> - - - - - - - - <p><code>Differencing</code> is a <code>Relationship</code> that makes its <code>differencingType</code> one of the <code>differencingTypes</code> of its <code>typeDifferenced</code>.</p> - - - - - - <p><code>Type</code> with interpretations partly determined by <code>differencingType</code>, as described in <code>Type::differencingType</code>.</p> - - - - - - - - <p><code>Type</code> that partly determines interpretations of <code>typeDifferenced</code>, as described in <code>Type::differencingType</code>.</p> - - - - - - - - - - - <p>The Intersectings that identify this Type as their <code>intersectingType</code>.</p> - - - - - - - - <p><code>Unioning</code> is a <code>Relationship</code> that makes its <code>unioningType</code> one of the <code>unioningTypes</code> of its <code>typeUnioned</code>.</p> - - - - - - <p><code>Type</code> with interpretations partly determined by <code>unioningType</code>, as described in <code>Type::unioningType</code>.</p> - - - - - - - - <p><code>Type</code> that partly determines interpretations of <code>typeUnioned</code>, as described in <code>Type::unioningType</code>.</p> - - - - - - - - - - <p><code>Intersecting</code> is a <code>Relationship</code> that makes its <code>intersectingType</code> one of the <code>intersectingTypes</code> of its <code>typeIntersected</code>.</p> - - - - - - <p><code>Type</code> with interpretations partly determined by <code>intersectingType</code>, as described in <code>Type::intersectingType</code>.</p> - - - - - - - - <p><code>Type</code> that partly determines interpretations of <code>typeIntersected</code>, as described in <code>Type::intersectingType</code>.</p> - - - - - - - - - - - - <p>The Subclassifications with a certain <code>subclassifier</code>.</p> - - - - - - - - - <p><code>Subclassification</code> is <code>Specialization</code> in which both the <code>specific</code> and <code>general</code> <code>Types</code> are <code>Classifier</code>. This means all instances of the specific <code>Classifier</code> are also instances of the general <code>Classifier</code>.</p> - - - - - - <p>The more <code>general</code> Classifier in this <code>Subclassification</code>.</p> - - - - - - - - <p>The more specific <code>Classifier</code> in this <code>Subclassification</code>.</p> - - - - - - - - <p>The <code>Classifier</code> that owns this <code>Subclassification</code> relationship, which must also be its <code>subclassifier</code>.</p> - - - - - - - - - <p>A <code>Classifier</code> is a <code>Type</code> that classifies:</p> +<p><code>Multiplicity</code> co-domains (in models) can be specified by <code>Expression</code> that might vary in their results. If the <code>typeWithMultiplicity</code> is a <code>Classifier</code>, the domain of the <code>Multiplicity</code> shall be <em><code>Base::Anything</code></em>. If the <code>typeWithMultiplicity</code> is a <code>Feature</code>, the <code>Multiplicity</code> shall have the same domain as the <code>typeWithMultiplicity</code>.</p> + + + + + <p>If the <code>owningNamespace</code> of a <code>Multiplicity</code> is a <code>Feature</code>, then the <code>Multiplicity</code> must have the same <code>featuringTypes</code> as that <code>Feature</code>. Otherwise, it must have no <code>featuringTypes</code> (meaning that it is implicitly featured by the base <code>Classifier</code> <em><code>Anything</code></em>).</p> + + + OCL2.0 + if owningNamespace <> null and owningNamespace.oclIsKindOf(Feature) then + featuringType = + owningNamespace.oclAsType(Feature).featuringType +else + featuringType->isEmpty() +endif + + + + + <p>A <code>Multiplicity</code> must directly or indirectly specialize the <code>Feature</code> <code><em>Base::naturals</em></code> from the Kernel Semantic Library.</p> + + + OCL2.0 + specializesFromLibrary('Base::naturals') + + + + + + + + <p>The Disjoinings that identify this Type as their <code>disjoiningType</code>.</p> + + + + + + + + <p>A <code>Disjoining</code> is a <code>Relationship</code> between <code>Types</code> asserted to have interpretations that are not shared (disjoint) between them, identified as <code>typeDisjoined</code> and <code>disjoiningType</code>. For example, a <code>Classifier</code> for mammals is disjoint from a <code>Classifier</code> for minerals, and a <code>Feature</code> for people&#39;s parents is disjoint from a <code>Feature</code> for their children.</p> + + + + + + <p><code>Type</code> asserted to be disjoint with the <code>disjoiningType</code>.</p> + + + + + + + + <p><code>Type</code> asserted to be disjoint with the <code>typeDisjoined</code>.</p> + + + + + + + + <p>A <code>typeDisjoined</code> that is also an <code>owningRelatedElement</code>.</p> + + + + + + + + + + + + + + + <p>The Disjoinings that identify this Type as their <code>typeDisjoined</code>.</p> + + + + + + + + + + + <p>A Type that owns or inherits the <code>featureMembership</code>.</p> + + + + + + + + + <p>The Differencings that identify this Type as their <code>differencingType</code>.</p> + + + + + + + + + <p>The Types that include this one among their <code>unioningTypes</code>.</p> + + + + + + + + + <p>The Unionings that identify all these Types as their <code>unioningType</code>.</p> + + + + + + + + + <p>The Types that include this one among their <code>intersectingTypes</code>.</p> + + + + + + + + + + <p>The Types that include this one among their <code>differencingTypes</code>.</p> + + + + + + + + <p><code>Differencing</code> is a <code>Relationship</code> that makes its <code>differencingType</code> one of the <code>differencingTypes</code> of its <code>typeDifferenced</code>.</p> + + + + + + <p><code>Type</code> with interpretations partly determined by <code>differencingType</code>, as described in <code>Type::differencingType</code>.</p> + + + + + + + + <p><code>Type</code> that partly determines interpretations of <code>typeDifferenced</code>, as described in <code>Type::differencingType</code>.</p> + + + + + + + + + + + <p>The Intersectings that identify this Type as their <code>intersectingType</code>.</p> + + + + + + + + <p><code>Unioning</code> is a <code>Relationship</code> that makes its <code>unioningType</code> one of the <code>unioningTypes</code> of its <code>typeUnioned</code>.</p> + + + + + + <p><code>Type</code> with interpretations partly determined by <code>unioningType</code>, as described in <code>Type::unioningType</code>.</p> + + + + + + + + <p><code>Type</code> that partly determines interpretations of <code>typeUnioned</code>, as described in <code>Type::unioningType</code>.</p> + + + + + + + + + + <p><code>Intersecting</code> is a <code>Relationship</code> that makes its <code>intersectingType</code> one of the <code>intersectingTypes</code> of its <code>typeIntersected</code>.</p> + + + + + + <p><code>Type</code> with interpretations partly determined by <code>intersectingType</code>, as described in <code>Type::intersectingType</code>.</p> + + + + + + + + <p><code>Type</code> that partly determines interpretations of <code>typeIntersected</code>, as described in <code>Type::intersectingType</code>.</p> + + + + + + + + + + + + <p>The Subclassifications with a certain <code>subclassifier</code>.</p> + + + + + + + + + <p><code>Subclassification</code> is <code>Specialization</code> in which both the <code>specific</code> and <code>general</code> <code>Types</code> are <code>Classifier</code>. This means all instances of the specific <code>Classifier</code> are also instances of the general <code>Classifier</code>.</p> + + + + + + <p>The more <code>general</code> Classifier in this <code>Subclassification</code>.</p> + + + + + + + + <p>The more specific <code>Classifier</code> in this <code>Subclassification</code>.</p> + + + + + + + + <p>The <code>Classifier</code> that owns this <code>Subclassification</code> relationship, which must also be its <code>subclassifier</code>.</p> + + + + + + + + + <p>A <code>Classifier</code> is a <code>Type</code> that classifies:</p> - <ul> - <li>Things (in the universe) regardless of how <code>Features</code> relate them. (These are interpreted semantically as sequences of exactly one thing.)</li> - <li>How the above things are related by <code>Features.</code> (These are interpreted semantically as sequences of multiple things, such that the last thing in the sequence is also classified by the <code>Classifier</code>. Note that this means that a <code>Classifier</code> modeled as specializing a <code>Feature</code> cannot classify anything.)</li> - </ul> +<ul> + <li>Things (in the universe) regardless of how <code>Features</code> relate them. (These are interpreted semantically as sequences of exactly one thing.)</li> + <li>How the above things are related by <code>Features.</code> (These are interpreted semantically as sequences of multiple things, such that the last thing in the sequence is also classified by the <code>Classifier</code>. Note that this means that a <code>Classifier</code> modeled as specializing a <code>Feature</code> cannot classify anything.)</li> +</ul> - - - - - <p>The <code>ownedSubclassifications</code> of a <code>Classifier</code> are its <code>ownedSpecializations</code> that are <code>Subclassifications</code>.</p> - - - OCL2.0 - ownedSubclassification = - ownedSpecialization->selectByKind(Subclassification) - - - - - <p>If a <code>Classifier</code> has a <code>multiplicity</code>, then the <code>multiplicity</code> must have no <code>featuringTypes</code> (meaning that its domain is implicitly <em>Base::Anything</em>).</p> - - - OCL2.0 - multiplicity <> null implies multiplicity.featuringType->isEmpty() - - - - - - <p>The <code>ownedSpecializations</code> of this <code>Classifier</code> that are <code>Subclassifications</code>, for which this <code>Classifier</code> is the <code>subclassifier</code>.</p> - - - - - - - - - - <p>The Subclassifications with a certain <code>superclassifier</code>.</p> - - - - - - - - - - <p><code>Redefinition</code> is a kind of <code>Subsetting</code> that requires the <code>redefinedFeature</code> and the <code>redefiningFeature</code> to have the same values (on each instance of the domain of the <code>redefiningFeature</code>). This means any restrictions on the <code>redefiningFeature</code>, such as <code>type</code> or <code>multiplicity</code>, also apply to the <code>redefinedFeature</code> (on each instance of the domain of the <code>redefiningFeature</code>), and vice versa. The <code>redefinedFeature</code> might have values for instances of the domain of the <code>redefiningFeature</code>, but only as instances of the domain of the <code>redefinedFeature</code> that happen to also be instances of the domain of the <code>redefiningFeature</code>. This is supported by the constraints inherited from <code>Subsetting</code> on the domains of the <code>redefiningFeature</code> and <code>redefinedFeature</code>. However, these constraints are narrowed for <code>Redefinition</code> to require the <code>owningTypes</code> of the <code>redefiningFeature</code> and <code>redefinedFeature</code> to be different and the <code>redefinedFeature</code> to not be inherited into the <code>owningNamespace</code> of the <code>redefiningFeature</code>.This enables the <code>redefiningFeature</code> to have the same name as the <code>redefinedFeature</code>, if desired.</p> - - - - - <p>The <code>redefiningFeature</code> of a <code>Redefinition</code> must have at least one <code>featuringType</code> that is not also a <code>featuringType</code> of the <code>redefinedFeature</code>.</p> - - - OCL2.0 - let anythingType: Type = - redefiningFeature.resolveGlobal('Base::Anything').modelElement.oclAsType(Type) in - -- Including "Anything" accounts for implicit featuringType of Features - -- with no explicit featuringType. - let redefiningFeaturingTypes: Set(Type) = - if redefiningFeature.isVariable then Set{redefiningFeature.owningType} - else redefiningFeature.featuringTypes->asSet()->including(anythingType) - endif in - let redefinedFeaturingTypes: Set(Type) = - if redefinedFeature.isVariable then Set{redefinedFeature.owningType} - else redefinedFeature.featuringTypes->asSet()->including(anythingType) - endif in - redefiningFeaturingTypes <> redefinedFeaturingType - - - - - <p>If the <code>redefinedFeature</code> of a <code>Redefinition</code> has a direction of <code>in</code> or <code>out</code> (relative to any <code>featuringType</code> of the <code>redefiningFeature</code> or the <code>owningType</code>, if the <code>redefiningFeature</code> has <code>isVariable = true</code>), then the <code>redefiningFeature</code> must have the same <code>direction</code>. If the <code>redefinedFeature</code> has a direction of <code>inout</code>, then the <code>redefiningFeature</code> must have a non-null <code>direction</code>. (Note: the direction of the <code>redefinedFeature</code> relative to a <code>featuringType</code> of the <code>redefiningFeature</code> is the direction it would have if it had been inherited and not redefined.)</p> - - - OCL2.0 - let featuringTypes : Sequence(Type) = - if redefiningFeature.isVariable then Sequence{redefiningFeature.owningType} - else redefiningFeature.featuringType - endif in - featuringTypes->forAll(t | - let direction : FeatureDirectionKind = t.directionOf(redefinedFeature) in - ((direction = FeatureDirectionKind::_'in' or - direction = FeatureDirectionKind::out) implies - redefiningFeature.direction = direction) - and - (direction = FeatureDirectionKind::inout implies - redefiningFeature.direction <> null)) - - - - - <p>If the redefinedFeature of a Redefinition has isEnd = true, then the redefiningFeature must have isEnd = true.</p> - - - OCL2.0 - redefinedFeature.isEnd implies redefiningFeature.isEnd - - - - - - <p>The <code>Feature</code> that is redefining the <code>redefinedFeature</code> of this <code>Redefinition</code>.</p> - - - - - - - - <p>The <code>Feature</code> that is redefined by the <code>redefiningFeature</code> of this <code>Redefinition</code>.</p> - - - - - - - - - - <p>The FeatureTyping relating this Type to a Feature.</p> - - - - - - - - - <p>The Features for which a certain Type is a <code>type</code>.</p> - - - - - - - - - <p>The FeatureTypings for which a certain Feature is the <code>typedFeature</code>.</p> - - - - - - - - - - <p>The Feature that owns this Redefinition relationship, which must also be its <code>redefiningFeature</code>.</p> - - - - - - - - - <p>The Redefinitions with a certain Feature as the <code>redefinedFeature</code>.</p> - - - - - - - - - <p>The Subsettings with a certain Feature as the <code>subsettingFeature</code>.</p> - - - - - - - - <p>A <code>Feature</code> is a <code>Type</code> that classifies relations between multiple things (in the universe). The domain of the relation is the intersection of the <code>featuringTypes</code> of the <code>Feature</code>. (The domain of a <code>Feature</code> with no <code>featuringTyps</code> is implicitly the most general <code>Type</code> <em><code>Base::Anything</code></em> from the Kernel Semantic Library.) The co-domain of the relation is the intersection of the <code>types</code> of the <code>Feature</code>. + + + + + <p>The <code>ownedSubclassifications</code> of a <code>Classifier</code> are its <code>ownedSpecializations</code> that are <code>Subclassifications</code>.</p> + + + OCL2.0 + ownedSubclassification = + ownedSpecialization->selectByKind(Subclassification) + + + + + <p>If a <code>Classifier</code> has a <code>multiplicity</code>, then the <code>multiplicity</code> must have no <code>featuringTypes</code> (meaning that its domain is implicitly <em>Base::Anything</em>).</p> + + + OCL2.0 + multiplicity <> null implies multiplicity.featuringType->isEmpty() + + + + + + <p>The <code>ownedSpecializations</code> of this <code>Classifier</code> that are <code>Subclassifications</code>, for which this <code>Classifier</code> is the <code>subclassifier</code>.</p> + + + + + + + + + + <p>The Subclassifications with a certain <code>superclassifier</code>.</p> + + + + + + + + + + <p><code>Redefinition</code> is a kind of <code>Subsetting</code> that requires the <code>redefinedFeature</code> and the <code>redefiningFeature</code> to have the same values (on each instance of the domain of the <code>redefiningFeature</code>). This means any restrictions on the <code>redefiningFeature</code>, such as <code>type</code> or <code>multiplicity</code>, also apply to the <code>redefinedFeature</code> (on each instance of the domain of the <code>redefiningFeature</code>), and vice versa. The <code>redefinedFeature</code> might have values for instances of the domain of the <code>redefiningFeature</code>, but only as instances of the domain of the <code>redefinedFeature</code> that happen to also be instances of the domain of the <code>redefiningFeature</code>. This is supported by the constraints inherited from <code>Subsetting</code> on the domains of the <code>redefiningFeature</code> and <code>redefinedFeature</code>. However, these constraints are narrowed for <code>Redefinition</code> to require the <code>owningTypes</code> of the <code>redefiningFeature</code> and <code>redefinedFeature</code> to be different and the <code>redefinedFeature</code> to not be inherited into the <code>owningNamespace</code> of the <code>redefiningFeature</code>.This enables the <code>redefiningFeature</code> to have the same name as the <code>redefinedFeature</code>, if desired.</p> + + + + + <p>The <code>redefiningFeature</code> of a <code>Redefinition</code> must have at least one <code>featuringType</code> that is not also a <code>featuringType</code> of the <code>redefinedFeature</code>.</p> + + + OCL2.0 + let anythingType: Type = + redefiningFeature.resolveGlobal('Base::Anything').modelElement.oclAsType(Type) in +-- Including "Anything" accounts for implicit featuringType of Features +-- with no explicit featuringType. +let redefiningFeaturingTypes: Set(Type) = + if redefiningFeature.isVariable then Set{redefiningFeature.owningType} + else redefiningFeature.featuringTypes->asSet()->including(anythingType) + endif in +let redefinedFeaturingTypes: Set(Type) = + if redefinedFeature.isVariable then Set{redefinedFeature.owningType} + else redefinedFeature.featuringTypes->asSet()->including(anythingType) + endif in +redefiningFeaturingTypes <> redefinedFeaturingType + + + + + <p>If the <code>redefinedFeature</code> of a <code>Redefinition</code> has a direction of <code>in</code> or <code>out</code> (relative to any <code>featuringType</code> of the <code>redefiningFeature</code> or the <code>owningType</code>, if the <code>redefiningFeature</code> has <code>isVariable = true</code>), then the <code>redefiningFeature</code> must have the same <code>direction</code>. If the <code>redefinedFeature</code> has a direction of <code>inout</code>, then the <code>redefiningFeature</code> must have a non-null <code>direction</code>. (Note: the direction of the <code>redefinedFeature</code> relative to a <code>featuringType</code> of the <code>redefiningFeature</code> is the direction it would have if it had been inherited and not redefined.)</p> + + + OCL2.0 + let featuringTypes : Sequence(Type) = + if redefiningFeature.isVariable then Sequence{redefiningFeature.owningType} + else redefiningFeature.featuringType + endif in +featuringTypes->forAll(t | + let direction : FeatureDirectionKind = t.directionOf(redefinedFeature) in + ((direction = FeatureDirectionKind::_'in' or + direction = FeatureDirectionKind::out) implies + redefiningFeature.direction = direction) + and + (direction = FeatureDirectionKind::inout implies + redefiningFeature.direction <> null)) + + + + + <p>If the redefinedFeature of a Redefinition has isEnd = true, then the redefiningFeature must have isEnd = true.</p> + + + OCL2.0 + redefinedFeature.isEnd implies redefiningFeature.isEnd + + + + + + <p>The <code>Feature</code> that is redefining the <code>redefinedFeature</code> of this <code>Redefinition</code>.</p> + + + + + + + + <p>The <code>Feature</code> that is redefined by the <code>redefiningFeature</code> of this <code>Redefinition</code>.</p> + + + + + + + + + + <p>The FeatureTyping relating this Type to a Feature.</p> + + + + + + + + + <p>The Features for which a certain Type is a <code>type</code>.</p> + + + + + + + + + <p>The FeatureTypings for which a certain Feature is the <code>typedFeature</code>.</p> + + + + + + + + + + <p>The Feature that owns this Redefinition relationship, which must also be its <code>redefiningFeature</code>.</p> + + + + + + + + + <p>The Redefinitions with a certain Feature as the <code>redefinedFeature</code>.</p> + + + + + + + + + <p>The Subsettings with a certain Feature as the <code>subsettingFeature</code>.</p> + + + + + + + + <p>A <code>Feature</code> is a <code>Type</code> that classifies relations between multiple things (in the universe). The domain of the relation is the intersection of the <code>featuringTypes</code> of the <code>Feature</code>. (The domain of a <code>Feature</code> with no <code>featuringTyps</code> is implicitly the most general <code>Type</code> <em><code>Base::Anything</code></em> from the Kernel Semantic Library.) The co-domain of the relation is the intersection of the <code>types</code> of the <code>Feature</code>. - <p>In the simplest cases, the <code>featuringTypes</code> and <code>types</code> are <code>Classifiers</code> and the <code>Feature</code> relates two things, one from the domain and one from the range. Examples include cars paired with wheels, people paired with other people, and cars paired with numbers representing the car length.</p> +<p>In the simplest cases, the <code>featuringTypes</code> and <code>types</code> are <code>Classifiers</code> and the <code>Feature</code> relates two things, one from the domain and one from the range. Examples include cars paired with wheels, people paired with other people, and cars paired with numbers representing the car length.</p> - <p>Since <code>Features</code> are <code>Types</code>, their <code>featuringTypes</code> and <code>types</code> can be <code>Features</code>. In this case, the <code>Feature</code> effectively classifies relations between relations, which can be interpreted as the sequence of things related by the domain <code>Feature</code> concatenated with the sequence of things related by the co-domain <code>Feature</code>.</p> +<p>Since <code>Features</code> are <code>Types</code>, their <code>featuringTypes</code> and <code>types</code> can be <code>Features</code>. In this case, the <code>Feature</code> effectively classifies relations between relations, which can be interpreted as the sequence of things related by the domain <code>Feature</code> concatenated with the sequence of things related by the co-domain <code>Feature</code>.</p> - <p>The <em>values</em> of a <code>Feature</code> for a given instance of its domain are all the instances of its co-domain that are related to that domain instance by the <code>Feature</code>. The values of a <code>Feature</code> with <code>chainingFeatures</code> are the same as values of the last <code>Feature</code> in the chain, which can be found by starting with values of the first <code>Feature</code>, then using those values as domain instances to obtain valus of the second <code>Feature</code>, and so on, to values of the last <code>Feature</code>.</p> - - - - - <p>The <code>ownedRedefinitions</code> of a <code>Feature</code> are its <code>ownedSubsettings</code> that are <code>Redefinitions</code>.</p> - - - OCL2.0 - ownedRedefinition = ownedSubsetting->selectByKind(Redefinition) - - - - - <p>The <code>ownedTypeFeaturings</code> of a <code>Feature</code> are its <code>ownedRelationships</code> that are <code>TypeFeaturings</code> and which have the <code>Feature</code> as their <code>featureOfType</code>.</p> - - - OCL2.0 - ownedTypeFeaturing = ownedRelationship->selectByKind(TypeFeaturing)-> - select(tf | tf.featureOfType = self) - - - - - <p>The <code>ownedSubsettings</code> of a <code>Feature</code> are its <code>ownedSpecializations</code> that are <code>Subsettings</code>.</p> - - - OCL2.0 - ownedSubsetting = ownedSpecialization->selectByKind(Subsetting) - - - - - <p>The <code>ownedTypings</code> of a <code>Feature</code> are its <code>ownedSpecializations</code> that are <code>FeatureTypings</code>.</p> - - - OCL2.0 - ownedTyping = ownedGeneralization->selectByKind(FeatureTyping) - - - - - <p>The <code>types</code> of a <code>Feature</code> are the union of the <code>types</code> of its <code>typings</code> and the <code>types</code> of the <code>Features</code> it subsets, with all redundant supertypes removed. If the <code>Feature</code> has <code>chainingFeatures</code>, then the union also includes the types of the last <code>chainingFeature</code>.</p> - - - OCL2.0 - type = - let types : OrderedSet(Types) = OrderedSet{self}-> - -- Note: The closure operation automatically handles circular relationships. - closure(typingFeatures()).typing.type->asOrderedSet() in - types->reject(t1 | types->exist(t2 | t2 <> t1 and t2.specializes(t1))) - - - - - <p>If a <code>Feature</code> has a <code>multiplicity</code>, then the <code>featuringTypes</code> of the <code>multiplicity</code> must be the same as those of the <code>Feature</code> itself.</p> - - - OCL2.0 - multiplicity <> null implies multiplicity.featuringType = featuringType - - - - - <p>A <code>Feature</code> must directly or indirectly specialize <code><em>Base::things</em></code> from the Kernel Semantic Library.</p> - - - OCL2.0 - specializesFromLibrary('Base::things') - - - - - <p>A <code>Feature</code> cannot be one of its own <code>chainingFeatures</code>.</p> - - - English - chainingFeature->excludes(self) - - - - - <p>The <code>ownedFeatureChainings</code> of a <code>Feature</code> are the <code>ownedRelationships</code> that are <code>FeatureChainings</code>.</p> - - - OCL2.0 - ownedFeatureChaining = ownedRelationship->selectByKind(FeatureChaining) - - - - - <p>The <code>chainingFeatures</code> of a <code>Feature</code> are the <code>chainingFeatures</code> of its <code>ownedFeatureChainings</code>.</p> - - - OCL2.0 - chainingFeature = ownedFeatureChaining.chainingFeature - - - - - A <code>Feature</code> must have either no <code>chainingFeatures</code> or more than one. - - - OCL2.0 - chainingFeature->size() <> 1 - - - - - <p>If a <code>Feature</code> has <code>isEnd = true</code> and an <code>owningType</code> that is not empty, then, for each direct supertype of its <code>owningType</code>, it must redefine the <code>endFeature</code> at the same position, if any.</p> - - - OCL2.0 - isEnd and owningType <> null implies - let i : Integer = - owningType.ownedEndFeature->indexOf(self) in - owningType.ownedSpecialization.general-> - forAll(supertype | - supertype.endFeature->size() >= i implies - redefines(supertype.endFeature->at(i)) - - - - - <p>If a <code>Feature</code> has a <code>FeatureValue</code>, no <code>ownedSpecializations</code> that are not implied, and is not directed, then it must specialize the <code>result</code> of the <code>value</code> <code>Expression</code> of the <code>FeatureValue</code>.</p> - - - OCL2.0 - direction = null and - ownedSpecializations->forAll(isImplied) implies - ownedMembership-> - selectByKind(FeatureValue)-> - forAll(fv | specializes(fv.value.result)) - - - - - <p>If a <code>Feature</code> has <code>isEnd = true</code> and an <code>owningType</code> that is an <code>Association</code> or a <code>Connector</code>, then it must directly or indirectly specialize <code><em>Links::Link::participant</em></code> from the Kernel Semantic Library.</p> - - - OCL2.0 - isEnd and owningType <> null and - (owningType.oclIsKindOf(Association) or - owningType.oclIsKindOf(Connector)) implies - specializesFromLibrary('Links::Link::participant') - - - - - <p>A composite <code>Feature</code> typed by a <code>Structure</code>, and whose <code>ownedType</code> is a <code>Structure</code> or another <code>Feature</code> typed by a <code>Structure</code> must directly or indirectly specialize <em><code>Objects::Object::subobjects</code></em>. - - - OCL2.0 - isComposite and - ownedTyping.type->includes(oclIsKindOf(Structure)) and - owningType <> null and - (owningType.oclIsKindOf(Structure) or - owningType.type->includes(oclIsKindOf(Structure))) implies - specializesFromLibrary('Occurrence::Occurrence::suboccurrences') - - - - - <p>If a <code>Feature</code> has an <code>ownedTyping</code> relationship to a <code>Class</code>, then it must directly or indirectly specialize <code><em>Occurrences::occurrences</em></code> from the Kernel Semantic Library.</p> - - - OCL2.0 - ownedTyping.type->exists(selectByKind(Class)) implies - specializesFromLibrary('Occurrences::occurrences') - - - - - <p>A composite <code>Feature</code> that has an <code>ownedTyping</code> relationship to a <code>Class</code>, and whose <code>ownedType</code> is a <code>Class</code> or another <code>Feature</code> typed by a <code>Class</code>, must directly or indirectly specialize <em><code>Occurrences::Occurrence::suboccurrences</code></em>. - - - OCL2.0 - isComposite and - ownedTyping.type->includes(oclIsKindOf(Class)) and - owningType <> null and - (owningType.oclIsKindOf(Class) or - owningType.oclIsKindOf(Feature) and - owningType.oclAsType(Feature).type-> - exists(oclIsKindOf(Class))) implies - specializesFromLibrary('Occurrence::Occurrence::suboccurrences') - - - - - <p>If a <code>Feature</code> has an <code>ownedTyping</code> relationship to a <code>DataType</code>, then it must directly or indirectly specialize <code><em>Base::dataValues</em></code> from the Kernel Semantic Library.</p> - - - OCL2.0 - ownedTyping.type->exists(selectByKind(DataType)) implies - specializesFromLibrary('Base::dataValues') - - - - - <p>If a <code>Feature</code> is the first <code>ownedFeature</code> of a first or second <code>FlowEnd</code>, then it must directly or indirectly specialize either <em><code>Transfers::Transfer::source::sourceOutput</code></em> or <em><code>Transfers::Transfer::target::targetInput</code></em>, respectively, from the Kernel Semantic Library.</p> - - - OCL2.0 - owningType <> null and - owningType.oclIsKindOf(FlowEnd) and - owningType.ownedFeature->at(1) = self implies - let flowType : Type = owningType.owningType in - flowType <> null implies - let i : Integer = - flowType.ownedFeature.indexOf(owningType) in - (i = 1 implies - redefinesFromLibrary('Transfers::Transfer::source::sourceOutput')) and - (i = 2 implies - redefinesFromLibrary('Transfers::Transfer::source::targetInput')) - - - - - - <p>If a <code>Feature</code> is a <code>parameter</code> of an <code>owningType</code> that is a <code>Behavior</code> or <code>Step</code>, but <em>not</em> - </p> - <ul> - <li>A <code>result</code> <code>parameter</code></li> - <li>A <code>parameter</code> of an <code>InvocationExpression</code>, with at least one non-implied <code>ownedRedefinition</code></li> - </ul> - <p>then, for each direct supertype of its <code>owningType</code> that is also a <code>Behavior</code> or <code>Step</code>, it must redefine the <code>parameter</code> at the same position, if any.</p> - - - OCL2.0 - owningType <> null and - not owningFeatureMembership. - oclIsKindOf(ReturnParameterMembership) and - (owningType.oclIsKindOf(Behavior) or - owningType.oclIsKindOf(Step) and - (owningType.oclIsKindOf(InvocationExpression) implies - not ownedRedefinition->exists(not isImplied)) - implies - let i : Integer = - owningType.ownedFeature->select(direction <> null)-> - reject(owningFeatureMembership. - oclIsKindOf(ReturnParameterMembership))-> - indexOf(self) in - owningType.ownedSpecialization.general-> - forAll(supertype | - let ownedParameters : Sequence(Feature) = - supertype.ownedFeature->select(direction <> null)-> +<p>The <em>values</em> of a <code>Feature</code> for a given instance of its domain are all the instances of its co-domain that are related to that domain instance by the <code>Feature</code>. The values of a <code>Feature</code> with <code>chainingFeatures</code> are the same as values of the last <code>Feature</code> in the chain, which can be found by starting with values of the first <code>Feature</code>, then using those values as domain instances to obtain valus of the second <code>Feature</code>, and so on, to values of the last <code>Feature</code>.</p> + + + + + <p>The <code>ownedRedefinitions</code> of a <code>Feature</code> are its <code>ownedSubsettings</code> that are <code>Redefinitions</code>.</p> + + + OCL2.0 + ownedRedefinition = ownedSubsetting->selectByKind(Redefinition) + + + + + <p>The <code>ownedTypeFeaturings</code> of a <code>Feature</code> are its <code>ownedRelationships</code> that are <code>TypeFeaturings</code> and which have the <code>Feature</code> as their <code>featureOfType</code>.</p> + + + OCL2.0 + ownedTypeFeaturing = ownedRelationship->selectByKind(TypeFeaturing)-> + select(tf | tf.featureOfType = self) + + + + + <p>The <code>ownedSubsettings</code> of a <code>Feature</code> are its <code>ownedSpecializations</code> that are <code>Subsettings</code>.</p> + + + OCL2.0 + ownedSubsetting = ownedSpecialization->selectByKind(Subsetting) + + + + + <p>The <code>ownedTypings</code> of a <code>Feature</code> are its <code>ownedSpecializations</code> that are <code>FeatureTypings</code>.</p> + + + OCL2.0 + ownedTyping = ownedGeneralization->selectByKind(FeatureTyping) + + + + + <p>The <code>types</code> of a <code>Feature</code> are the union of the <code>types</code> of its <code>typings</code> and the <code>types</code> of the <code>Features</code> it subsets, with all redundant supertypes removed. If the <code>Feature</code> has <code>chainingFeatures</code>, then the union also includes the types of the last <code>chainingFeature</code>.</p> + + + OCL2.0 + type = + let types : OrderedSet(Types) = OrderedSet{self}-> + -- Note: The closure operation automatically handles circular relationships. + closure(typingFeatures()).typing.type->asOrderedSet() in + types->reject(t1 | types->exist(t2 | t2 <> t1 and t2.specializes(t1))) + + + + + <p>If a <code>Feature</code> has a <code>multiplicity</code>, then the <code>featuringTypes</code> of the <code>multiplicity</code> must be the same as those of the <code>Feature</code> itself.</p> + + + OCL2.0 + multiplicity <> null implies multiplicity.featuringType = featuringType + + + + + <p>A <code>Feature</code> must directly or indirectly specialize <code><em>Base::things</em></code> from the Kernel Semantic Library.</p> + + + OCL2.0 + specializesFromLibrary('Base::things') + + + + + <p>A <code>Feature</code> cannot be one of its own <code>chainingFeatures</code>.</p> + + + English + chainingFeature->excludes(self) + + + + + <p>The <code>ownedFeatureChainings</code> of a <code>Feature</code> are the <code>ownedRelationships</code> that are <code>FeatureChainings</code>.</p> + + + OCL2.0 + ownedFeatureChaining = ownedRelationship->selectByKind(FeatureChaining) + + + + + <p>The <code>chainingFeatures</code> of a <code>Feature</code> are the <code>chainingFeatures</code> of its <code>ownedFeatureChainings</code>.</p> + + + OCL2.0 + chainingFeature = ownedFeatureChaining.chainingFeature + + + + + A <code>Feature</code> must have either no <code>chainingFeatures</code> or more than one. + + + OCL2.0 + chainingFeature->size() <> 1 + + + + + <p>If a <code>Feature</code> has <code>isEnd = true</code> and an <code>owningType</code> that is not empty, then, for each direct supertype of its <code>owningType</code>, it must redefine the <code>endFeature</code> at the same position, if any.</p> + + + OCL2.0 + isEnd and owningType <> null implies + let i : Integer = + owningType.ownedEndFeature->indexOf(self) in + owningType.ownedSpecialization.general-> + forAll(supertype | + supertype.endFeature->size() >= i implies + redefines(supertype.endFeature->at(i)) + + + + + <p>If a <code>Feature</code> has a <code>FeatureValue</code>, no <code>ownedSpecializations</code> that are not implied, and is not directed, then it must specialize the <code>result</code> of the <code>value</code> <code>Expression</code> of the <code>FeatureValue</code>.</p> + + + OCL2.0 + direction = null and +ownedSpecializations->forAll(isImplied) implies + ownedMembership-> + selectByKind(FeatureValue)-> + forAll(fv | specializes(fv.value.result)) + + + + + <p>If a <code>Feature</code> has <code>isEnd = true</code> and an <code>owningType</code> that is an <code>Association</code> or a <code>Connector</code>, then it must directly or indirectly specialize <code><em>Links::Link::participant</em></code> from the Kernel Semantic Library.</p> + + + OCL2.0 + isEnd and owningType <> null and +(owningType.oclIsKindOf(Association) or + owningType.oclIsKindOf(Connector)) implies + specializesFromLibrary('Links::Link::participant') + + + + + <p>A composite <code>Feature</code> typed by a <code>Structure</code>, and whose <code>ownedType</code> is a <code>Structure</code> or another <code>Feature</code> typed by a <code>Structure</code> must directly or indirectly specialize <em><code>Objects::Object::subobjects</code></em>. + + + OCL2.0 + isComposite and +ownedTyping.type->includes(oclIsKindOf(Structure)) and +owningType <> null and +(owningType.oclIsKindOf(Structure) or + owningType.type->includes(oclIsKindOf(Structure))) implies + specializesFromLibrary('Occurrence::Occurrence::suboccurrences') + + + + + <p>If a <code>Feature</code> has an <code>ownedTyping</code> relationship to a <code>Class</code>, then it must directly or indirectly specialize <code><em>Occurrences::occurrences</em></code> from the Kernel Semantic Library.</p> + + + OCL2.0 + ownedTyping.type->exists(selectByKind(Class)) implies + specializesFromLibrary('Occurrences::occurrences') + + + + + <p>A composite <code>Feature</code> that has an <code>ownedTyping</code> relationship to a <code>Class</code>, and whose <code>ownedType</code> is a <code>Class</code> or another <code>Feature</code> typed by a <code>Class</code>, must directly or indirectly specialize <em><code>Occurrences::Occurrence::suboccurrences</code></em>. + + + OCL2.0 + isComposite and +ownedTyping.type->includes(oclIsKindOf(Class)) and +owningType <> null and +(owningType.oclIsKindOf(Class) or + owningType.oclIsKindOf(Feature) and + owningType.oclAsType(Feature).type-> + exists(oclIsKindOf(Class))) implies + specializesFromLibrary('Occurrence::Occurrence::suboccurrences') + + + + + <p>If a <code>Feature</code> has an <code>ownedTyping</code> relationship to a <code>DataType</code>, then it must directly or indirectly specialize <code><em>Base::dataValues</em></code> from the Kernel Semantic Library.</p> + + + OCL2.0 + ownedTyping.type->exists(selectByKind(DataType)) implies + specializesFromLibrary('Base::dataValues') + + + + + <p>If a <code>Feature</code> is the first <code>ownedFeature</code> of a first or second <code>FlowEnd</code>, then it must directly or indirectly specialize either <em><code>Transfers::Transfer::source::sourceOutput</code></em> or <em><code>Transfers::Transfer::target::targetInput</code></em>, respectively, from the Kernel Semantic Library.</p> + + + OCL2.0 + owningType <> null and +owningType.oclIsKindOf(FlowEnd) and +owningType.ownedFeature->at(1) = self implies + let flowType : Type = owningType.owningType in + flowType <> null implies + let i : Integer = + flowType.ownedFeature.indexOf(owningType) in + (i = 1 implies + redefinesFromLibrary('Transfers::Transfer::source::sourceOutput')) and + (i = 2 implies + redefinesFromLibrary('Transfers::Transfer::target::targetInput')) + + + + + + <p>If a <code>Feature</code> is a <code>parameter</code> of an <code>owningType</code> that is a <code>Behavior</code> or <code>Step</code>, but <em>not</em> +</p> +<ul> + <li>A <code>result</code> <code>parameter</code></li> + <li>A <code>parameter</code> of an <code>InvocationExpression</code>, with at least one non-implied <code>ownedRedefinition</code></li> +</ul> +<p>then, for each direct supertype of its <code>owningType</code> that is also a <code>Behavior</code> or <code>Step</code>, it must redefine the <code>parameter</code> at the same position, if any.</p> + + + OCL2.0 + owningType <> null and +(owningType.oclIsKindOf(Behavior) or + owningType.oclIsKindOf(Step) and + (owningType.oclIsKindOf(InvocationExpression) implies + not ownedRedefinition->exists(not isImplied))) +implies + let ownerParameters : Sequence(Feature) = + owningType.ownedFeature->select(direction <> null)-> + reject(owningFeatureMembership. + oclIsKindOf(ReturnParameterMembership)) in + ownerParameters->includes(self) implies + let i : Integer = ownerParameters.indexof(self) in + owningType.ownedSpecialization.general-> + forAll(supertype | + supertype.oclIsKindOf(Behavior) or + supertype.oclIsKindOf(Step) + implies + let ownedParameters : Sequence(Feature) = + supertype.ownedFeature->select(direction <> null)-> reject(owningFeatureMembership. - oclIsKindOf(ReturnParameterMembership)) in - ownedParameters->size() >= i implies - redefines(ownedParameters->at(i)) - - - - - <p>If a <code>Feature</code> has an <code>ownedTyping</code> relationship to a <code>Structure</code>, then it must directly or indirectly specialize <code><em>Objects::objects</em></code> from the Kernel Semantics Library.</p> - - - OCL2.0 - ownedTyping.type->exists(selectByKind(Structure)) implies - specializesFromLibary('Objects::objects') - - - - - <p>If a <code>Feature</code> is a <code>result</code> <code>parameter</code> of an <code>owningType</code> that is a <code>Function</code> or <code>Expression</code>, then, for each direct supertype of its <code>owningType</code> that is also a <code>Function</code> or <code>Expression</code>, it must redefine the <code>result</code> <code>parameter</code>.</p> - - - OCL2.0 - owningType <> null and - (owningType.oclIsKindOf(Function) and - self = owningType.oclAsType(Function).result or - owningType.oclIsKindOf(Expression) and - self = owningType.oclAsType(Expression).result) implies - owningType.ownedSpecialization.general-> - select(oclIsKindOf(Function) or oclIsKindOf(Expression))-> - forAll(supertype | - redefines( - if superType.oclIsKindOf(Function) then - superType.oclAsType(Function).result - else - superType.oclAsType(Expression).result - endif) - - - - - <p>The <code>ownedFeatureInvertings</code> of a <code>Feature</code> are its <code>ownedRelationships</code> that are <code>FeatureInvertings</code>.</p> - - - OCL2.0 - ownedFeatureInverting = ownedRelationship->selectByKind(FeatureInverting)-> - select(fi | fi.featureInverted = self) - - - - - The <code>featuringTypes</code> of a <code>Feature</code> include the <code>featuringTypes</code> of all the <code>typeFeaturings</code> of the <code>Feature</code>. If the <code>Feature</code> has <code>chainingFeatures</code>, then its <code>featuringTypes</code> also include the <code>featuringTypes</code> of the first <code>chainingFeature</code>. - - - OCL2.0 - featuringType = - let featuringTypes : OrderedSet(Type) = - featuring.type->asOrderedSet() in - if chainingFeature->isEmpty() then featuringTypes - else - featuringTypes-> - union(chainingFeature->first().featuringType)-> - asOrderedSet() - endif - - - - - <p>The <code>ownedReferenceSubsetting</code> of a <code>Feature</code> is the first - <code>ownedSubsetting</code> that is a <code>ReferenceSubsetting</code> (if any).</p> - - - OCL2.0 - ownedReferenceSubsetting = - let referenceSubsettings : OrderedSet(ReferenceSubsetting) = - ownedSubsetting->selectByKind(ReferenceSubsetting) in - if referenceSubsettings->isEmpty() then null - else referenceSubsettings->first() endif - - - - - <p>A <code>Feature</code> must have at most one <code>ownedSubsetting</code> that is an <code>ReferenceSubsetting</code>.</p> - - - OCL2.0 - ownedSubsetting->selectByKind(ReferenceSubsetting)->size() <= 1 - - - - - <p>Each <code>chainingFeature</code> (other than the first) must be featured within the previous <code>chainingFeature</code>.</p> - - - OCL2.0 - Sequence{2..chainingFeature->size()}->forAll(i | - chainingFeature->at(i).isFeaturedWithin(chainingFeature->at(i-1))) - - - - - - <p>If a <code>Feature</code> has <code>isPortion = true</code>, an <code>ownedTyping </code> relationship to a <code>Class</code>, and an <code>owningType</code> that is a <code>Class</code> or another <code>Feature</code> typed by a <code>Class</code>, then it must directly or indirectly specialize <em><code>Occurrences::Occurrence::portions</code></em> from the Kernel Semantic Library.</p> - - - OCL2.0 - isPortion and - ownedTyping.type->includes(oclIsKindOf(Class)) and - owningType <> null and - (owningType.oclIsKindOf(Class) or - owningType.oclIsKindOf(Feature) and - owningType.oclAsType(Feature).type-> - exists(oclIsKindOf(Class))) implies - specializesFromLibrary('Occurrence::Occurrence::portions') - - - - - <p>If a <code>Feature</code> has no <code>chainingFeatures</code>, then its <code>featureTarget</code> is the <code>Feature</code> itself, otherwise the <code>featureTarget</code> is the last of the <code>chainingFeatures</code>.</p> - - - OCL2.0 - featureTarget = if chainingFeature->isEmpty() then self else chainingFeature->last() endif - - - - - <p>The <code>ownedCrossSubsetting</code> of a <code>Feature</code> is the <code>ownedSubsetting</code> that is a <code>CrossSubsetting</code>, if any.</p> - - - OCL2.0 - ownedCrossSubsetting = - let crossSubsettings: Sequence(CrossSubsetting) = - ownedSubsetting->selectByKind(CrossSubsetting) in - if crossSubsettings->isEmpty() then null - else crossSubsettings->first() - endif - - - - - <p>If a <code>Feature</code> has <code>isEnd = true</code>, then it must have multiplicity <code>1..1</code>.</p> - - - OCL2.0 - isEnd implies - multiplicities().allSuperTypes()->flatten()-> - selectByKind(MultiplicityRange)->exists(hasBounds(1,1)) - - - - - <p>The <code>crossFeature</code> of a <code>Feature</code> must have the same <code>types</code> as the <code>Feature</code>.</p> - - - OCL2.0 - crossFeature <> null implies - crossFeature.type->asSet() = type->asSet() - - - - - <p>A <code>Feature</code> must have at most one <code>ownedSubsetting</code> that is a <code>CrossSubsetting</code>.</p> - - - OCL2.0 - ownedSubsetting->selectByKind(CrossSubsetting)->size() <= 1 - - - - - <p>The <code>crossFeature</code> of a <code>Feature</code> is the second <code>chainingFeature</code> of the <code>crossedFeature</code> of the <code>ownedCrossSubsetting</code> of the <code>Feature</code>, if any.</p> - - - OCL2.0 - crossFeature = - if ownedCrossSubsetting = null then null - else - let chainingFeatures: Sequence(Feature) = - ownedCrossSubsetting.crossedFeature.chainingFeature in - if chainingFeatures->size() < 2 then null - else chainingFeatures->at(2) - endif - - - - - <p>If this <code>Feature</code> is the <code>ownedCrossFeature</code> of an end <code>Feature</code>, then it must directly or indirectly specialize the <code>types</code> of its owning end <code>Feature</code>.</p> - - - OCL2.0 - isOwnedCrossFeature() implies - owner.oclAsType(Feature).type->forAll(t | self.specializes(t)) - - - - - <p>If this <code>Feature</code> is the <code>ownedCrossFeature</code> of an end <code>Feature</code>, then, for any end <code>Feature</code> that is redefined by the owning end <code>Feature</code> of this <code>Feature</code>, this <code>Feature</code> must subset the <code>crossFeature</code> of the redefined end <code>Feature</code>, if this exists.</p> - - - OCL2.0 - isOwnedCrossFeature() implies - ownedSubsetting.subsettedFeature->includesAll( - owner.oclAsType(Feature).ownedRedefinition.redefinedFeature-> - select(crossFeature <> null).crossFeature) - - - - - <p>If this <code>Feature</code> has a <code>crossFeature</code>, then, for any <code>Feature</code> that is redefined by this <code>Feature</code>, the <code>crossFeature</code> must specialize the <code>crossFeature</code> of the redefined end <code>Feature</code>, if this exists.</p> - - - OCL2.0 - crossFeature <> null implies - ownedRedefinition.redefinedFeature.crossFeature-> - forAll(f | f <> null implies crossFeature.specializes(f)) - - - - - <p>If this <code>Feature</code> has <code>isEnd = true</code> and <code>ownedCrossFeature</code> returns a non-null value, then the <code>crossFeature</code> of the <code>Feature</code> must be the <code>Feature</code> returned from <code>ownedCrossFeature</code> (which implies that this <code>Feature</code> has an appropriate <code>ownedCrossSubsetting</code> to realize this).</p> - - - OCL2.0 - ownedCrossFeature() <> null implies - crossFeature = ownedCrossFeature() - - - - - <p>If this <code>Feature</code> is the <code>ownedCrossFeature</code> of an end <code>Feature</code>, then it must have <code>featuringTypes</code> consistent with the crossing from other end <code>Features</code> of the <code>owningType</code> of its end <code>Feature</code>.</p> - - - OCL2.0 - isOwnedCrossFeature() implies - let otherEnds : OrderedSet(Feature) = - owner.oclAsType(Feature).owningType.endFeature->excluding(self) in - if (otherEnds->size() = 1) then - featuringType = otherEnds->first().type - else - featuringType->size() = 1 and - featuringType->first().isCartesianProduct() and - featuringType->first().asCartesianProduct() = otherEnds.type and - featuringType->first().allSupertypes()->includesAll( - owner.oclAsType(Feature).ownedRedefinition.redefinedFeature-> - select(crossFeature() <> null).crossFeature().featuringType) - endif - - - - - OCL2.0 - isPortion implies not isVariable - - - - - <p>A <code>Feature</code> with <code>isEnd = true</code> must have no direction.</p> - - - OCL2.0 - isEnd implied direction = null - - - - - <p>If a <code>Feature</code> is owned via a <code>FeatureMembership</code>, then it must have a <code>featuringType</code> for which the operation <code>isFeaturingType</code> returns true.</p> - - - OCL2.0 - owningFeatureMembership <> null implies - featuringTypes->exists(t | isFeaturingType(t)) - - - - - <p>A <code>Feature</code> with <code>isConstant = true</code> must have <code>isVariable = true</code>. - - - OCL2.0 - isConstant implies isVariable - - - - - <p>A <code>Feature</code> with <code>isVariable = true</code> must have an <code>owningType</code> that directly or indirectly specializes the <code>Class</code> <em><code>Occurrences::Occurrence</code></em> from the Kernel Semantic Library.</p> - - - OCL2.0 - isVariable implies - owningType <> null and - owningType.specializes('Occurrences::Occurrence') - - - - - <p>A <code>Feature</code> with <code>isEnd = true</code> must have all of <code>isDerived = false</code>, <code>isAbstract = false</code>, <code>isComposite = false</code>, and <code>isPortion = false</code>.</p> - - - OCL2.0 - isEnd implies not (isDerived or isAbstract or isComposite or isPortion) - - - - - <p>A <code>Feature</code> with <code>isEnd = true</code> and <code>isVariable = true</code> must have <code>isConstant = true</code>.</p> - - - OCL2.0 - isEnd and isVariable implies isConstant - - - - - - <p>The <code>Type</code> that is the <code>owningType</code> of the <code>owningFeatureMembership</code> of this <code>Feature</code>.</p> - - - - - - - <p>Whether or not values for this <code>Feature</code> must have no duplicates or not.</p> - - - - - - - - <p>Whether an order exists for the values of this <code>Feature</code> or not.</p> - - - - - - - <p><code>Types</code> that restrict the values of this <code>Feature</code>, such that the values must be instances of all the <code>types</code>. The types of a <code>Feature</code> are derived from its <code>typings</code> and the <code>types</code> of its <code>subsettings</code>. If the <code>Feature</code> is chained, then the <code>types</code> of the last <code>Feature</code> in the chain are also <code>types</code> of the chained <code>Feature</code>.</p> - - - - - - - - <p>The <code>ownedSubsettings</code> of this <code>Feature</code> that are <code>Redefinitions</code>, for which the <code>Feature</code> is the <code>redefiningFeature</code>.</p> + oclIsKindOf(ReturnParameterMembership)) in + ownedParameters->size() >= i implies + redefines(ownedParameters->at(i))) + + + + + <p>If a <code>Feature</code> has an <code>ownedTyping</code> relationship to a <code>Structure</code>, then it must directly or indirectly specialize <code><em>Objects::objects</em></code> from the Kernel Semantics Library.</p> + + + OCL2.0 + ownedTyping.type->exists(selectByKind(Structure)) implies + specializesFromLibrary('Objects::objects') + + + + + <p>If a <code>Feature</code> is a <code>result</code> <code>parameter</code> of an <code>owningType</code> that is a <code>Function</code> or <code>Expression</code>, then, for each direct supertype of its <code>owningType</code> that is also a <code>Function</code> or <code>Expression</code>, it must redefine the <code>result</code> <code>parameter</code>.</p> + + + OCL2.0 + owningType <> null and +(owningType.oclIsKindOf(Function) and + self = owningType.oclAsType(Function).result or + owningType.oclIsKindOf(Expression) and + self = owningType.oclAsType(Expression).result) implies + owningType.ownedSpecialization.general-> + select(oclIsKindOf(Function) or oclIsKindOf(Expression))-> + forAll(supertype | + redefines( + if superType.oclIsKindOf(Function) then + superType.oclAsType(Function).result + else + superType.oclAsType(Expression).result + endif) + + + + + <p>The <code>ownedFeatureInvertings</code> of a <code>Feature</code> are its <code>ownedRelationships</code> that are <code>FeatureInvertings</code>.</p> + + + OCL2.0 + ownedFeatureInverting = ownedRelationship->selectByKind(FeatureInverting)-> + select(fi | fi.featureInverted = self) + + + + + The <code>featuringTypes</code> of a <code>Feature</code> include the <code>featuringTypes</code> of all the <code>typeFeaturings</code> of the <code>Feature</code>. If the <code>Feature</code> has <code>chainingFeatures</code>, then its <code>featuringTypes</code> also include the <code>featuringTypes</code> of the first <code>chainingFeature</code>. + + + OCL2.0 + featuringType = + let featuringTypes : OrderedSet(Type) = + typeFeaturing.type->asOrderedSet() in + if chainingFeature->isEmpty() then featuringTypes + else + featuringTypes-> + union(chainingFeature->first().featuringType)-> + asOrderedSet() + endif + + + + + <p>The <code>ownedReferenceSubsetting</code> of a <code>Feature</code> is the first +<code>ownedSubsetting</code> that is a <code>ReferenceSubsetting</code> (if any).</p> + + + OCL2.0 + ownedReferenceSubsetting = + let referenceSubsettings : OrderedSet(ReferenceSubsetting) = + ownedSubsetting->selectByKind(ReferenceSubsetting) in + if referenceSubsettings->isEmpty() then null + else referenceSubsettings->first() endif + + + + + <p>A <code>Feature</code> must have at most one <code>ownedSubsetting</code> that is an <code>ReferenceSubsetting</code>.</p> + + + OCL2.0 + ownedSubsetting->selectByKind(ReferenceSubsetting)->size() <= 1 + + + + + <p>Each <code>chainingFeature</code> (other than the first) must be featured within the previous <code>chainingFeature</code>.</p> + + + OCL2.0 + Sequence{2..chainingFeature->size()}->forAll(i | + chainingFeature->at(i).isFeaturedWithin(chainingFeature->at(i-1))) + + + + + + <p>If a <code>Feature</code> has <code>isPortion = true</code>, an <code>ownedTyping </code> relationship to a <code>Class</code>, and an <code>owningType</code> that is a <code>Class</code> or another <code>Feature</code> typed by a <code>Class</code>, then it must directly or indirectly specialize <em><code>Occurrences::Occurrence::portions</code></em> from the Kernel Semantic Library.</p> + + + OCL2.0 + isPortion and +ownedTyping.type->includes(oclIsKindOf(Class)) and +owningType <> null and +(owningType.oclIsKindOf(Class) or + owningType.oclIsKindOf(Feature) and + owningType.oclAsType(Feature).type-> + exists(oclIsKindOf(Class))) implies + specializesFromLibrary('Occurrence::Occurrence::portions') + + + + + <p>If a <code>Feature</code> has no <code>chainingFeatures</code>, then its <code>featureTarget</code> is the <code>Feature</code> itself, otherwise the <code>featureTarget</code> is the last of the <code>chainingFeatures</code>.</p> + + + OCL2.0 + featureTarget = if chainingFeature->isEmpty() then self else chainingFeature->last() endif + + + + + <p>The <code>ownedCrossSubsetting</code> of a <code>Feature</code> is the <code>ownedSubsetting</code> that is a <code>CrossSubsetting</code>, if any.</p> + + + OCL2.0 + ownedCrossSubsetting = + let crossSubsettings: Sequence(CrossSubsetting) = + ownedSubsetting->selectByKind(CrossSubsetting) in + if crossSubsettings->isEmpty() then null + else crossSubsettings->first() + endif + + + + + <p>If a <code>Feature</code> has <code>isEnd = true</code>, then it must have multiplicity <code>1..1</code>.</p> + + + OCL2.0 + isEnd implies + multiplicities().allSuperTypes()->flatten()-> + selectByKind(MultiplicityRange)->exists(hasBounds(1,1)) + + + + + <p>The <code>crossFeature</code> of a <code>Feature</code> must have the same <code>types</code> as the <code>Feature</code>.</p> + + + OCL2.0 + crossFeature <> null implies + crossFeature.type->asSet() = type->asSet() + + + + + <p>A <code>Feature</code> must have at most one <code>ownedSubsetting</code> that is a <code>CrossSubsetting</code>.</p> + + + OCL2.0 + ownedSubsetting->selectByKind(CrossSubsetting)->size() <= 1 + + + + + <p>The <code>crossFeature</code> of a <code>Feature</code> is the second <code>chainingFeature</code> of the <code>crossedFeature</code> of the <code>ownedCrossSubsetting</code> of the <code>Feature</code>, if any.</p> + + + OCL2.0 + crossFeature = + if ownedCrossSubsetting = null then null + else + let chainingFeatures: Sequence(Feature) = + ownedCrossSubsetting.crossedFeature.chainingFeature in + if chainingFeatures->size() < 2 then null + else chainingFeatures->at(2) + endif + + + + + <p>If this <code>Feature</code> is the <code>ownedCrossFeature</code> of an end <code>Feature</code>, then it must directly or indirectly specialize the <code>types</code> of its owning end <code>Feature</code>.</p> + + + OCL2.0 + isOwnedCrossFeature() implies + owner.oclAsType(Feature).type->forAll(t | self.specializes(t)) + + + + + <p>If this <code>Feature</code> is the <code>ownedCrossFeature</code> of an end <code>Feature</code>, then, for any end <code>Feature</code> that is redefined by the owning end <code>Feature</code> of this <code>Feature</code>, this <code>Feature</code> must subset the <code>crossFeature</code> of the redefined end <code>Feature</code>, if this exists.</p> + + + OCL2.0 + isOwnedCrossFeature() implies + ownedSubsetting.subsettedFeature->includesAll( + owner.oclAsType(Feature).ownedRedefinition.redefinedFeature-> + select(crossFeature <> null).crossFeature) + + + + + <p>If this <code>Feature</code> has a <code>crossFeature</code>, then, for any <code>Feature</code> that is redefined by this <code>Feature</code>, the <code>crossFeature</code> must specialize the <code>crossFeature</code> of the redefined end <code>Feature</code>, if this exists.</p> + + + OCL2.0 + crossFeature <> null implies + ownedRedefinition.redefinedFeature.crossFeature-> + forAll(f | f <> null implies crossFeature.specializes(f)) + + + + + <p>If this <code>Feature</code> has <code>isEnd = true</code> and <code>ownedCrossFeature</code> returns a non-null value, then the <code>crossFeature</code> of the <code>Feature</code> must be the <code>Feature</code> returned from <code>ownedCrossFeature</code> (which implies that this <code>Feature</code> has an appropriate <code>ownedCrossSubsetting</code> to realize this).</p> + + + OCL2.0 + ownedCrossFeature() <> null implies + crossFeature = ownedCrossFeature() + + + + + <p>If this <code>Feature</code> is the <code>ownedCrossFeature</code> of an end <code>Feature</code>, then it must have <code>featuringTypes</code> consistent with the crossing from other end <code>Features</code> of the <code>owningType</code> of its end <code>Feature</code>.</p> + + + OCL2.0 + isOwnedCrossFeature() implies + let otherEnds : OrderedSet(Feature) = + owner.oclAsType(Feature).owningType.endFeature->excluding(self) in + if (otherEnds->size() = 1) then + featuringType = otherEnds->first().type + else + featuringType->size() = 1 and + featuringType->first().isCartesianProduct() and + featuringType->first().asCartesianProduct() = otherEnds.type and + featuringType->first().allSupertypes()->includesAll( + owner.oclAsType(Feature).ownedRedefinition.redefinedFeature-> + select(crossFeature() <> null).crossFeature().featuringType) + endif + + + + + OCL2.0 + isPortion implies not isVariable + + + + + <p>A <code>Feature</code> with <code>isEnd = true</code> must have no direction.</p> + + + OCL2.0 + isEnd implied direction = null + + + + + <p>If a <code>Feature</code> is owned via a <code>FeatureMembership</code>, then it must have a <code>featuringType</code> for which the operation <code>isFeaturingType</code> returns true.</p> + + + OCL2.0 + owningFeatureMembership <> null implies + featuringTypes->exists(t | isFeaturingType(t)) + + + + + <p>A <code>Feature</code> with <code>isConstant = true</code> must have <code>isVariable = true</code>. + + + OCL2.0 + isConstant implies isVariable + + + + + <p>A <code>Feature</code> with <code>isVariable = true</code> must have an <code>owningType</code> that directly or indirectly specializes the <code>Class</code> <em><code>Occurrences::Occurrence</code></em> from the Kernel Semantic Library.</p> + + + OCL2.0 + isVariable implies + owningType <> null and + owningType.specializes('Occurrences::Occurrence') + + + + + <p>A <code>Feature</code> with <code>isEnd = true</code> must have all of <code>isDerived = false</code>, <code>isAbstract = false</code>, <code>isComposite = false</code>, and <code>isPortion = false</code>.</p> + + + OCL2.0 + isEnd implies not (isDerived or isAbstract or isComposite or isPortion) + + + + + <p>A <code>Feature</code> with <code>isEnd = true</code> and <code>isVariable = true</code> must have <code>isConstant = true</code>.</p> + + + OCL2.0 + isEnd and isVariable implies isConstant + + + + + + <p>The <code>Type</code> that is the <code>owningType</code> of the <code>owningFeatureMembership</code> of this <code>Feature</code>.</p> + + + + + + + <p>Whether or not values for this <code>Feature</code> must have no duplicates or not.</p> + + + + + + + + <p>Whether an order exists for the values of this <code>Feature</code> or not.</p> + + + + + + + <p><code>Types</code> that restrict the values of this <code>Feature</code>, such that the values must be instances of all the <code>types</code>. The types of a <code>Feature</code> are derived from its <code>typings</code> and the <code>types</code> of its <code>subsettings</code>. If the <code>Feature</code> is chained, then the <code>types</code> of the last <code>Feature</code> in the chain are also <code>types</code> of the chained <code>Feature</code>.</p> + + + + + + + + <p>The <code>ownedSubsettings</code> of this <code>Feature</code> that are <code>Redefinitions</code>, for which the <code>Feature</code> is the <code>redefiningFeature</code>.</p> - - - - - - - - <p>The <code>ownedSpecializations</code> of this <code>Feature</code> that are <code>Subsettings</code>, for which the <code>Feature</code> is the <code>subsettingFeature</code>.</p> - - - - - - - - <p>The <code>FeatureMembership</code> that owns this <code>Feature</code> as an <code>ownedMemberFeature</code>, determining its <code>owningType</code>.</p> - - - - - - - <p>Whether the <code>Feature</code> is a composite <code>feature</code> of its <code>featuringType</code>. If so, the values of the <code>Feature</code> cannot exist after its featuring instance no longer does and cannot be values of another composite feature that is not on the same featuring instance.</p> - - - - - - - - <p>Whether or not this <code>Feature</code> is an end <code>Feature</code>. An end <code>Feature</code> always has multiplicity 1, mapping each of its domain instances to a single co-domain instance. However, it may have a <code>crossFeature</code>, in which case values of the <code>crossFeature</code> must be the same as those found by navigation across instances of the <code>owningType</code> from values of other end <code>Features</code> to values of this Feature. If the <code>owningType</code> has <em>n</em> end <code>Features</code>, then the multiplicity, ordering, and uniqueness declared for the <code>crossFeature</code> of any one of these end <code>Features</code> constrains the cardinality, ordering, and uniqueness of the collection of values of that <code>Feature</code> reached by navigation when the values of the other <em>n-1</em> end <code>Features</code> are held fixed.</p> - - - - - - - - <p>The <code>Type</code> that is related to this <code>Feature</code> by an <code>EndFeatureMembership</code> in which the <code>Feature</code> is an <code>ownedMemberFeature</code>.</p> - - - - - - - <p>The <code>ownedSpecializations</code> of this <code>Feature</code> that are <code>FeatureTypings</code>, for which the <code>Feature</code> is the <code>typedFeature</code>.</p> - - - - - - - <p><code>Types</code> that feature this <code>Feature</code>, such that any instance in the domain of the <code>Feature</code> must be classified by all of these <code>Types</code>, including at least all the <code>featuringTypes</code> of its <code>typeFeaturings</code>. If the <code>Feature</code> is chained, then the <code>featuringTypes</code> of the first <code>Feature</code> in the chain are also <code>featuringTypes</code> of the chained <code>Feature</code>.</p> - - - - - - - <p>The <code>ownedRelationships</code> of this <code>Feature</code> that are <code>TypeFeaturings</code> and for which the <code>Feature</code> is the <code>featureOfType</code>.</p> - - - - - - - <p>Whether the values of this <code>Feature</code> can always be computed from the values of other <code>Features</code>.</p> - - - - - - - - <p>The <code>Feature</code> that are chained together to determine the values of this <code>Feature</code>, derived from the <code>chainingFeatures</code> of the <code>ownedFeatureChainings</code> of this <code>Feature</code>, in the same order. The values of a <code>Feature</code> with <code>chainingFeatures</code> are the same as values of the last <code>Feature</code> in the chain, which can be found by starting with the values of the first <code>Feature</code> (for each instance of the domain of the original <code>Feature</code>), then using each of those as domain instances to find the values of the second <code>Feature</code> in chainingFeatures, and so on, to values of the last <code>Feature</code>.</p> - - - - - - - <p>The <code>ownedRelationships</code> of this <code>Feature</code> that are <code>FeatureInvertings</code> and for which the <code>Feature</code> is the <code>featureInverted</code>.</p> - - - - - - - <p>The <code>ownedRelationships</code> of this <code>Feature</code> that are <code>FeatureChainings</code>, for which the <code>Feature</code> will be the <code>featureChained</code>.</p> - - - - - - - <p>Whether the values of this <code>Feature</code> are contained in the space and time of instances of the domain of the <code>Feature</code> and represent the same thing as those instances.</p> - - - - - - - - <p>Whether the value of this <code>Feature</code> might vary over time. That is, whether the <code>Feature</code> may have a different value for each <em><code>snapshot</code></em> of an <code>owningType</code> that is an <em><code>Occurrence</code></em>.</p> - - - - - - - <p>If <code>isVariable</code> is true, then whether the value of this <code>Feature</code> nevertheless does not change over all <code><em>snapshots</em></code> of its <code>owningType</code>.</p> - - - - - - - - <p>The one <code>ownedSubsetting</code> of this <code>Feature</code>, if any, that is a <code>ReferenceSubsetting</code>, for which the <code>Feature</code> is the <code>referencingFeature</code>.</p> - - - - - - - <p>The last of the <code>chainingFeatures</code> of this <code>Feature</code>, if it has any. Otherwise, this <code>Feature</code> itself.</p> - - - - - - - <p>The second <code>chainingFeature</code> of the <code>crossedFeature</code> of the <code>ownedCrossSubsetting</code> of this <code>Feature</code>, if it has one. Semantically, the values of the <code>crossFeature</code> of an end <code>Feature</code> must include all values of the end <code>Feature</code> obtained when navigating from values of the other end <code>Features</code> of the same <code>owningType</code>. - </p> - - - - - - - <p>Indicates how values of this <code>Feature</code> are determined or used (as specified for the <code>FeatureDirectionKind</code>).</p> - - - - - - - - <p>The one <code>ownedSubsetting</code> of this <code>Feature</code>, if any, that is a <code>CrossSubsetting}, for which the <code>Feature</code> is the <code>crossingFeature</code>.</p> - - - - - - - <p>Return the <code>directionOf</code> this <code>Feature</code> relative to the given <code>type</code>.</p> - - - - OCL2.0 - type.directionOf(self) - - - - - - - - - - - <p>If a <code>Feature</code> has no <code>declaredShortName</code> or <code>declaredName</code>, then its effective <code>shortName</code> is given by the effective <code>shortName</code> of the <code>Feature</code> returned by the <code>namingFeature()</code> operation, if any.</p> - - - - OCL2.0 - if declaredShortName <> null or declaredName <> null then - declaredShortName - else - let namingFeature : Feature = namingFeature() in - if namingFeature = null then - null - else - namingFeature.effectiveShortName() - endif - endif - - - - - - - - - - - <p>If a <code>Feature</code> has no <code>declaredName</code> or <code>declaredShortName</code> - , then its effective <code>name</code> is given by the effective <code>name</code> of the <code>Feature</code> returned by the <code>namingFeature()</code> operation, if any.</p> - - - - OCL2.0 - if declaredShortName <> null or declaredName <> null then - declaredName - else - let namingFeature : Feature = namingFeature() in - if namingFeature = null then - null - else - namingFeature.effectiveName() - endif - endif - - - - - - - - - - - <p>By default, the naming <code>Feature</code> of a <code>Feature</code> is given by its first <code>redefinedFeature</code> of its first <code>ownedRedefinition</code>, if any.</p> - - - - OCL2.0 - if ownedRedefinition->isEmpty() then - null - else - ownedRedefinition->at(1).redefinedFeature - endif - - - - - - - - - - - OCL2.0 - let supertypes : OrderedSet(Type) = - self.oclAsType(Type).supertypes(excludeImplied) in - if featureTarget = self then supertypes - else supertypes->append(featureTarget) - endif - - - - - - - - - - - - - <p>Check whether this <code>Feature</code> <em>directly</em> redefines the given <code>redefinedFeature</code>.</p> - - - - OCL2.0 - ownedRedefinition.redefinedFeature->includes(redefinedFeature) - - - - - - - - - - <p>Check whether this <code>Feature</code> <em>directly</em> redefines the named library <code>Feature</code>. <code>libraryFeatureName</code> must conform to the syntax of a KerML qualified name and must resolve to a <code>Feature</code> in global scope.</p> - - - - OCL2.0 - let mem: Membership = resolveGlobal(libraryFeatureName) in - mem <> null and mem.memberElement.oclIsKindOf(Feature) and - redefines(mem.memberElement.oclAsType(Feature)) - - - - - - - - - - - - <p>Check whether this <code>Feature</code> directly or indirectly specializes a <code>Feature</code> whose last two <code>chainingFeatures</code> are the given <code>Features</code> <code>first</code> and <code>second</code>.</p> - - - - OCL2.0 - allSuperTypes()->selectAsKind(Feature)-> - exists(f | let n: Integer = f.chainingFeature->size() in - n >= 2 and - f.chainingFeature->at(n-1) = first and - f.chainingFeature->at(n) = second) - - - - - - - - - - - <p>A <code>Feature</code> is compatible with an <code>otherType</code> if it either directly or indirectly specializes the <code>otherType</code> or if the <code>otherType</code> is also a <code>Feature</code> and all of the following are true.</p> - <ol> - <li>Neither this <code>Feature</code> or the <code>otherType</code> have any <code>ownedFeatures</code>.</li> - <li>This <code>Feature</code> directly or indirectly redefines a <code>Feature</code> that is also directly or indirectly redefined by the <code>otherType</code>.</li> - <li>This <code>Feature</code> can access the <code>otherType</code>. - </li></ol> - - - - OCL2.0 - specializes(otherType) or - supertype.oclIsKindOf(Feature) and - ownedFeature->isEmpty() and - otherType.ownedFeature->isEmpty() and - ownedRedefinitions.allRedefinedFeatures()->exists(f | - otherType.oclAsType(Feature).allRedefinedFeatures()->includes(f)) and - canAccess(otherType.oclAsType(Feature)) - - - - - - - - - - <p>Return the <code>Features</code> used to determine the <code>types</code> of this <code>Feature</code> (other than this <code>Feature</code> itself). If this <code>Feature</code> is <em>not</em> conjugated, then the <code>typingFeatures</code> consist of all subsetted <code>Features</code>, <em>except</em> from <code>CrossSubsetting</code>, and the last <code>chainingFeature</code> (if any). If this <code>Feature</code> <em>is</em> conjugated, then the <code>typingFeatures</code> are only its <code>originalType</code> (if the <code>originalType</code> is a <code>Feature</code>).</p> + + + + + + + + <p>The <code>ownedSpecializations</code> of this <code>Feature</code> that are <code>Subsettings</code>, for which the <code>Feature</code> is the <code>subsettingFeature</code>.</p> + + + + + + + + <p>The <code>FeatureMembership</code> that owns this <code>Feature</code> as an <code>ownedMemberFeature</code>, determining its <code>owningType</code>.</p> + + + + + + + <p>Whether the <code>Feature</code> is a composite <code>feature</code> of its <code>featuringType</code>. If so, the values of the <code>Feature</code> cannot exist after its featuring instance no longer does and cannot be values of another composite feature that is not on the same featuring instance.</p> + + + + + + + + <p>Whether or not this <code>Feature</code> is an end <code>Feature</code>. An end <code>Feature</code> always has multiplicity 1, mapping each of its domain instances to a single co-domain instance. However, it may have a <code>crossFeature</code>, in which case values of the <code>crossFeature</code> must be the same as those found by navigation across instances of the <code>owningType</code> from values of other end <code>Features</code> to values of this Feature. If the <code>owningType</code> has <em>n</em> end <code>Features</code>, then the multiplicity, ordering, and uniqueness declared for the <code>crossFeature</code> of any one of these end <code>Features</code> constrains the cardinality, ordering, and uniqueness of the collection of values of that <code>Feature</code> reached by navigation when the values of the other <em>n-1</em> end <code>Features</code> are held fixed.</p> + + + + + + + + <p>The <code>Type</code> that is related to this <code>Feature</code> by an <code>EndFeatureMembership</code> in which the <code>Feature</code> is an <code>ownedMemberFeature</code>.</p> + + + + + + + <p>The <code>ownedSpecializations</code> of this <code>Feature</code> that are <code>FeatureTypings</code>, for which the <code>Feature</code> is the <code>typedFeature</code>.</p> + + + + + + + <p><code>Types</code> that feature this <code>Feature</code>, such that any instance in the domain of the <code>Feature</code> must be classified by all of these <code>Types</code>, including at least all the <code>featuringTypes</code> of its <code>typeFeaturings</code>. If the <code>Feature</code> is chained, then the <code>featuringTypes</code> of the first <code>Feature</code> in the chain are also <code>featuringTypes</code> of the chained <code>Feature</code>.</p> + + + + + + + <p>The <code>ownedRelationships</code> of this <code>Feature</code> that are <code>TypeFeaturings</code> and for which the <code>Feature</code> is the <code>featureOfType</code>.</p> + + + + + + + <p>Whether the values of this <code>Feature</code> can always be computed from the values of other <code>Features</code>.</p> + + + + + + + + <p>The <code>Feature</code> that are chained together to determine the values of this <code>Feature</code>, derived from the <code>chainingFeatures</code> of the <code>ownedFeatureChainings</code> of this <code>Feature</code>, in the same order. The values of a <code>Feature</code> with <code>chainingFeatures</code> are the same as values of the last <code>Feature</code> in the chain, which can be found by starting with the values of the first <code>Feature</code> (for each instance of the domain of the original <code>Feature</code>), then using each of those as domain instances to find the values of the second <code>Feature</code> in chainingFeatures, and so on, to values of the last <code>Feature</code>.</p> + + + + + + + <p>The <code>ownedRelationships</code> of this <code>Feature</code> that are <code>FeatureInvertings</code> and for which the <code>Feature</code> is the <code>featureInverted</code>.</p> + + + + + + + <p>The <code>ownedRelationships</code> of this <code>Feature</code> that are <code>FeatureChainings</code>, for which the <code>Feature</code> will be the <code>featureChained</code>.</p> + + + + + + + <p>Whether the values of this <code>Feature</code> are contained in the space and time of instances of the domain of the <code>Feature</code> and represent the same thing as those instances.</p> + + + + + + + + <p>Whether the value of this <code>Feature</code> might vary over time. That is, whether the <code>Feature</code> may have a different value for each <em><code>snapshot</code></em> of an <code>owningType</code> that is an <em><code>Occurrence</code></em>.</p> + + + + + + + <p>If <code>isVariable</code> is true, then whether the value of this <code>Feature</code> nevertheless does not change over all <code><em>snapshots</em></code> of its <code>owningType</code>.</p> + + + + + + + + <p>The one <code>ownedSubsetting</code> of this <code>Feature</code>, if any, that is a <code>ReferenceSubsetting</code>, for which the <code>Feature</code> is the <code>referencingFeature</code>.</p> + + + + + + + <p>The last of the <code>chainingFeatures</code> of this <code>Feature</code>, if it has any. Otherwise, this <code>Feature</code> itself.</p> + + + + + + + <p>The second <code>chainingFeature</code> of the <code>crossedFeature</code> of the <code>ownedCrossSubsetting</code> of this <code>Feature</code>, if it has one. Semantically, the values of the <code>crossFeature</code> of an end <code>Feature</code> must include all values of the end <code>Feature</code> obtained when navigating from values of the other end <code>Features</code> of the same <code>owningType</code>. +</p> + + + + + + + <p>Indicates how values of this <code>Feature</code> are determined or used (as specified for the <code>FeatureDirectionKind</code>).</p> + + + + + + + + <p>The one <code>ownedSubsetting</code> of this <code>Feature</code>, if any, that is a <code>CrossSubsetting}, for which the <code>Feature</code> is the <code>crossingFeature</code>.</p> + + + + + + + <p>Return the <code>directionOf</code> this <code>Feature</code> relative to the given <code>type</code>.</p> + + + + OCL2.0 + type.directionOf(self) + + + + + + + + + + + <p>If a <code>Feature</code> has no <code>declaredShortName</code> or <code>declaredName</code>, then its effective <code>shortName</code> is given by the effective <code>shortName</code> of the <code>Feature</code> returned by the <code>namingFeature()</code> operation, if any.</p> + + + + OCL2.0 + if declaredShortName <> null or declaredName <> null then + declaredShortName +else + let namingFeature : Feature = namingFeature() in + if namingFeature = null then + null + else + namingFeature.effectiveShortName() + endif +endif + + + + + + + + + + + <p>If a <code>Feature</code> has no <code>declaredName</code> or <code>declaredShortName</code> +, then its effective <code>name</code> is given by the effective <code>name</code> of the <code>Feature</code> returned by the <code>namingFeature()</code> operation, if any.</p> + + + + OCL2.0 + if declaredShortName <> null or declaredName <> null then + declaredName +else + let namingFeature : Feature = namingFeature() in + if namingFeature = null then + null + else + namingFeature.effectiveName() + endif +endif + + + + + + + + + + + <p>By default, the naming <code>Feature</code> of a <code>Feature</code> is given by its first <code>redefinedFeature</code> of its first <code>ownedRedefinition</code>, if any.</p> + + + + OCL2.0 + if ownedRedefinition->isEmpty() then + null +else + ownedRedefinition->at(1).redefinedFeature +endif + + + + + + + + + + + OCL2.0 + let supertypes : OrderedSet(Type) = + self.oclAsType(Type).supertypes(excludeImplied) in +if featureTarget = self then supertypes +else supertypes->append(featureTarget) +endif + + + + + + + + + + + + + <p>Check whether this <code>Feature</code> <em>directly</em> redefines the given <code>redefinedFeature</code>.</p> + + + + OCL2.0 + ownedRedefinition.redefinedFeature->includes(redefinedFeature) + + + + + + + + + + <p>Check whether this <code>Feature</code> <em>directly</em> redefines the named library <code>Feature</code>. <code>libraryFeatureName</code> must conform to the syntax of a KerML qualified name and must resolve to a <code>Feature</code> in global scope.</p> + + + + OCL2.0 + let mem: Membership = resolveGlobal(libraryFeatureName) in +mem <> null and mem.memberElement.oclIsKindOf(Feature) and +redefines(mem.memberElement.oclAsType(Feature)) + + + + + + + + + + + + <p>Check whether this <code>Feature</code> directly or indirectly specializes a <code>Feature</code> whose last two <code>chainingFeatures</code> are the given <code>Features</code> <code>first</code> and <code>second</code>.</p> + + + + OCL2.0 + allSuperTypes()->selectAsKind(Feature)-> + exists(f | let n: Integer = f.chainingFeature->size() in + n >= 2 and + f.chainingFeature->at(n-1) = first and + f.chainingFeature->at(n) = second) + + + + + + + + + + + <p>A <code>Feature</code> is compatible with an <code>otherType</code> if it either directly or indirectly specializes the <code>otherType</code> or if the <code>otherType</code> is also a <code>Feature</code> and all of the following are true.</p> +<ol> + <li>Neither this <code>Feature</code> or the <code>otherType</code> have any <code>ownedFeatures</code>.</li> + <li>This <code>Feature</code> directly or indirectly redefines a <code>Feature</code> that is also directly or indirectly redefined by the <code>otherType</code>.</li> + <li>This <code>Feature</code> can access the <code>otherType</code>. +</li></ol> + + + + OCL2.0 + specializes(otherType) or + supertype.oclIsKindOf(Feature) and + ownedFeature->isEmpty() and + otherType.ownedFeature->isEmpty() and + ownedRedefinitions.allRedefinedFeatures()->exists(f | + otherType.oclAsType(Feature).allRedefinedFeatures()->includes(f)) and + canAccess(otherType.oclAsType(Feature)) + + + + + + + + + + <p>Return the <code>Features</code> used to determine the <code>types</code> of this <code>Feature</code> (other than this <code>Feature</code> itself). If this <code>Feature</code> is <em>not</em> conjugated, then the <code>typingFeatures</code> consist of all subsetted <code>Features</code>, <em>except</em> from <code>CrossSubsetting</code>, and the last <code>chainingFeature</code> (if any). If this <code>Feature</code> <em>is</em> conjugated, then the <code>typingFeatures</code> are only its <code>originalType</code> (if the <code>originalType</code> is a <code>Feature</code>).</p> - <p><strong>Note.</strong> <code>CrossSubsetting</code> is excluded from the determination of the <code>type</code> of a <code>Feature</code> in order to avoid circularity in the construction of implied <code>CrossSubsetting</code> relationships. The <code>validateFeatureCrossFeatureType</code> requires that the <code>crossFeature</code> of a <code>Feature</code> have the same <code>type</code> as the <code>Feature</code>.</p> - - - - - OCL2.0 - if not isConjugated then - let subsettedFeatures : OrderedSet(Feature) = - subsetting->reject(s | s.oclIsKindOf(CrossSubsetting)).subsettedFeatures in - if chainingFeature->isEmpty() or - subsettedFeature->includes(chainingFeature->last()) - then subsettedFeatures - else subsettedFeatures->append(chainingFeature->last()) - endif - else if conjugator.originalType.oclIsKindOf(Feature) then - OrderedSet{conjugator.originalType.oclAsType(Feature)} - else OrderedSet{} - endif endif - - - - - - - - - - <p>If <code>isCartesianProduct</code> is true, then return the list of <code>Types</code> whose Cartesian product can be represented by this <code>Feature</code>. (If <code>isCartesianProduct</code> is not true, the operation will still return a valid value, it will just not represent anything useful.)</p> - - - - OCL2.0 - featuringType->select(t | t.owner <> self)-> - union(featuringType->select(t | t.owner = self)-> - selectByKind(Feature).asCartesianProduct())-> - union(type) - - - - - - - - - - <p>Check whether this <code>Feature</code> can be used to represent a Cartesian product of <code>Types</code>.</p> - - - - OCL2.0 - type->size() = 1 and - featuringType.size() = 1 and - (featuringType.first().owner = self implies - featuringType.first().oclIsKindOf(Feature) and - featuringType.first().oclAsType(Feature).isCartesianProduct()) - - - - - - - - - <p>Return whether this <code>Feature</code> is an owned cross <code>Feature</code> of an end <code>Feature</code>.</p> - - - - OCL2.0 - owningNamespace <> null and - owningNamespace.oclIsKindOf(Feature) and - owningNamespace.oclAsType(Feature).ownedCrossFeature() = self - - - - - - - - - <p>If this <code>Feature</code> is an end <code>Feature</code> of its <code>owningType</code>, then return the first <code>ownedMember</code> of the <code>Feature</code> that is a <code>Feature</code>, but not a <code>Multiplicity</code> or a <code>MetadataFeature</code>, and whose <code>owningMembership</code> is <em>not</em> a <code>FeatureMembership</code>. If this exists, it is the <code>crossFeature</code> of the end <code>Feature</code>.</p> - - - - OCL2.0 - if not isEnd or owningType = null then null - else - let ownedMemberFeatures: Sequence(Feature) = - ownedMember->selectByKind(Feature)-> - reject(oclIsKindOf(Multiplicity) or - oclIsKindOf(MetadataFeature) or - oclIsKindOf(FeatureValue))-> - reject(owningMembership.oclIsKindOf(FeatureMembership)) in - if ownedMemberFeatures.isEmpty() then null - else ownedMemberFeatures->first() - endif - - - - - - - - - - <p>Return this <code>Feature</code> and all the <code>Features</code> that are directly or indirectly <code>Redefined</code> by this <code>Feature</code>.</p> - - - - OCL2.0 - ownedRedefinition.redefinedFeature-> - closure(ownedRedefinition.redefinedFeature)-> - asOrderedSet()->prepend(self) - - - - - - - - - - - <p>Return if the <code>featuringTypes</code> of this <code>Feature</code> are compatible with the given <code>type</code>. If <code>type</code> is null, then check if this <code>Feature</code> is explicitly or implicitly featured by <em><code>Base::Anything</code></em>. If this <code>Feature</code> has <code>isVariable = true</code>, then also consider it to be featured within its <code>owningType</code>. If this <code>Feature</code> is a feature chain whose first <code>chainingFeature</code> has <code>isVariable = true</code>, then also consider it to be featured within the <code>owningType</code> of its first <code>chainingFeature</code>.</p> - - - - OCL2.0 - if type = null then - featuringType->forAll(f | f = resolveGlobal('Base::Anything').memberElement) - else - featuringType->forAll(f | type.isCompatibleWith(f)) or - isVariable and type.specializes(owningType) or - chainingFeature->notEmpty() and chainingFeature->first().isVariable and - type.specializes(chainingFeature->first().owningType) - endif - - - - - - - - - - - - - <p>A <code>Feature</code> can access another <code>feature</code> if the other <code>feature</code> is featured within one of the direct or indirect <code>featuringTypes</code> of this <code>Feature</code>.</p> - - - - OCL2.0 - let anythingType: Element = - subsettingFeature.resolveGlobal('Base::Anything').memberElement in - let allFeaturingTypes : Sequence(Type) = - featuringTypes->closure(t | - if not t.oclIsKindOf(Feature) then Sequence{} - else - let featuringTypes : OrderedSet(Type) = t.oclAsType(Feature).featuringType in - if featuringTypes->isEmpty() then Sequence{anythingType} - else featuringTypes - endif - endif) in - allFeaturingTypes->exists(t | feature.isFeaturedWithin(t)) - - - - - - - - - - <p>Return whether the given <code>type</code> must be a <code>featuringType</code> of this <code>Feature</code>. If this <code>Feature</code> has <code>isVariable = false</code>, then return true if the <code>type</code> is the <code>owningType</code> of the <code>Feature</code>. If <code>isVariable = true</code>, then return true if the <code>type</code> is a <code>Feature</code> representing the <em><code>snapshots</code></em> of the <code>owningType</code> of this <code>Feature</code>.</p> - - - - OCL2.0 - owningType <> null and - if not isVariable then type = owningType - else if owningType = resolveGlobal('Occurrences::Occurrence').memberElement then - type = resolveGlobal('Occurrences::Occurrence::snapshots').memberElement - else - type.oclIsKindOf(Feature) and - let feature : Feature = type.oclAsType(Feature) in - feature.featuringType->includes(owningType) and - feature.redefinesFromLibrary('Occurrences::Occurrence::snapshots') - endif - - - - - - - - - - - - <p><code>FeatureTyping</code> is <code>Specialization</code> in which the <code>specific</code> <code>Type</code> is a <code>Feature</code>. This means the set of instances of the (specific) <code>typedFeature</code> is a subset of the set of instances of the (general) <code>type</code>. In the simplest case, the <code>type</code> is a <code>Classifier</code>, whereupon the <code>typedFeature</code> has values that are instances of the <code>Classifier</code>.</p> - - - - - - <p>The <code>Feature</code> that has a <code>type</code> determined by this <code>FeatureTyping</code>.</p> - - - - - - - <p>The <code>Type</code> that is being applied by this <code>FeatureTyping</code>.</p> - - - - - - - - <p>A <code>typedFeature</code> that is also the <code>owningRelatedElement</code> of this <code>FeatureTyping</code>.</p> - - - - - - - - <p><code>Subsetting</code> is <code>Specialization</code> in which the <code>specific</code> and <code>general</code> <code>Types</code> are <code>Features</code>. This means all values of the <code>subsettingFeature</code> (on instances of its domain, i.e., the intersection of its <code>featuringTypes</code>) are values of the <code>subsettedFeature</code> on instances of its domain. To support this the domain of the <code>subsettingFeature</code> must be the same or specialize (at least indirectly) the domain of the <code>subsettedFeature</code> (via <code>Specialization</code>), and the co-domain (intersection of the <code>types</code>) of the <code>subsettingFeature</code> must specialize the co-domain of the <code>subsettedFeature</code>.</p> - - - - - <p>The <code>subsettedFeature</code> must be accessible by the <code>subsettingFeature</code>.</p> - - - OCL2.0 - subsettingFeature.canAccess(subsettedFeature) - - - - - <p>If the <code>subsettedFeature</code> of a <code>Subsetting</code> has <code>isUnique = true</code>, then the <code>subsettingFeature</code> must have <code>isUnique = true</code>.</p> - - - OCL2.0 - subsettedFeature.isUnique implies subsettingFeature.isUnique - - - - - <p>If the <code>subsettedFeature</code> of a <code>Subsetting</code> has <code>isConstant = true</code> and the <code>subsettingFeature</code> has <code>isVariable = true</code>, then the <code>subsettingFeature</code> must have <code>isConstant = true</code>.</p> - - - OCL2.0 - subsettedFeature.isConstant and subsettingFeature.isVariable implies - subsettingFeature.isConstant - - - - - - - <p>The <code>Feature</code> that is subsetted by the <code>subsettingFeature</code> of this <code>Subsetting</code>.</p> - - - - - - - - <p>The <code>Feature</code> that is a subset of the <code>subsettedFeature</code> of this <code>Subsetting</code>.</p> - - - - - - - - <p>A <code>subsettingFeature</code> that is also the <code>owningRelatedElement</code> of this <code>Subsetting</code>.</p> +<p><strong>Note.</strong> <code>CrossSubsetting</code> is excluded from the determination of the <code>type</code> of a <code>Feature</code> in order to avoid circularity in the construction of implied <code>CrossSubsetting</code> relationships. The <code>validateFeatureCrossFeatureType</code> requires that the <code>crossFeature</code> of a <code>Feature</code> have the same <code>type</code> as the <code>Feature</code>.</p> + + + + + OCL2.0 + if not isConjugated then + let subsettedFeatures : OrderedSet(Feature) = + subsetting->reject(s | s.oclIsKindOf(CrossSubsetting)).subsettedFeatures in + if chainingFeature->isEmpty() or + subsettedFeature->includes(chainingFeature->last()) + then subsettedFeatures + else subsettedFeatures->append(chainingFeature->last()) + endif +else if conjugator.originalType.oclIsKindOf(Feature) then + OrderedSet{conjugator.originalType.oclAsType(Feature)} +else OrderedSet{} +endif endif + + + + + + + + + + <p>If <code>isCartesianProduct</code> is true, then return the list of <code>Types</code> whose Cartesian product can be represented by this <code>Feature</code>. (If <code>isCartesianProduct</code> is not true, the operation will still return a valid value, it will just not represent anything useful.)</p> + + + + OCL2.0 + featuringType->select(t | t.owner <> self)-> + union(featuringType->select(t | t.owner = self)-> + selectByKind(Feature).asCartesianProduct())-> + union(type) + + + + + + + + + + <p>Check whether this <code>Feature</code> can be used to represent a Cartesian product of <code>Types</code>.</p> + + + + OCL2.0 + type->size() = 1 and +featuringType.size() = 1 and +(featuringType.first().owner = self implies + featuringType.first().oclIsKindOf(Feature) and + featuringType.first().oclAsType(Feature).isCartesianProduct()) + + + + + + + + + <p>Return whether this <code>Feature</code> is an owned cross <code>Feature</code> of an end <code>Feature</code>.</p> + + + + OCL2.0 + owningNamespace <> null and +owningNamespace.oclIsKindOf(Feature) and +owningNamespace.oclAsType(Feature).ownedCrossFeature() = self + + + + + + + + + <p>If this <code>Feature</code> is an end <code>Feature</code> of its <code>owningType</code>, then return the first <code>ownedMember</code> of the <code>Feature</code> that is a <code>Feature</code>, but not a <code>Multiplicity</code> or a <code>MetadataFeature</code>, and whose <code>owningMembership</code> is <em>not</em> a <code>FeatureMembership</code>. If this exists, it is the <code>crossFeature</code> of the end <code>Feature</code>.</p> + + + + OCL2.0 + if not isEnd or owningType = null then null +else + let ownedMemberFeatures: Sequence(Feature) = + ownedMember->selectByKind(Feature)-> + reject(oclIsKindOf(Multiplicity) or + oclIsKindOf(MetadataFeature) or + oclIsKindOf(FeatureValue))-> + reject(owningMembership.oclIsKindOf(FeatureMembership)) in + if ownedMemberFeatures.isEmpty() then null + else ownedMemberFeatures->first() + endif + + + + + + + + + + <p>Return this <code>Feature</code> and all the <code>Features</code> that are directly or indirectly <code>Redefined</code> by this <code>Feature</code>.</p> + + + + OCL2.0 + ownedRedefinition.redefinedFeature-> + closure(ownedRedefinition.redefinedFeature)-> + asOrderedSet()->prepend(self) + + + + + + + + + + + <p>Return if the <code>featuringTypes</code> of this <code>Feature</code> are compatible with the given <code>type</code>. If <code>type</code> is null, then check if this <code>Feature</code> is explicitly or implicitly featured by <em><code>Base::Anything</code></em>. If this <code>Feature</code> has <code>isVariable = true</code>, then also consider it to be featured within its <code>owningType</code>. If this <code>Feature</code> is a feature chain whose first <code>chainingFeature</code> has <code>isVariable = true</code>, then also consider it to be featured within the <code>owningType</code> of its first <code>chainingFeature</code>.</p> + + + + OCL2.0 + if type = null then + featuringType->forAll(f | f = resolveGlobal('Base::Anything').memberElement) +else + featuringType->forAll(f | type.isCompatibleWith(f)) or + isVariable and type.specializes(owningType) or + chainingFeature->notEmpty() and chainingFeature->first().isVariable and + type.specializes(chainingFeature->first().owningType) +endif + + + + + + + + + + + + + <p>A <code>Feature</code> can access another <code>feature</code> if the other <code>feature</code> is featured within one of the direct or indirect <code>featuringTypes</code> of this <code>Feature</code>.</p> + + + + OCL2.0 + let anythingType: Element = + subsettingFeature.resolveGlobal('Base::Anything').memberElement in +let allFeaturingTypes : Sequence(Type) = + featuringTypes->closure(t | + if not t.oclIsKindOf(Feature) then Sequence{} + else + let featuringTypes : OrderedSet(Type) = t.oclAsType(Feature).featuringType in + if featuringTypes->isEmpty() then Sequence{anythingType} + else featuringTypes + endif + endif) in +allFeaturingTypes->exists(t | feature.isFeaturedWithin(t)) + + + + + + + + + + <p>Return whether the given <code>type</code> must be a <code>featuringType</code> of this <code>Feature</code>. If this <code>Feature</code> has <code>isVariable = false</code>, then return true if the <code>type</code> is the <code>owningType</code> of the <code>Feature</code>. If <code>isVariable = true</code>, then return true if the <code>type</code> is a <code>Feature</code> representing the <em><code>snapshots</code></em> of the <code>owningType</code> of this <code>Feature</code>.</p> + + + + OCL2.0 + owningType <> null and +if not isVariable then type = owningType +else if owningType = resolveGlobal('Occurrences::Occurrence').memberElement then + type = resolveGlobal('Occurrences::Occurrence::snapshots').memberElement +else + type.oclIsKindOf(Feature) and + let feature : Feature = type.oclAsType(Feature) in + feature.featuringType->includes(owningType) and + feature.redefinesFromLibrary('Occurrences::Occurrence::snapshots') +endif + + + + + + + + + + + + <p><code>FeatureTyping</code> is <code>Specialization</code> in which the <code>specific</code> <code>Type</code> is a <code>Feature</code>. This means the set of instances of the (specific) <code>typedFeature</code> is a subset of the set of instances of the (general) <code>type</code>. In the simplest case, the <code>type</code> is a <code>Classifier</code>, whereupon the <code>typedFeature</code> has values that are instances of the <code>Classifier</code>.</p> + + + + + + <p>The <code>Feature</code> that has a <code>type</code> determined by this <code>FeatureTyping</code>.</p> + + + + + + + <p>The <code>Type</code> that is being applied by this <code>FeatureTyping</code>.</p> + + + + + + + + <p>A <code>typedFeature</code> that is also the <code>owningRelatedElement</code> of this <code>FeatureTyping</code>.</p> + + + + + + + + <p><code>Subsetting</code> is <code>Specialization</code> in which the <code>specific</code> and <code>general</code> <code>Types</code> are <code>Features</code>. This means all values of the <code>subsettingFeature</code> (on instances of its domain, i.e., the intersection of its <code>featuringTypes</code>) are values of the <code>subsettedFeature</code> on instances of its domain. To support this the domain of the <code>subsettingFeature</code> must be the same or specialize (at least indirectly) the domain of the <code>subsettedFeature</code> (via <code>Specialization</code>), and the co-domain (intersection of the <code>types</code>) of the <code>subsettingFeature</code> must specialize the co-domain of the <code>subsettedFeature</code>.</p> + + + + + <p>The <code>subsettedFeature</code> must be accessible by the <code>subsettingFeature</code>.</p> + + + OCL2.0 + subsettingFeature.canAccess(subsettedFeature) + + + + + <p>If the <code>subsettedFeature</code> of a <code>Subsetting</code> has <code>isUnique = true</code>, then the <code>subsettingFeature</code> must have <code>isUnique = true</code>.</p> + + + OCL2.0 + subsettedFeature.isUnique implies subsettingFeature.isUnique + + + + + <p>If the <code>subsettedFeature</code> of a <code>Subsetting</code> has <code>isConstant = true</code> and the <code>subsettingFeature</code> has <code>isVariable = true</code>, then the <code>subsettingFeature</code> must have <code>isConstant = true</code>.</p> + + + OCL2.0 + subsettedFeature.isConstant and subsettingFeature.isVariable implies + subsettingFeature.isConstant + + + + + + + <p>The <code>Feature</code> that is subsetted by the <code>subsettingFeature</code> of this <code>Subsetting</code>.</p> + + + + + + + + <p>The <code>Feature</code> that is a subset of the <code>subsettedFeature</code> of this <code>Subsetting</code>.</p> + + + + + + + + <p>A <code>subsettingFeature</code> that is also the <code>owningRelatedElement</code> of this <code>Subsetting</code>.</p> - - - - - - - - - - <p>The Redefinitions with a certain Feature as the <code>redefiningFeature</code>.</p> - - - - - - - - - - <p>The Subsettings with a certain Feature as the <code>subsettedFeature</code>.</p> - - - - - - - - - <p>A <code>Type</code> that has the <code>multiplicity</code> as an <code>ownedMember</code>.</p> - - - - - - - - - - <p>The <code>TypeFeaturings</code> for which a certain <code>Feature</code> is the <code>featureOfType</code>.</p> - - - - - - - - - <p>The Features for which a certain Type is a <code>featuringType</code>.</p> - - - - - - - - <p>A <code>TypeFeaturing</code> is a <code>Featuring</code> <code>Relationship</code> in which the <code>featureOfType</code> is the <code>source</code> and the <code>featuringType</code> is the <code>target</code>.</p> - - - - - <p>The <code>Feature</code> that is featured by the <code>featuringType</code>. It is the <code>source</code> of the <code>TypeFeaturing</code>.</p> - - - - - - - <p>The <code>Type</code> that features the <code>featureOfType</code>. It is the <code>target</code> of the <code>TypeFeaturing</code>.</p> - - - - - - - <p>A <code>featureOfType</code> that is also the <code>owningRelatedElement</code> of this <code>TypeFeaturing</code>.</p> - - - - - - - - - - <p>The <code>TypeFeaturings</code> for which a certain <code>Type</code> is the <code>featuringType</code>.</p> - - - - - - - - - <p><code>EndFeatureMembership</code> is a <code>FeatureMembership</code> that requires its <code>memberFeature</code> be owned and have <code>isEnd = true</code>.</p> - - - - - <p>The <code>ownedMemberFeature</code> of an <code>EndFeatureMembership</code> must be an end <code>Feature</code>.</p> - - - OCL2.0 - ownedMemberFeature.isEnd - - - - - - - - - - - <p>Relationship for chainedFeatures.</p> - - - - <p>The <code>FeatureChainings</code> that identify a <code>Feature</code> as their <code>chainingFeature</code>.</p> - - - - - - - - <p><code>FeatureChaining</code> is a <code>Relationship</code> that makes its target <code>Feature</code> one of the <code>chainingFeatures</code> of its owning <code>Feature</code>.</p> - - - - - <p>The <code>Feature</code> whose values partly determine values of <code>featureChained</code>, as described in <code>Feature::chainingFeature</code>.</p> - - - - - - - - <p>The <code>Feature</code> whose values are partly determined by values of the <code>chainingFeature</code>, as described in <code>Feature::chainingFeature</code>.</p> - - - - - - - - - - <p>The <code>Features</code> that have a particular <code>chainingFeature</code> in their <code>Feature</code> chain, whose values are partly determined by values of the <code>chainingFeature</code>, as described in <code>chainingFeature</code>.</p> - - - - - - - - - - - - - - <p>A <code>FeatureInverting</code> is a <code>Relationship</code> between <code>Features</code> asserting that their interpretations (sequences) are the reverse of each other, identified as <code>featureInverted</code> and <code>invertingFeature</code>. For example, a <code>Feature</code> identifying each person&#39;s parents is the inverse of a <code>Feature</code> identifying each person&#39;s children. A person identified as a parent of another will identify that other as one of their children.</p> - - - - - - <p>The <code>Feature</code> that is an inverse of the <code>invertingFeature</code>.</p> - - - - - - - <p>The <code>Feature</code> that is an inverse of the <code>invertedFeature</code>.</p> - - - - - - - <p>A <code>featureInverted</code> that is also the <code>owningRelatedElement</code> of this <code>FeatureInverting</code>.</p> - - - - - - - - - - <p>The FeatureInvertings that identify this Feature as their <code>featureInverted</code>.</p> - - - - - - - - - <p>The FeatureInvertings that identify this Feature as their <code>invertingFeature</code>.</p> - - - - - - - - - - <p><code>ReferenceSubsetting</code> is a kind of <code>Subsetting</code> in which the <code>referencedFeature</code> is syntactically distinguished from other <code>Features</code> subsetted by the <code>referencingFeature</code>. <code>ReferenceSubsetting</code> has the same semantics as <code>Subsetting</code>, but the <code>referencedFeature</code> may have a special purpose relative to the <code>referencingFeature</code>. For instance, <code>ReferenceSubsetting</code> is used to identify the <code>relatedFeatures</code> of a <code>Connector</code>.</p> + + + + + + + + + + <p>The Redefinitions with a certain Feature as the <code>redefiningFeature</code>.</p> + + + + + + + + + + <p>The Subsettings with a certain Feature as the <code>subsettedFeature</code>.</p> + + + + + + + + + <p>A <code>Type</code> that has the <code>multiplicity</code> as an <code>ownedMember</code>.</p> + + + + + + + + + + <p>The <code>TypeFeaturings</code> for which a certain <code>Feature</code> is the <code>featureOfType</code>.</p> + + + + + + + + + <p>The Features for which a certain Type is a <code>featuringType</code>.</p> + + + + + + + + <p>A <code>TypeFeaturing</code> is a <code>Featuring</code> <code>Relationship</code> in which the <code>featureOfType</code> is the <code>source</code> and the <code>featuringType</code> is the <code>target</code>.</p> + + + + + <p>The <code>Feature</code> that is featured by the <code>featuringType</code>. It is the <code>source</code> of the <code>TypeFeaturing</code>.</p> + + + + + + + <p>The <code>Type</code> that features the <code>featureOfType</code>. It is the <code>target</code> of the <code>TypeFeaturing</code>.</p> + + + + + + + <p>A <code>featureOfType</code> that is also the <code>owningRelatedElement</code> of this <code>TypeFeaturing</code>.</p> + + + + + + + + + + <p>The <code>TypeFeaturings</code> for which a certain <code>Type</code> is the <code>featuringType</code>.</p> + + + + + + + + + <p><code>EndFeatureMembership</code> is a <code>FeatureMembership</code> that requires its <code>memberFeature</code> be owned and have <code>isEnd = true</code>.</p> + + + + + <p>The <code>ownedMemberFeature</code> of an <code>EndFeatureMembership</code> must be an end <code>Feature</code>.</p> + + + OCL2.0 + ownedMemberFeature.isEnd + + + + + + + + + + + <p>Relationship for chainedFeatures.</p> + + + + <p>The <code>FeatureChainings</code> that identify a <code>Feature</code> as their <code>chainingFeature</code>.</p> + + + + + + + + <p><code>FeatureChaining</code> is a <code>Relationship</code> that makes its target <code>Feature</code> one of the <code>chainingFeatures</code> of its owning <code>Feature</code>.</p> + + + + + <p>The <code>Feature</code> whose values partly determine values of <code>featureChained</code>, as described in <code>Feature::chainingFeature</code>.</p> + + + + + + + + <p>The <code>Feature</code> whose values are partly determined by values of the <code>chainingFeature</code>, as described in <code>Feature::chainingFeature</code>.</p> + + + + + + + + + + <p>The <code>Features</code> that have a particular <code>chainingFeature</code> in their <code>Feature</code> chain, whose values are partly determined by values of the <code>chainingFeature</code>, as described in <code>chainingFeature</code>.</p> + + + + + + + + + + + + + + <p>A <code>FeatureInverting</code> is a <code>Relationship</code> between <code>Features</code> asserting that their interpretations (sequences) are the reverse of each other, identified as <code>featureInverted</code> and <code>invertingFeature</code>. For example, a <code>Feature</code> identifying each person&#39;s parents is the inverse of a <code>Feature</code> identifying each person&#39;s children. A person identified as a parent of another will identify that other as one of their children.</p> + + + + + + <p>The <code>Feature</code> that is an inverse of the <code>invertingFeature</code>.</p> + + + + + + + <p>The <code>Feature</code> that is an inverse of the <code>invertedFeature</code>.</p> + + + + + + + <p>A <code>featureInverted</code> that is also the <code>owningRelatedElement</code> of this <code>FeatureInverting</code>.</p> + + + + + + + + + + <p>The FeatureInvertings that identify this Feature as their <code>featureInverted</code>.</p> + + + + + + + + + <p>The FeatureInvertings that identify this Feature as their <code>invertingFeature</code>.</p> + + + + + + + + + + <p><code>ReferenceSubsetting</code> is a kind of <code>Subsetting</code> in which the <code>referencedFeature</code> is syntactically distinguished from other <code>Features</code> subsetted by the <code>referencingFeature</code>. <code>ReferenceSubsetting</code> has the same semantics as <code>Subsetting</code>, but the <code>referencedFeature</code> may have a special purpose relative to the <code>referencingFeature</code>. For instance, <code>ReferenceSubsetting</code> is used to identify the <code>relatedFeatures</code> of a <code>Connector</code>.</p> - <p><code>ReferenceSubsetting</code> is always an <code>ownedRelationship</code> of its <code>referencingFeature</code>. A <code>Feature</code> can have at most one <code>ownedReferenceSubsetting</code>.</p> - - - - - - <p>The <code>Feature</code> that is referenced by the <code>referencingFeature</code> of this <code>ReferenceSubsetting</code>.</p> - - - - - - - - <p>The <code>Feature</code> that owns this <code>ReferenceSubsetting</code> relationship, which is also its <code>subsettingFeature</code>.</p> - - - - - - - - - - <p>The <code>ReferenceSubsetting</code> with a certain <code>Feature</code> as the <code>referencedFeature</code>.</p> - - - - - - - - - <p>The <code>Features</code> that identify a <code>Feature</code> as their <code>featureTarget</code>.</p> - - - <p>The <code>Features</code> that are the same as or the <code>chainedFeature</code> for a <code>targetFeature</code>.</p> - - - - - - - - - - <p>The <code>CrossSubsetting</code> with a certain <code>Feature</code> as the <code>crossedFeature</code>.</p> - - - - - - - - - <p>The <code>Features</code> with a certain other <code>Feature</code> as the <code>crossFeature</code>.</p> - - - - - - - - <p><code>CrossSubsetting</code> is a kind of <code>Subsetting</code> for end <code>Features</code>, as identified by <code>crossingFeature</code>, to subset a chained <code>Feature</code>, identified by <code>crossedFeature.</code> It navigates to instances of the end <code>Feature</code>’s type from instances of other end <code>Feature</code> types on the same <code>owningType</code> (at least two end <code>Features</code> are required for any of them to have a <code>CrossSubsetting</code>).</p> +<p><code>ReferenceSubsetting</code> is always an <code>ownedRelationship</code> of its <code>referencingFeature</code>. A <code>Feature</code> can have at most one <code>ownedReferenceSubsetting</code>.</p> + + + + + + <p>The <code>Feature</code> that is referenced by the <code>referencingFeature</code> of this <code>ReferenceSubsetting</code>.</p> + + + + + + + + <p>The <code>Feature</code> that owns this <code>ReferenceSubsetting</code> relationship, which is also its <code>subsettingFeature</code>.</p> + + + + + + + + + + <p>The <code>ReferenceSubsetting</code> with a certain <code>Feature</code> as the <code>referencedFeature</code>.</p> + + + + + + + + + <p>The <code>Features</code> that identify a <code>Feature</code> as their <code>featureTarget</code>.</p> + + + <p>The <code>Features</code> that are the same as or the <code>chainedFeature</code> for a <code>targetFeature</code>.</p> + + + + + + + + + + <p>The <code>CrossSubsetting</code> with a certain <code>Feature</code> as the <code>crossedFeature</code>.</p> + + + + + + + + + <p>The <code>Features</code> with a certain other <code>Feature</code> as the <code>crossFeature</code>.</p> + + + + + + + + <p><code>CrossSubsetting</code> is a kind of <code>Subsetting</code> for end <code>Features</code>, as identified by <code>crossingFeature</code>, to subset a chained <code>Feature</code>, identified by <code>crossedFeature.</code> It navigates to instances of the end <code>Feature</code>’s type from instances of other end <code>Feature</code> types on the same <code>owningType</code> (at least two end <code>Features</code> are required for any of them to have a <code>CrossSubsetting</code>).</p> - <p>The <code>crossedFeature</code> of a <code>CrossSubsetting</code> must have a feature chain of exactly two <code>Features</code>. The second <code>Feature</code> in the chain is the <code>crossFeature</code> of the <code>crossingFeature</code> (end <code>Feature</code>), which has the same type as the <code>crossingFeature</code>. When the <code>owningType</code> of the <code>crossingFeature</code> has exactly two end <code>Features</code>, the first <code>Feature</code> in the chain of the <code>crossedFeature</code> is the other end <code>Feature</code>. The <code>crossFeature</code>’s <code>featuringType</code> in this case is the other end <code>Feature</code>. When the <code>owningType</code> has more than two end <code>Features</code>, the first <code>Feature</code> in the chain is a <code>Feature</code> that <code>CrossMultiplies</code> all the other end <code>Features</code>, which is also the <code>featuringType</code> of the <code>crossFeature</code>.</p> +<p>The <code>crossedFeature</code> of a <code>CrossSubsetting</code> must have a feature chain of exactly two <code>Features</code>. The second <code>Feature</code> in the chain is the <code>crossFeature</code> of the <code>crossingFeature</code> (end <code>Feature</code>), which has the same type as the <code>crossingFeature</code>. When the <code>owningType</code> of the <code>crossingFeature</code> has exactly two end <code>Features</code>, the first <code>Feature</code> in the chain of the <code>crossedFeature</code> is the other end <code>Feature</code>. The <code>crossFeature</code>’s <code>featuringType</code> in this case is the other end <code>Feature</code>. When the <code>owningType</code> has more than two end <code>Features</code>, the first <code>Feature</code> in the chain is a <code>Feature</code> that <code>CrossMultiplies</code> all the other end <code>Features</code>, which is also the <code>featuringType</code> of the <code>crossFeature</code>.</p> - <p>A <code>crossFeature</code> must be owned by its <code>featureCrossing</code> (end <code>Feature</code>) when the <code>featureCrossing</code> <code>owningType</code> has more than two end <code>Features</code>. Otherwise, for exactly two end <code>Features</code>, the <code>crossFeatures</code> of each the ends can instead optionally be inherited by the other end from one of its <code>types</code> or a subsetted <code>Feature</code>.</p> - - - - <p>The <code>crossedFeature</code> of a <code>CrossSubsetting</code> must have exactly two <code>chainingFeatures</code>. If the <code>crossingFeature</code> of the <code>CrossSubsetting</code> is one of two end <code>Features</code>, then the first <code>chainingFeature</code> must be the other end <code>Feature</code>.</p> - - - OCL2.0 - crossingFeature.isEnd and crossingFeature.owningType <> null implies - let endFeatures: Sequence(Feature) = crossingFeature.owningType.endFeature in - let chainingFeatures: Sequence(Feature) = crossedFeature.chainingFeature in - chainingFeatures->size() = 2 and - endFeatures->size() = 2 implies - chainingFeatures->at(1) = endFeatures->excluding(crossingFeature)->at(1) - - - - - <p>The <code>crossingFeature</code> of a <code>CrossSubsetting</code> must be an end <code>Feature</code> that is owned by a <code>Type</code> with at least two end <code>Features</code>.</p> - - - OCL2.0 - crossingFeature.isEnd and - crossingFeature.owningType<>null and - crossingFeature.owningType.endFeature ->size() > 1 - - - - - - <p>The chained <code>Feature</code> that is cross subset by the <code>crossingFeature</code> of this <code>CrossSubsetting</code>.</p> - - - - - - - - <p>The end <code>Feature</code> that owns this <code>CrossSubsetting</code> relationship and is also its </code>subsettingFeature</code>.</p> - - - - - - +<p>A <code>crossFeature</code> must be owned by its <code>featureCrossing</code> (end <code>Feature</code>) when the <code>featureCrossing</code> <code>owningType</code> has more than two end <code>Features</code>. Otherwise, for exactly two end <code>Features</code>, the <code>crossFeatures</code> of each the ends can instead optionally be inherited by the other end from one of its <code>types</code> or a subsetted <code>Feature</code>.</p> + + + + <p>The <code>crossedFeature</code> of a <code>CrossSubsetting</code> must have exactly two <code>chainingFeatures</code>. If the <code>crossingFeature</code> of the <code>CrossSubsetting</code> is one of two end <code>Features</code>, then the first <code>chainingFeature</code> must be the other end <code>Feature</code>.</p> + + + OCL2.0 + crossingFeature.isEnd and crossingFeature.owningType <> null implies + let endFeatures: Sequence(Feature) = crossingFeature.owningType.endFeature in + let chainingFeatures: Sequence(Feature) = crossedFeature.chainingFeature in + chainingFeatures->size() = 2 and + endFeatures->size() = 2 implies + chainingFeatures->at(1) = endFeatures->excluding(crossingFeature)->at(1) + + + + + <p>The <code>crossingFeature</code> of a <code>CrossSubsetting</code> must be an end <code>Feature</code> that is owned by a <code>Type</code> with at least two end <code>Features</code>.</p> + + + OCL2.0 + crossingFeature.isEnd and +crossingFeature.owningType<>null and +crossingFeature.owningType.endFeature ->size() > 1 + + + + + + <p>The chained <code>Feature</code> that is cross subset by the <code>crossingFeature</code> of this <code>CrossSubsetting</code>.</p> + + + + + + + + <p>The end <code>Feature</code> that owns this <code>CrossSubsetting</code> relationship and is also its </code>subsettingFeature</code>.</p> + + + + + - - - The Kernel layer completes the KerML metamodel. + + + + The Kernel layer completes the KerML metamodel. + + + + + + + <p>The ItemFlow that has a certain <code>targetInputFeature</code>.</p> + + + + + + + + <p>An <code>Flow</code> is a <code>Step</code> that represents the transfer of values from one <code>Feature</code> to another. <code>Flows</code> can take non-zero time to complete.</p> + - - - - - - - - - - - - <p>The ItemFlow that has a certain <code>sourceOutputFeature</code>.</p> - - - - - - - - - - - - - - - - - - - - - - - - - - - - <p>A <code>PayloadFeature</code> is the <code>ownedFeature</code> of a <code>Flow</code> that identifies the things carried by the kinds of transfers that are instances of the <code>Flow</code>.</p> - - - - <p>A <code>PayloadFeature</code> must redefine the <code>Feature</code> <code><em>Transfers::Transfer::payload</em></code> from the Kernel Semantic Library.</p> - - - OCL2.0 - redefinesFromLibrary('Transfers::Transfer::payload') - - - - - - - <p>The ItemFlow that has a certain <code>itemType</code>.</p> - - - - - - - - - <p>An <code>Interaction</code> is a <code>Behavior</code> that is also an <code>Association</code>, providing a context for multiple objects that have behaviors that impact one another.</p> - - - - - - - - <p>A <code>SuccessionFlow</code> is a <code>Flow</code> that also provides temporal ordering. It classifies <code><em>Transfers</em></code> that cannot start until the source <code><em>Occurrence</em></code> has completed and that must complete before the target <code><em>Occurrence</em></code> can start.</p> - - - - <p>A <code>SuccessionFlow</code> must directly or indirectly specialize the <code>Step</code> <code><em>Transfers::flowTransfersBefore</em></code> from the Kernel Semantic Library.</p> - - - OCL2.0 - specializesFromLibrary('Transfers::flowTransfersBefore') - - - - - - - - - <p>The ItemFlow that has a certain <code>targetInputFeature</code>.</p> - - - - - - - - <p>An <code>Flow</code> is a <code>Step</code> that represents the transfer of values from one <code>Feature</code> to another. <code>Flows</code> can take non-zero time to complete.</p> - - - - - <p>A <code>Flow</code> must directly or indirectly specialize the <code>Step</code> <code><em>Transfers::transfers</em></code> from the Kernel Semantic Library.</p> - - - OCL2.0 - specializesFromLibrary('Transfers::transfers') - - - - - <p>The <code>payloadTypes</code> of a <code>Flow</code> are the <code>types</code> of the <code>payloadFeature</code> of the <code>Flow</code> (if any).</p> - - - OCL2.0 - payloadType = - if payloadFeature = null then Sequence{} - else payloadFeature.type - endif - - - - - <p>The <code>sourceOutputFeature</code> of a <code>Flow</code> is the first <code>ownedFeature</code> of the first <code>connectorEnd</code> of the <code>Flow</code>.</p> - - - OCL2.0 - sourceOutputFeature = - if connectorEnd->isEmpty() or - connectorEnd.ownedFeature->isEmpty() - then null - else connectorEnd.ownedFeature->first() - endif - - - - - <p>The <code>targetInputFeature</code> of a <code>Flow</code> is the first <code>ownedFeature</code> of the second <code>connectorEnd</code> of the <code>Flow</code>.</p> - - - OCL2.0 - targetInputFeature = - if connectorEnd->size() < 2 or - connectorEnd->at(2).ownedFeature->isEmpty() - then null - else connectorEnd->at(2).ownedFeature->first() - endif - - - - - <p>The <code>flowEnds</code> of a <code>Flow</code> are all its <code>connectorEnds</code> that are <code>FlowEnds</code>.</p> - - - OCL2.0 - flowEnd = connectorEnd->selectByKind(FlowEnd) - - - - - <p>The <code>payloadFeature</code> of a <code>Flow</code> is the single one of its <code>ownedFeatures</code> that is a <code>PayloadFeature</code>.</p> - - - OCL2.0 - payloadFeature = - let payloadFeatures : Sequence(PayloadFeature) = - ownedFeature->selectByKind(PayloadFeature) in - if payloadFeatures->isEmpty() then null - else payloadFeatures->first() - endif - - - - - <p>A <code>Flow</code> must have at most one <code>ownedFeature</code> that is an <code>PayloadFeature</code>.</p> - - - OCL2.0 - ownedFeature->selectByKind(PayloadFeature)->size() <= 1 - - - - - <p>A <code>Flow</code> with <code>ownedEndFeatures</code> must specialize the <code>Step</code> <code><em>Transfers::flowTransfers</em></code> from the Kernel Semantic Library.</p> - - - OCL2.0 - ownedEndFeatures->notEmpty() implies - specializesFromLibrary('Transfers::flowTransfers') - - - - - - - <p>The type of values transferred, which is the <code>type</code> of the <code>payloadFeature</code> of the <code>Flow</code>.</p> + + + <p>A <code>Flow</code> must directly or indirectly specialize the <code>Step</code> <code><em>Transfers::transfers</em></code> from the Kernel Semantic Library.</p> + + + OCL2.0 + specializesFromLibrary('Transfers::transfers') + + + + + <p>The <code>payloadTypes</code> of a <code>Flow</code> are the <code>types</code> of the <code>payloadFeature</code> of the <code>Flow</code> (if any).</p> + + + OCL2.0 + payloadType = + if payloadFeature = null then Sequence{} + else payloadFeature.type + endif + + + + + <p>The <code>sourceOutputFeature</code> of a <code>Flow</code> is the first <code>ownedFeature</code> of the first <code>connectorEnd</code> of the <code>Flow</code>.</p> + + + OCL2.0 + sourceOutputFeature = + if connectorEnd->isEmpty() or + connectorEnd.ownedFeature->isEmpty() + then null + else connectorEnd.ownedFeature->first() + endif + + + + + <p>The <code>targetInputFeature</code> of a <code>Flow</code> is the first <code>ownedFeature</code> of the second <code>connectorEnd</code> of the <code>Flow</code>.</p> + + + OCL2.0 + targetInputFeature = + if connectorEnd->size() < 2 or + connectorEnd->at(2).ownedFeature->isEmpty() + then null + else connectorEnd->at(2).ownedFeature->first() + endif + + + + + <p>The <code>flowEnds</code> of a <code>Flow</code> are all its <code>connectorEnds</code> that are <code>FlowEnds</code>.</p> + + + OCL2.0 + flowEnd = connectorEnd->selectByKind(FlowEnd) + + + + + <p>The <code>payloadFeature</code> of a <code>Flow</code> is the single one of its <code>ownedFeatures</code> that is a <code>PayloadFeature</code>.</p> + + + OCL2.0 + payloadFeature = + let payloadFeatures : Sequence(PayloadFeature) = + ownedFeature->selectByKind(PayloadFeature) in + if payloadFeatures->isEmpty() then null + else payloadFeatures->first() + endif + + + + + <p>A <code>Flow</code> must have at most one <code>ownedFeature</code> that is an <code>PayloadFeature</code>.</p> + + + OCL2.0 + ownedFeature->selectByKind(PayloadFeature)->size() <= 1 + + + + + <p>A <code>Flow</code> with <code>ownedEndFeatures</code> must specialize the <code>Step</code> <code><em>Transfers::flowTransfers</em></code> from the Kernel Semantic Library.</p> + + + OCL2.0 + ownedEndFeatures->notEmpty() implies + specializesFromLibrary('Transfers::flowTransfers') + + + + + + + <p>The type of values transferred, which is the <code>type</code> of the <code>payloadFeature</code> of the <code>Flow</code>.</p> - - - - - - - - <p>The <code>Feature</code> that receives the values carried by the <code>Flow</code>. It must be a <code>feature</code> of the <code>target</code> of the <code>Flow</code>.</p> - - - - - - - <p>The <code>Feature</code> that provides the items carried by the <code>Flow</code>. It must be a <code>feature</code> of the <code>source</code> of the <code>Flow</code>.</p> - - - - - - - - <p>The <code>connectorEnds</code> of this <code>Flow</code> that are <code>FlowEnds</code>.</p> - - - - - - - - <p>The <code>ownedFeature</code> of the <code>Flow</code> that is a <code>PayloadFeature</code> (if any).</p> - - - - - - - - <p>The <code>Interactions</code> that type this <code>Flow</code>. <code>Interactions</code> are both <code>Associations</code> and <code>Behaviors</code>, which can type <code>Connectors</code> and <code>Steps</code>, respectively.</p> - - - - - - - - <p>A <code>FlowEnd</code> is a <code>Feature</code> that is one of the <code>connectorEnds</code> giving the <code><em>source</em></code> or <code><em>target</em></code> of a <code>Flow</code>. For <code>Flows</code> typed by <code><em>FlowTransfer</em></code> or its specializations, <code>FlowEnds</code> must have exactly one <code>ownedFeature</code>, which redefines <code><em>Transfer::source::sourceOutput</em></code> or <code><em>Transfer::target::targetInput</em></code> and redefines the corresponding feature of the <code>relatedElement</code> for its end.</p> - - - - <p>A <code>FlowEnd</code> must be an end <code>Feature</code>.</p> - - - OCL2.0 - isEnd - - - - - <p>A <code>FlowEnd</code> must have exactly one <code>ownedFeature</code>.</p> - - - OCL2.0 - ownedFeature->size() = 1 - - - - - <p>The <code>owningType</code> of a <code>FlowEnd</code> must be a <code>Flow</code>.</p> - - - OCL2.0 - owningType <> null and owningType.oclIsKindOf(Flow) - - - - - - - - - <p>A <code>LibraryPackage</code> is a <code>Package</code> that is the container for a model library. A <code>LibraryPackage</code> is itself a library <code>Element</code> as are all <code>Elements</code> that are directly or indirectly contained in it.</p> - - - - - - <p>Whether this <code>LibraryPackage</code> contains a standard library model. This should only be set to true for <code>LibraryPackages</code> in the standard Kernel Model Libraries or in normative model libraries for a language built on KerML.</p> - - - - - - - <p>The <code>libraryNamespace</code> for a <code>LibraryPackage</code> is itself.</p> - - - - OCL2.0 - self - - - - - - - - - - - <p><code>ElementFilterMembership</code> is a <code>Membership</code> between a <code>Namespace</code> and a model-level evaluable <code><em>Boolean</em></code>-valued <code>Expression</code>, asserting that imported <code>members</code> of the <code>Namespace</code> should be filtered using the <code>condition</code> <code>Expression</code>. A general <code>Namespace</code> does not define any specific filtering behavior, but such behavior may be defined for various specialized kinds of <code>Namespaces</code>.</p> - - - - - <p>The <code>condition</code> <code>Expression</code> must be model-level evaluable.</p> - - - OCL2.0 - condition.isModelLevelEvaluable - - - - - <p>The <code>result</code> <code>parameter</code> of the <code>condition</code> <code>Expression</code> must directly or indirectly specialize <code><em>ScalarValues::Boolean</em></code>.</p> - - - OCL2.0 - condition.result.specializesFromLibrary('ScalarValues::Boolean') - - - - - - <p>The model-level evaluable <code>Boolean</code>-valued <code>Expression</code> used to filter the imported <code>members</code> of the <code>membershipOwningNamespace</code> of this <code>ElementFilterMembership</code>.</p> - - - - - - - - - - <p>The Package that has a certain Expression as a <code>filterCondition</code>.</p> - - - - - - - - <p>A <code>Package</code> is a <code>Namespace</code> used to group <code>Elements</code>, without any instance-level semantics. It may have one or more model-level evaluable <code>filterCondition</code> <code>Expressions</code> used to filter its <code>importedMemberships</code>. Any imported <code>member</code> must meet all of the <code>filterConditions</code>.</p> - - - - <p>The <code>filterConditions</code> of a <code>Package</code> are the <code>conditions</code> of its owned <code>ElementFilterMemberships</code>.</p> - - - OCL2.0 - filterCondition = ownedMembership-> - selectByKind(ElementFilterMembership).condition - - - - - - <p>The model-level evaluable <code><em>Boolean</em></code>-valued <code>Expression</code> used to filter the <code>members</code> of this <code>Package</code>, which are owned by the <code>Package</code> are via <code>ElementFilterMemberships</code>.</p> - - - - - - - - <p>Exclude <code>Elements</code> that do not meet all the <code>filterConditions</code>.</p> - - - - - OCL2.0 - self.oclAsType(Namespace).importedMemberships(excluded)-> - select(m | self.includeAsMember(m.memberElement)) - - - - - - - - - - - - - - <p>Determine whether the given <code>element</code> meets all the <code>filterConditions</code>.</p> - - - - OCL2.0 - let metadataFeatures: Sequence(AnnotatingElement) = - element.ownedAnnotation.annotatingElement-> - selectByKind(MetadataFeature) in - self.filterCondition->forAll(cond | - metadataFeatures->exists(elem | - cond.checkCondition(elem))) - - - - - - - - - - - - <p>The ElementFilterMembership that owns the <code>condition</code>.</p> - - - - - - - - - - <p>A <code>Class</code> is a <code>Classifier</code> of things (in the universe) that can be distinguished without regard to how they are related to other things (via <code>Features</code>). This means multiple things classified by the same <code>Class</code> can be distinguished, even when they are related other things in exactly the same way.</p> - - - - - <p>A <code>Class</code> must directly or indirectly specialize the base <code>Class</code> <code><em>Occurrences::Occurrence</em></code> from the Kernel Semantic Library.</p> - - - OCL2.0 - specializesFromLibrary('Occurrences::Occurrence') - - - - - <p>A <code>Class</code> must not specialize a <code>DataType</code> and it can only specialize an <code>Association</code> if it is also itself a kind of <code>Association</code> (such as an <code>AssociationStructure</code> or <code>Interaction</code>).</p> - - - OCL2.0 - ownedSpecialization.general-> - forAll(not oclIsKindOf(DataType)) and - not oclIsKindOf(Association) implies - ownedSpecialization.general-> - forAll(not oclIsKindOf(Association)) - - - - - - - - - <p><code>LiteralBoolean</code> is a <code>LiteralExpression</code> that provides a <code><em>Boolean</em></code> value as a result. Its <code>result</code> <code>parameter</code> must have type <code><em>Boolean</em></code>.</p> - - - - - <p>A <code>LiteralBoolean</code> must directly or indirectly specialize <em><code>Performances::literalBooleanEvaluations</code></em> from the Kernel Semantic Library.</p> - - - OCL2.0 - specializesFromLibrary('Performances::literalBooleanEvaluations') - - - - - - <p>The <code><em>Boolean</em></code> value that is the result of evaluating this <code>LiteralBoolean</code>.</p> - - - <p>The Boolean value that is the result of evaluating this Expression.</p> - - - - - - - - <p>A <code>LiteralExpression</code> is an <code>Expression</code> that provides a basic <code><em>DataValue</em></code> as a result.</p> - - - - - <p>A <code>LiteralExpression</code> is always model-level evaluable.</p> - - - OCL2.0 - isModelLevelEvaluable = true - - - - - <p>A <code>LiteralExpression</code> must directly or indirectly specialize the base <code>LiteralExpression</code> <code><em>Performances::literalEvaluations</em></code> from the Kernel Semantic Library.</p> - - - OCL2.0 - specializesFromLibrary('Performances::literalEvaluations') - - - - - - <p>A <code>LiteralExpression</code> is always model-level evaluable.</p> - - - - OCL2.0 - true - - - - - - - - - - - - - <p>The model-level value of a <code>LiteralExpression</code> is itself.</p> - - - - OCL2.0 - Sequence{self} - - - - - - - - - - - - <p>A <code>LiteralRational</code> is a <code>LiteralExpression</code> that provides a <code><em>Rational</em></code> value as a result. Its <code>result</code> <code>parameter</code> must have the type <code><em>Rational</em></code>.</p> - - - - - <p>A <code>LiteralRational</code> must directly or indirectly specialize <em><code>Performances::literalRationalEvaluations</code></em> from the Kernel Semantic Library.</p> - - - OCL2.0 - specializesFromLibrary('Performances::literalRationalEvaluations') - - - - - - <p>The value whose rational approximation is the result of evaluating this <code>LiteralRational</code>.</p> - - - - <p>The Real value that is the result of evaluating this Expression.</p> - - - - - - - <p>A <code>LiteralInfinity</code> is a <code>LiteralExpression</code> that provides the positive infinity value (<code>*</code>). It's <code>result</code> must have the type <code><em>Positive</em></code>.</p> - - - - - <p>A <code>LiteralInfinity</code> must directly or indirectly specialize <em><code>Performances::literalIntegerEvaluations</code></em> from the Kernel Semantic Library.</p> - - - OCL2.0 - specializesFromLibrary('Performances::literalIntegerEvaluations') - - - - - - - <p>A <code>LiteralInteger</code> is a <code>LiteralExpression</code> that provides an <code><em>Integer</em></code> value as a result. Its <code>result</code> <code>parameter</code> must have the type <code><em>Integer</em></code>.</p> - - - - - <p>A <code>LiteralInteger</code> must directly or indirectly specialize <em><code>Performances::literalIntegerEvaluations</code></em> from the Kernel Semantic Library.</p> - - - OCL2.0 - specializesFromLibrary('Performances::literalIntegerEvaluations') - - - - - - <p>The <code><em>Integer</em></code> value that is the result of evaluating this <code>LiteralInteger</code>.</p> - - - <p>The Integer value that is the result of evaluating this Expression.</p> - - - - - - - - <p>A <code>NullExpression</code> is an <code>Expression</code> that results in a null value.</p> - - - - - <p>A <code>NullExpression</code> must directly or indirectly specialize the base <code>NullExpression</code> <code><em>Performances::nullEvaluations</em></code> from the Kernel Semantic Library.</p> - - - OCL2.0 - specializesFromLibrary('Performances::nullEvaluations') - - - - - - <p>A <code>NullExpression</code> is always model-level evaluable.</p> - - - - OCL2.0 - true - - - - - - - - - - - - - <p>The model-level value of a <code>NullExpression</code> is an empty sequence.</p> - - - - OCL2.0 - Sequence{} - - - - - - - - - - - - <p>A <code>LiteralString</code> is a <code>LiteralExpression</code> that provides a <code><em>String</em></code> value as a result. Its <code>result</code> <code>parameter</code> must have the type <code><em>String</em></code>.</p> - - - - - <p>A <code>LiteralString</code> must directly or indirectly specialize <em><code>Performances::literalStringEvaluations</code></em> from the Kernel Semantic Library.</p> - - - OCL2.0 - specializesFromLibrary('Performances::literalStringEvaluations') - - - - - - <p>The String value that is the result of evaluating this Expression.</p> - - - <p>The <code><em>String</em></code> value that is the result of evaluating this <code>LiteralString</code>.</p> - - - - - - - - <p>An <code>InvocationExpression</code> is an <code>InstantiationExpression</code> whose <code>instantiatedType</code> must be a <code>Behavior</code> or a <code>Feature</code> typed by a single <code>Behavior</code> (such as a <code>Step</code>). Each of the input <code>parameters</code> of the <code>instantiatedType</code> are bound to the <code>result</code> of an <code>argument</code> <code>Expression</code>. If the <code>instantiatedType</code> is a <code>Function</code> or a <code>Feature</code> typed by a <code>Function</code>, then the <code>result</code> of the <code>InvocationExpression</code> is the <code>result</code> of the invoked <code>Function</code>. Otherwise, the <code>result</code> is an instance of the <code>instantiatedType</code> (essentially like a behavioral <code>ConstructorExpression</code>).</p> - - - - - <p>If the <code>instantiatedType</code> of an <code>InvocationExpression</code> is neither a <code>Function</code> nor a <code>Feature</code> whose type is a <code>Function</code>, then the <code>InvocationExpression</code> must own a <code>BindingConnector</code> between itself and its <code>result</code> parameter.</p> - - - OCL2.0 - not instantiatedType.oclIsKindOf(Function) and - not (instantiatedType.oclIsKindOf(Feature) and - instantiatedType.oclAsType(Feature).type->exists(oclIsKindOf(Function))) implies - ownedFeature.selectByKind(BindingConnector)->exists( - relatedFeature->includes(self) and - relatedFeature->includes(result)) - - - - - <p>An <code>InvocationExpression</code> must own a <code>BindingConnector</code> between the <code>featureWithValue</code> and <code>value</code> <code>Expression</code> of any <code>FeatureValue</code> that is the effective default value for a <code>feature</code> of the <code>instantiatedType</code> of the <code>InvocationExpression</code>.</p> - - - OCL2.0 - TBD - - - - - <p>The <code>arguments</code> of an <code>InvocationExpression</code> are the <code>value</code> <code>Expressions</code> of the <code>FeatureValues</code> of its <code>ownedFeatures</code>, in an order corresponding to the order of the <code>input</code> parameters of the <code>instantiatedType</code> that the <code>ownedFeatures</code> redefine.</p> - - - OCL2.0 - instantiatedType.input->collect(inp | - ownedFeatures->select(redefines(inp)).valuation-> - select(v | v <> null).value - ) - - - - - <p>Each <code>input</code> parameter of an <code>InvocationExpression</code> must redefine exactly one <code>input</code> parameter of the <code>instantiatedType</code> of the <code>InvocationExpression</code>.</p> - - - OCL2.0 - let parameters : OrderedSet(Feature) = instantiatedType.input in - input->forAll(inp | - inp.ownedRedefinition.redefinedFeature-> - intersection(parameters)->size() = 1) - - - - - <p>Two different <code>ownedFeatures</code> of an <code>InvocationExpression</code> must not redefine the same <code>feature</code> of the <code>instantiatedType</code> of the <code>InvocationExpression</code>.</p> - - - OCL2.0 - let features : OrderedSet(Feature) = instantiatedType.feature in - input->forAll(inp1 | input->forAll(inp2 | - inp1 <> inp2 implies - inp1.ownedRedefinition.redefinedFeature-> - intersection(inp2.ownedRedefinition.redefinedFeature)-> - intersection(features)->isEmpty())) - - - - - <p>If the <code>instantiatedType</code> of an <code>InvocationExpression</code> is neither a <code>Function</code> nor a <code>Feature</code> whose type is a <code>Function</code>, then the <code>result</code> of the <code>InvocationExpression</code> must specialize the <code>instantiatedType</code>.</p> - - - OCL2.0 - not instantiatedType.oclIsKindOf(Function) and - not (instantiatedType.oclIsKindOf(Feature) and - instantiatedType.oclAsType(Feature).type->exists(oclIsKindOf(Function))) implies - result.specializes(instantiatedType) - - - - - <p>An <code>InvocationExpression</code> must specialize its <code>instantiatedType</code>.</p> - - - OCL2.0 - specializes(instantiatedType) - - - - - <p>The <code>instantiatedType</code> of an <code>InvocationExpression</code> must be either a <code>Behavior</code> or a <code>Feature</code> with a single <code>type</code>, which is a <code>Behavior</code>.</p> - - - OCL2.0 - instantiatedType.oclIsKindOf(Behavior) or - instantiatedType.oclIsKindOf(Feature) and - instantiatedType.type->exists(oclIsKindOf(Behavior)) and - instantiatedType.type->size(1) - - - - - <p>Other than its <code>result</code>, all the <code>ownedFeatures</code> of an <code>InvocationExpression</code> must have <code>direction = in</code>.</p> - - - OCL2.0 - ownedFeature->forAll(f | - f <> result implies - f.direction = FeatureDirectionKind::_'in') - - - - - - <p>An <code>InvocationExpression</code> is model-level evaluable if all its <code>argument</code> <code>Expressions</code> are model-level evaluable and its <code>function</code> is model-level evaluable.</p> - - - - - OCL2.0 - argument->forAll(modelLevelEvaluable(visited)) and - function.isModelLevelEvaluable - - - - - - - - - - - - - <p>Apply the <code>Function</code> that is the <code>type</code> of this <code>InvocationExpression</code> to the argument values resulting from evaluating each of the <code>argument</code> <code>Expressions</code> on the given <code>target</code>. If the application is not possible, then return an empty sequence.</p> - - - - - - - - - - - - <p>A <code>FeatureReferenceExpression</code> is an <code>Expression</code> whose <code>result</code> is bound to a <code>referent</code> <code>Feature</code>.</p> - - - - <p>The <code>referent</code> of a <code>FeatureReferenceExpression</code> is the <code>memberElement</code> of its first <code>ownedMembership</code> that is not a <code>ParameterMembership</code>.</p> - - - OCL2.0 - referent = - let nonParameterMemberships : Sequence(Membership) = ownedMembership-> - reject(oclIsKindOf(ParameterMembership)) in - if nonParameterMemberships->isEmpty() or - not nonParameterMemberships->first().memberElement.oclIsKindOf(Feature) - then null - else nonParameterMemberships->first().memberElement.oclAsType(Feature) - endif - - - - - <p>A <code>FeatureReferenceExpression</code> must have an <code>ownedMember</code> that is a <code>BindingConnector</code> between the <code>referent</code> and <code>result</code> of the <code>FeatureReferenceExpression</code>.</p> - - - OCL2.0 - ownedMember->selectByKind(BindingConnector)->exists(b | - b.relatedFeatures->includes(targetFeature) and - b.relatedFeatures->includes(result)) - - - - - <p>The first <code>ownedMembership</code> of a <code>FeatureReferenceExpression</code> that is not a <code>ParameterMembership</code> must have a <code>Feature</code> as its <code>memberElement</code>.</p> - - - OCL2.0 - let membership : Membership = - ownedMembership->reject(m | m.oclIsKindOf(ParameterMembership)) in - membership->notEmpty() and - membership->at(1).memberElement.oclIsKindOf(Feature) - - - - - <p>The <code>result</code> parameter of a <code>FeatureReferenceExpression</code> must specialize the <code>referent</code> of the <code>FeatureReferenceExpression</code>.</p> - - - OCL2.0 - result.owningType() = self and result.specializes(referent) - - - - - <p>A <code>FeatureReferenceExpression</code> must own its <code>result</code> parameter.</p> - - - OCL2.0 - result.owningType = self - - - - - - <p>The <code>Feature</code> that is referenced by this <code>FeatureReferenceExpression</code>, which is its first non-<code>parameter</code> <code>member</code>.<p> - - - - - - - <p>A <code>FeatureReferenceExpression</code> is model-level evaluable if it&#39;s <code>referent</code></p> + + + + + + + + <p>The <code>Feature</code> that receives the values carried by the <code>Flow</code>. It must be a <code>feature</code> of the <code>target</code> of the <code>Flow</code>.</p> + + + + + + + <p>The <code>Feature</code> that provides the items carried by the <code>Flow</code>. It must be a <code>feature</code> of the <code>source</code> of the <code>Flow</code>.</p> + + + + + + + + <p>The <code>connectorEnds</code> of this <code>Flow</code> that are <code>FlowEnds</code>.</p> + + + + + + + + <p>The <code>ownedFeature</code> of the <code>Flow</code> that is a <code>PayloadFeature</code> (if any).</p> + + + + + + + + <p>The <code>Interactions</code> that type this <code>Flow</code>. <code>Interactions</code> are both <code>Associations</code> and <code>Behaviors</code>, which can type <code>Connectors</code> and <code>Steps</code>, respectively.</p> + + + + + + + + <p>The ItemFlow that has a certain <code>itemType</code>.</p> + + + + + + + + + <p>A <code>SuccessionFlow</code> is a <code>Flow</code> that also provides temporal ordering. It classifies <code><em>Transfers</em></code> that cannot start until the source <code><em>Occurrence</em></code> has completed and that must complete before the target <code><em>Occurrence</em></code> can start.</p> + + + + <p>A <code>SuccessionFlow</code> must directly or indirectly specialize the <code>Step</code> <code><em>Transfers::flowTransfersBefore</em></code> from the Kernel Semantic Library.</p> + + + OCL2.0 + specializesFromLibrary('Transfers::flowTransfersBefore') + + + + + + + + + <p>The ItemFlow that has a certain <code>sourceOutputFeature</code>.</p> + + + + + + + + + + + + + + + + + + + + <p>An <code>Interaction</code> is a <code>Behavior</code> that is also an <code>Association</code>, providing a context for multiple objects that have behaviors that impact one another.</p> + + + + + + + + + + + + + + <p>A <code>PayloadFeature</code> is the <code>ownedFeature</code> of a <code>Flow</code> that identifies the things carried by the kinds of transfers that are instances of the <code>Flow</code>.</p> + + + + <p>A <code>PayloadFeature</code> must redefine the <code>Feature</code> <code><em>Transfers::Transfer::payload</em></code> from the Kernel Semantic Library.</p> + + + OCL2.0 + redefinesFromLibrary('Transfers::Transfer::payload') + + + + + + + <p>A <code>FlowEnd</code> is a <code>Feature</code> that is one of the <code>connectorEnds</code> giving the <code><em>source</em></code> or <code><em>target</em></code> of a <code>Flow</code>. For <code>Flows</code> typed by <code><em>FlowTransfer</em></code> or its specializations, <code>FlowEnds</code> must have exactly one <code>ownedFeature</code>, which redefines <code><em>Transfer::source::sourceOutput</em></code> or <code><em>Transfer::target::targetInput</em></code> and redefines the corresponding feature of the <code>relatedElement</code> for its end.</p> + + + + <p>A <code>FlowEnd</code> must be an end <code>Feature</code>.</p> + + + OCL2.0 + isEnd + + + + + <p>A <code>FlowEnd</code> must have exactly one <code>ownedFeature</code>.</p> + + + OCL2.0 + ownedFeature->size() = 1 + + + + + <p>The <code>owningType</code> of a <code>FlowEnd</code> must be a <code>Flow</code>.</p> + + + OCL2.0 + owningType <> null and owningType.oclIsKindOf(Flow) + + + + + + + + + <p>A <code>LibraryPackage</code> is a <code>Package</code> that is the container for a model library. A <code>LibraryPackage</code> is itself a library <code>Element</code> as are all <code>Elements</code> that are directly or indirectly contained in it.</p> + + + + + + <p>Whether this <code>LibraryPackage</code> contains a standard library model. This should only be set to true for <code>LibraryPackages</code> in the standard Kernel Model Libraries or in normative model libraries for a language built on KerML.</p> + + + + + + + <p>The <code>libraryNamespace</code> for a <code>LibraryPackage</code> is itself.</p> + + + + OCL2.0 + self + + + + + + + + + + + <p><code>ElementFilterMembership</code> is a <code>Membership</code> between a <code>Namespace</code> and a model-level evaluable <code><em>Boolean</em></code>-valued <code>Expression</code>, asserting that imported <code>members</code> of the <code>Namespace</code> should be filtered using the <code>condition</code> <code>Expression</code>. A general <code>Namespace</code> does not define any specific filtering behavior, but such behavior may be defined for various specialized kinds of <code>Namespaces</code>.</p> + + + + + <p>The <code>condition</code> <code>Expression</code> must be model-level evaluable.</p> + + + OCL2.0 + condition.isModelLevelEvaluable + + + + + <p>The <code>result</code> <code>parameter</code> of the <code>condition</code> <code>Expression</code> must directly or indirectly specialize <code><em>ScalarValues::Boolean</em></code>.</p> + + + OCL2.0 + condition.result.specializesFromLibrary('ScalarValues::Boolean') + + + + + + <p>The model-level evaluable <code>Boolean</code>-valued <code>Expression</code> used to filter the imported <code>members</code> of the <code>membershipOwningNamespace</code> of this <code>ElementFilterMembership</code>.</p> + + + + + + + + + + <p>The Package that has a certain Expression as a <code>filterCondition</code>.</p> + + + + + + + + <p>A <code>Package</code> is a <code>Namespace</code> used to group <code>Elements</code>, without any instance-level semantics. It may have one or more model-level evaluable <code>filterCondition</code> <code>Expressions</code> used to filter its <code>importedMemberships</code>. Any imported <code>member</code> must meet all of the <code>filterConditions</code>.</p> + + + + <p>The <code>filterConditions</code> of a <code>Package</code> are the <code>conditions</code> of its owned <code>ElementFilterMemberships</code>.</p> + + + OCL2.0 + filterCondition = ownedMembership-> + selectByKind(ElementFilterMembership).condition + + + + + + <p>The model-level evaluable <code><em>Boolean</em></code>-valued <code>Expression</code> used to filter the <code>members</code> of this <code>Package</code>, which are owned by the <code>Package</code> are via <code>ElementFilterMemberships</code>.</p> + + + + + + + + <p>Exclude <code>Elements</code> that do not meet all the <code>filterConditions</code>.</p> + + + + + OCL2.0 + self.oclAsType(Namespace).importedMemberships(excluded)-> + select(m | self.includeAsMember(m.memberElement)) + + + + + + + + + + + + + + <p>Determine whether the given <code>element</code> meets all the <code>filterConditions</code>.</p> + + + + OCL2.0 + let metadataFeatures: Sequence(AnnotatingElement) = + element.ownedAnnotation.annotatingElement-> + selectByKind(MetadataFeature) in + self.filterCondition->forAll(cond | + metadataFeatures->exists(elem | + cond.checkCondition(elem))) + + + + + + + + + + + + <p>The ElementFilterMembership that owns the <code>condition</code>.</p> + + + + + + + + + + <p>A <code>Class</code> is a <code>Classifier</code> of things (in the universe) that can be distinguished without regard to how they are related to other things (via <code>Features</code>). This means multiple things classified by the same <code>Class</code> can be distinguished, even when they are related other things in exactly the same way.</p> + + + + + <p>A <code>Class</code> must directly or indirectly specialize the base <code>Class</code> <code><em>Occurrences::Occurrence</em></code> from the Kernel Semantic Library.</p> + + + OCL2.0 + specializesFromLibrary('Occurrences::Occurrence') + + + + + <p>A <code>Class</code> must not specialize a <code>DataType</code> and it can only specialize an <code>Association</code> if it is also itself a kind of <code>Association</code> (such as an <code>AssociationStructure</code> or <code>Interaction</code>).</p> + + + OCL2.0 + ownedSpecialization.general-> + forAll(not oclIsKindOf(DataType)) and +not oclIsKindOf(Association) implies + ownedSpecialization.general-> + forAll(not oclIsKindOf(Association)) + + + + + + + + + <p><code>LiteralBoolean</code> is a <code>LiteralExpression</code> that provides a <code><em>Boolean</em></code> value as a result. Its <code>result</code> <code>parameter</code> must have type <code><em>Boolean</em></code>.</p> + + + + + <p>A <code>LiteralBoolean</code> must directly or indirectly specialize <em><code>Performances::literalBooleanEvaluations</code></em> from the Kernel Semantic Library.</p> + + + OCL2.0 + specializesFromLibrary('Performances::literalBooleanEvaluations') + + + + + + <p>The <code><em>Boolean</em></code> value that is the result of evaluating this <code>LiteralBoolean</code>.</p> + + + <p>The Boolean value that is the result of evaluating this Expression.</p> + + + + + + + + <p>A <code>LiteralExpression</code> is an <code>Expression</code> that provides a basic <code><em>DataValue</em></code> as a result.</p> + + + + + <p>A <code>LiteralExpression</code> is always model-level evaluable.</p> + + + OCL2.0 + isModelLevelEvaluable = true + + + + + <p>A <code>LiteralExpression</code> must directly or indirectly specialize the base <code>LiteralExpression</code> <code><em>Performances::literalEvaluations</em></code> from the Kernel Semantic Library.</p> + + + OCL2.0 + specializesFromLibrary('Performances::literalEvaluations') + + + + + + <p>A <code>LiteralExpression</code> is always model-level evaluable.</p> + + + + OCL2.0 + true + + + + + + + + + + + + + <p>The model-level value of a <code>LiteralExpression</code> is itself.</p> + + + + OCL2.0 + Sequence{self} + + + + + + + + + + + + <p>A <code>LiteralRational</code> is a <code>LiteralExpression</code> that provides a <code><em>Rational</em></code> value as a result. Its <code>result</code> <code>parameter</code> must have the type <code><em>Rational</em></code>.</p> + + + + + <p>A <code>LiteralRational</code> must directly or indirectly specialize <em><code>Performances::literalRationalEvaluations</code></em> from the Kernel Semantic Library.</p> + + + OCL2.0 + specializesFromLibrary('Performances::literalRationalEvaluations') + + + + + + <p>The value whose rational approximation is the result of evaluating this <code>LiteralRational</code>.</p> + + + + <p>The Real value that is the result of evaluating this Expression.</p> + + + + + + + <p>A <code>LiteralInfinity</code> is a <code>LiteralExpression</code> that provides the positive infinity value (<code>*</code>). It's <code>result</code> must have the type <code><em>Positive</em></code>.</p> + + + + + <p>A <code>LiteralInfinity</code> must directly or indirectly specialize <em><code>Performances::literalIntegerEvaluations</code></em> from the Kernel Semantic Library.</p> + + + OCL2.0 + specializesFromLibrary('Performances::literalIntegerEvaluations') + + + + + + + <p>A <code>LiteralInteger</code> is a <code>LiteralExpression</code> that provides an <code><em>Integer</em></code> value as a result. Its <code>result</code> <code>parameter</code> must have the type <code><em>Integer</em></code>.</p> + + + + + <p>A <code>LiteralInteger</code> must directly or indirectly specialize <em><code>Performances::literalIntegerEvaluations</code></em> from the Kernel Semantic Library.</p> + + + OCL2.0 + specializesFromLibrary('Performances::literalIntegerEvaluations') + + + + + + <p>The <code><em>Integer</em></code> value that is the result of evaluating this <code>LiteralInteger</code>.</p> + + + <p>The Integer value that is the result of evaluating this Expression.</p> + + + + + + + + <p>A <code>NullExpression</code> is an <code>Expression</code> that results in a null value.</p> + + + + + <p>A <code>NullExpression</code> must directly or indirectly specialize the base <code>NullExpression</code> <code><em>Performances::nullEvaluations</em></code> from the Kernel Semantic Library.</p> + + + OCL2.0 + specializesFromLibrary('Performances::nullEvaluations') + + + + + + <p>A <code>NullExpression</code> is always model-level evaluable.</p> + + + + OCL2.0 + true + + + + + + + + + + + + + <p>The model-level value of a <code>NullExpression</code> is an empty sequence.</p> + + + + OCL2.0 + Sequence{} + + + + + + + + + + + + <p>A <code>LiteralString</code> is a <code>LiteralExpression</code> that provides a <code><em>String</em></code> value as a result. Its <code>result</code> <code>parameter</code> must have the type <code><em>String</em></code>.</p> + + + + + <p>A <code>LiteralString</code> must directly or indirectly specialize <em><code>Performances::literalStringEvaluations</code></em> from the Kernel Semantic Library.</p> + + + OCL2.0 + specializesFromLibrary('Performances::literalStringEvaluations') + + + + + + <p>The String value that is the result of evaluating this Expression.</p> + + + <p>The <code><em>String</em></code> value that is the result of evaluating this <code>LiteralString</code>.</p> + + + + + + + + <p>An <code>InvocationExpression</code> is an <code>InstantiationExpression</code> whose <code>instantiatedType</code> must be a <code>Behavior</code> or a <code>Feature</code> typed by a single <code>Behavior</code> (such as a <code>Step</code>). Each of the input <code>parameters</code> of the <code>instantiatedType</code> are bound to the <code>result</code> of an <code>argument</code> <code>Expression</code>. If the <code>instantiatedType</code> is a <code>Function</code> or a <code>Feature</code> typed by a <code>Function</code>, then the <code>result</code> of the <code>InvocationExpression</code> is the <code>result</code> of the invoked <code>Function</code>. Otherwise, the <code>result</code> is an instance of the <code>instantiatedType</code> (essentially like a behavioral <code>ConstructorExpression</code>).</p> + + + + + <p>If the <code>instantiatedType</code> of an <code>InvocationExpression</code> is neither a <code>Function</code> nor a <code>Feature</code> whose type is a <code>Function</code>, then the <code>InvocationExpression</code> must own a <code>BindingConnector</code> between itself and its <code>result</code> parameter.</p> + + + OCL2.0 + not instantiatedType.oclIsKindOf(Function) and +not (instantiatedType.oclIsKindOf(Feature) and + instantiatedType.oclAsType(Feature).type->exists(oclIsKindOf(Function))) implies + ownedFeature.selectByKind(BindingConnector)->exists( + relatedFeature->includes(self) and + relatedFeature->includes(result)) + + + + + <p>An <code>InvocationExpression</code> must own a <code>BindingConnector</code> between the <code>featureWithValue</code> and <code>value</code> <code>Expression</code> of any <code>FeatureValue</code> that is the effective default value for a <code>feature</code> of the <code>instantiatedType</code> of the <code>InvocationExpression</code>.</p> + + + OCL2.0 + TBD + + + + + <p>The <code>arguments</code> of an <code>InvocationExpression</code> are the <code>value</code> <code>Expressions</code> of the <code>FeatureValues</code> of its <code>ownedFeatures</code>, in an order corresponding to the order of the <code>input</code> parameters of the <code>instantiatedType</code> that the <code>ownedFeatures</code> redefine.</p> + + + OCL2.0 + instantiatedType.input->collect(inp | + ownedFeatures->select(redefines(inp)).valuation-> + select(v | v <> null).value +) + + + + + <p>Each <code>input</code> parameter of an <code>InvocationExpression</code> must redefine exactly one <code>input</code> parameter of the <code>instantiatedType</code> of the <code>InvocationExpression</code>.</p> + + + OCL2.0 + let parameters : OrderedSet(Feature) = instantiatedType.input in +input->forAll(inp | + inp.ownedRedefinition.redefinedFeature-> + intersection(parameters)->size() = 1) + + + + + <p>Two different <code>ownedFeatures</code> of an <code>InvocationExpression</code> must not redefine the same <code>feature</code> of the <code>instantiatedType</code> of the <code>InvocationExpression</code>.</p> + + + OCL2.0 + let features : OrderedSet(Feature) = instantiatedType.feature in +input->forAll(inp1 | input->forAll(inp2 | + inp1 <> inp2 implies + inp1.ownedRedefinition.redefinedFeature-> + intersection(inp2.ownedRedefinition.redefinedFeature)-> + intersection(features)->isEmpty())) + + + + + <p>If the <code>instantiatedType</code> of an <code>InvocationExpression</code> is neither a <code>Function</code> nor a <code>Feature</code> whose type is a <code>Function</code>, then the <code>result</code> of the <code>InvocationExpression</code> must specialize the <code>instantiatedType</code>.</p> + + + OCL2.0 + not instantiatedType.oclIsKindOf(Function) and +not (instantiatedType.oclIsKindOf(Feature) and + instantiatedType.oclAsType(Feature).type->exists(oclIsKindOf(Function))) implies + result.specializes(instantiatedType) + + + + + <p>An <code>InvocationExpression</code> must specialize its <code>instantiatedType</code>.</p> + + + OCL2.0 + specializes(instantiatedType) + + + + + <p>The <code>instantiatedType</code> of an <code>InvocationExpression</code> must be either a <code>Behavior</code> or a <code>Feature</code> with a single <code>type</code>, which is a <code>Behavior</code>.</p> + + + OCL2.0 + instantiatedType.oclIsKindOf(Behavior) or +instantiatedType.oclIsKindOf(Feature) and + instantiatedType.type->exists(oclIsKindOf(Behavior)) and + instantiatedType.type->size(1) + + + + + <p>Other than its <code>result</code>, all the <code>ownedFeatures</code> of an <code>InvocationExpression</code> must have <code>direction = in</code>.</p> + + + OCL2.0 + ownedFeature->forAll(f | + f <> result implies + f.direction = FeatureDirectionKind::_'in') + + + + + + <p>An <code>InvocationExpression</code> is model-level evaluable if all its <code>argument</code> <code>Expressions</code> are model-level evaluable and its <code>function</code> is model-level evaluable.</p> + + + + + OCL2.0 + argument->forAll(modelLevelEvaluable(visited)) and + function.isModelLevelEvaluable + + + + + + + + + + + + + <p>Apply the <code>Function</code> that is the <code>type</code> of this <code>InvocationExpression</code> to the argument values resulting from evaluating each of the <code>argument</code> <code>Expressions</code> on the given <code>target</code>. If the application is not possible, then return an empty sequence.</p> + + + + + + + + + + + + <p>A <code>FeatureReferenceExpression</code> is an <code>Expression</code> whose <code>result</code> is bound to a <code>referent</code> <code>Feature</code>.</p> + + + + <p>The <code>referent</code> of a <code>FeatureReferenceExpression</code> is the <code>memberElement</code> of its first <code>ownedMembership</code> that is not a <code>ParameterMembership</code>.</p> + + + OCL2.0 + referent = + let nonParameterMemberships : Sequence(Membership) = ownedMembership-> + reject(oclIsKindOf(ParameterMembership)) in + if nonParameterMemberships->isEmpty() or + not nonParameterMemberships->first().memberElement.oclIsKindOf(Feature) + then null + else nonParameterMemberships->first().memberElement.oclAsType(Feature) + endif + + + + + <p>A <code>FeatureReferenceExpression</code> must have an <code>ownedMember</code> that is a <code>BindingConnector</code> between the <code>referent</code> and <code>result</code> of the <code>FeatureReferenceExpression</code>.</p> + + + OCL2.0 + ownedMember->selectByKind(BindingConnector)->exists(b | + b.relatedFeatures->includes(targetFeature) and + b.relatedFeatures->includes(result)) + + + + + <p>The first <code>ownedMembership</code> of a <code>FeatureReferenceExpression</code> that is not a <code>ParameterMembership</code> must have a <code>Feature</code> as its <code>memberElement</code>.</p> + + + OCL2.0 + let membership : Membership = + ownedMembership->reject(m | m.oclIsKindOf(ParameterMembership)) in +membership->notEmpty() and +membership->at(1).memberElement.oclIsKindOf(Feature) + + + + + <p>The <code>result</code> parameter of a <code>FeatureReferenceExpression</code> must specialize the <code>referent</code> of the <code>FeatureReferenceExpression</code>.</p> + + + OCL2.0 + result.owningType() = self and result.specializes(referent) + + + + + <p>A <code>FeatureReferenceExpression</code> must own its <code>result</code> parameter.</p> + + + OCL2.0 + result.owningType = self + + + + + + <p>The <code>Feature</code> that is referenced by this <code>FeatureReferenceExpression</code>, which is its first non-<code>parameter</code> <code>member</code>.<p> + + + + + + + <p>A <code>FeatureReferenceExpression</code> is model-level evaluable if it&#39;s <code>referent</code></p> - <ul> - <li>conforms to the self-reference feature <code><em>Anything::self</em></code>;</li> - <li>is an <code>Expression</code> that is model-level evaluable;</li> - <li>has an <code>owningType</code> that is a <code>Metaclass</code> or <code>MetadataFeature</code>; or</li> - <li>has no <code>featuringTypes</code> and, if it has a <code>FeatureValue</code>, the <code>value</code> <code>Expression</code> is model-level evaluable.</li> - </ul> - - - - - OCL2.0 - referent.conformsTo('Anything::self') or - visited->excludes(referent) and - (referent.oclIsKindOf(Expression) and - referent.oclAsType(Expression).modelLevelEvaluable(visited->including(referent)) or - referent.owningType <> null and - (referent.owningType.isOclKindOf(MetaClass) or - referent.owningType.isOclKindOf(MetadataFeature)) or - referent.featuringType->isEmpty() and - (referent.valuation = null or - referent.valuation.modelLevelEvaluable(visited->including(referent)))) - - - - - - - - - - - - - <p>First, determine a <code>value</code> <code>Expression</code> for the <code>referent</code>:</p> +<ul> + <li>conforms to the self-reference feature <code><em>Anything::self</em></code>;</li> + <li>is an <code>Expression</code> that is model-level evaluable;</li> + <li>has an <code>owningType</code> that is a <code>Metaclass</code> or <code>MetadataFeature</code>; or</li> + <li>has no <code>featuringTypes</code> and, if it has a <code>FeatureValue</code>, the <code>value</code> <code>Expression</code> is model-level evaluable.</li> +</ul> + + + + + OCL2.0 + referent.conformsTo('Anything::self') or +visited->excludes(referent) and +(referent.oclIsKindOf(Expression) and + referent.oclAsType(Expression).modelLevelEvaluable(visited->including(referent)) or +referent.owningType <> null and + (referent.owningType.isOclKindOf(MetaClass) or + referent.owningType.isOclKindOf(MetadataFeature)) or +referent.featuringType->isEmpty() and + (referent.valuation = null or + referent.valuation.modelLevelEvaluable(visited->including(referent)))) + + + + + + + + + + + + + <p>First, determine a <code>value</code> <code>Expression</code> for the <code>referent</code>:</p> - <ul> - <li>If the <code>target</code> <code>Element</code> is a Type that has a <code>feature</code> that is the <code>referent</code> or (directly or indirectly) redefines it, then the <code>value</code> <code>Expression</code> of the <code>FeatureValue</code> for that <code>feature</code> (if any).</li> - <li>Else, if the <code>referent</code> has no <code>featuringTypes</code>, the <code>value</code> <code>Expression</code> of the <code>FeatureValue</code> for the <code>referent</code> (if any).</li> - </ul> +<ul> + <li>If the <code>target</code> <code>Element</code> is a Type that has a <code>feature</code> that is the <code>referent</code> or (directly or indirectly) redefines it, then the <code>value</code> <code>Expression</code> of the <code>FeatureValue</code> for that <code>feature</code> (if any).</li> + <li>Else, if the <code>referent</code> has no <code>featuringTypes</code>, the <code>value</code> <code>Expression</code> of the <code>FeatureValue</code> for the <code>referent</code> (if any).</li> +</ul> - <p>Then:</p> +<p>Then:</p> - <ul> - <li>If such a value <code>Expression</code> exists, return the result of evaluating that <code>Expression</code> on the <code>target</code>.</li> - <li>Else, if the <code>referent</code> is not an <code>Expression</code>, return the <code>referent</code>.</li> - <li>Else return the empty sequence.</li> - </ul> - - - - - OCL2.0 - if not target.oclIsKindOf(Type) then Sequence{} - else - let feature: Sequence(Feature) = - target.oclAsType(Type).feature->select(f | - f.ownedRedefinition.redefinedFeature-> - includes(referent)) in - if feature->notEmpty() then - feature.valuation.value.evaluate(target) - else if referent.featuringType->isEmpty() - then referent - else Sequence{} - endif endif - endif - - - - - - - - - - - - - <p>A <code>FeatureReferenceExpression</code> that has a certain <code>referent</code> <code>Feature</code>.</p> - - - - - - - - <p>A <code>SelectExpression</code> is an <code>OperatorExpression</code> whose operator is <code>"select"</code>, which resolves to the <code>Function</code> <em><code>ControlFunctions::select</code></em> from the Kernel Functions Library.</p> - - - - <p>The <code>operator</code> of a <code>SelectExpression</code> must be <code>'select'</code>.</p> - - - OCL2.0 - operator = 'select' - - - - - <p>The <code>result</code> of a <code>SelectExpression</code> must specialize the <code>result</code> parameter of the first <code>argument</code> of the <code>SelectExpression</code>.</p> - - - OCL2.0 - arguments->notEmpty() implies - result.specializes(arguments->first().result) - - - - - - - - - - - <p>An <code>OperatorExpression</code> is an <code>InvocationExpression</code> whose <code>function</code> is determined by resolving its <code>operator</code> in the context of one of the standard packages from the Kernel Function Library.</p> - - - - - <p>An <code>operator</code> symbol that names a corresponding <code>Function</code> from one of the standard packages from the Kernel Function Library .</p> - - - - - - <p>The <code>instantiatedType</code> of an <code>OperatorExpression</code> is the resolution of it's <code>operator</code> from one of the packages <em><code>BaseFunctions</code></em>, <em><code>DataFunctions</code></em>, or <em><code>ControlFunctions</code></em> from the Kernel Function Library.</p> - - - - OCL2.0 - let libFunctions : Sequence(Element) = - Sequence{'BaseFunctions', 'DataFunctions', 'ControlFunctions'}-> - collect(ns | resolveGlobal(ns + "::'" + operator + "'"). - memberElement) in - if libFunctions->isEmpty() then null - else libFunctions->first().oclAsType(Type) - endif - - - - - - - - <p>A <code>CollectExpression</code> is an <code>OperatorExpression</code> whose <code>operator</code> is <code>"collect"</code>, which resolves to the <code>Function</code> <em><code>ControlFunctions::collect</code></em> from the Kernel Functions Library.</p> - - - - <p>The <code>operator</code> of a <code>CollectExpression</code> must be <code>"collect"</code>.</p> - - - OCL2.0 - operator = 'collect' - - - - - - - - - - - <p>A <code>FeatureChainExpression</code> is an <code>OperatorExpression</code> whose operator is <code>"."</code>, which resolves to the <code>Function</code> <em><code>ControlFunctions::'.'</code></em> from the Kernel Functions Library. It evaluates to the result of chaining the <code>result</code> <code>Feature</code> of its single <code>argument</code> <code>Expression</code> with its <code>targetFeature</code>.</p> - - - - <p>The first <code>ownedFeature</code> of the first owned input <code>parameter</code> of a <code>FeatureChainExpression</code> must redefine the <code>Feature</code> <code><em>ControlFunctions::'.'::source::target</em></code> from the Kernel Functions Library.</p> - - - OCL2.0 - let sourceParameter : Feature = sourceTargetFeature() in - sourceTargetFeature <> null and - sourceTargetFeature.redefinesFromLibrary('ControlFunctions::\'.\'::source::target') - - - - - <p>The first <code>ownedFeature</code> of the first owned input <code>parameter</code> of a <code>FeatureChainExpression</code> must redefine its <code>targetFeature</code>.</p> - - - OCL2.0 - let sourceParameter : Feature = sourceTargetFeature() in - sourceTargetFeature <> null and - sourceTargetFeature.redefines(targetFeature) - - - - - <p>The <code>targetFeature</code> of a <code>FeatureChainExpression</code> is the <code>memberElement</code> of its first <code>ownedMembership</code> that is not a <code>ParameterMembership</code>.</p> - - - OCL2.0 - targetFeature = - let nonParameterMemberships : Sequence(Membership) = ownedMembership-> - reject(oclIsKindOf(ParameterMembership)) in - if nonParameterMemberships->isEmpty() or - not nonParameterMemberships->first().memberElement.oclIsKindOf(Feature) - then null - else nonParameterMemberships->first().memberElement.oclAsType(Feature) - endif - - - - - <p>The <code>targetFeature</code> of a <code>FeatureChainExpression</code> must be featured within the <code>result</code> parameter of the <code>argument</code> <code>Expression</code> of the <code>FeatureChainExpression</code>.</p> +<ul> + <li>If such a value <code>Expression</code> exists, return the result of evaluating that <code>Expression</code> on the <code>target</code>.</li> + <li>Else, if the <code>referent</code> is not an <code>Expression</code>, return the <code>referent</code>.</li> + <li>Else return the empty sequence.</li> +</ul> + + + + + OCL2.0 + if not target.oclIsKindOf(Type) then Sequence{} +else + let feature: Sequence(Feature) = + target.oclAsType(Type).feature->select(f | + f.ownedRedefinition.redefinedFeature-> + includes(referent)) in + if feature->notEmpty() then + feature.valuation.value.evaluate(target) + else if referent.featuringType->isEmpty() + then referent + else Sequence{} + endif endif +endif + + + + + + + + + + + + + <p>A <code>FeatureReferenceExpression</code> that has a certain <code>referent</code> <code>Feature</code>.</p> + + + + + + + + <p>A <code>SelectExpression</code> is an <code>OperatorExpression</code> whose operator is <code>"select"</code>, which resolves to the <code>Function</code> <em><code>ControlFunctions::select</code></em> from the Kernel Functions Library.</p> + + + + <p>The <code>operator</code> of a <code>SelectExpression</code> must be <code>'select'</code>.</p> + + + OCL2.0 + operator = 'select' + + + + + <p>The <code>result</code> of a <code>SelectExpression</code> must specialize the <code>result</code> parameter of the first <code>argument</code> of the <code>SelectExpression</code>.</p> + + + OCL2.0 + arguments->notEmpty() implies + result.specializes(arguments->first().result) + + + + + + + + + + + <p>An <code>OperatorExpression</code> is an <code>InvocationExpression</code> whose <code>function</code> is determined by resolving its <code>operator</code> in the context of one of the standard packages from the Kernel Function Library.</p> + + + + + <p>An <code>operator</code> symbol that names a corresponding <code>Function</code> from one of the standard packages from the Kernel Function Library .</p> + + + + + + <p>The <code>instantiatedType</code> of an <code>OperatorExpression</code> is the resolution of it's <code>operator</code> from one of the packages <em><code>BaseFunctions</code></em>, <em><code>DataFunctions</code></em>, or <em><code>ControlFunctions</code></em> from the Kernel Function Library.</p> + + + + OCL2.0 + let libFunctions : Sequence(Element) = + Sequence{'BaseFunctions', 'DataFunctions', 'ControlFunctions'}-> + collect(ns | resolveGlobal(ns + "::'" + operator + "'"). + memberElement) in +if libFunctions->isEmpty() then null +else libFunctions->first().oclAsType(Type) +endif + + + + + + + + <p>A <code>CollectExpression</code> is an <code>OperatorExpression</code> whose <code>operator</code> is <code>"collect"</code>, which resolves to the <code>Function</code> <em><code>ControlFunctions::collect</code></em> from the Kernel Functions Library.</p> + + + + <p>The <code>operator</code> of a <code>CollectExpression</code> must be <code>"collect"</code>.</p> + + + OCL2.0 + operator = 'collect' + + + + + + + + + + + <p>A <code>FeatureChainExpression</code> is an <code>OperatorExpression</code> whose operator is <code>"."</code>, which resolves to the <code>Function</code> <em><code>ControlFunctions::'.'</code></em> from the Kernel Functions Library. It evaluates to the result of chaining the <code>result</code> <code>Feature</code> of its single <code>argument</code> <code>Expression</code> with its <code>targetFeature</code>.</p> + + + + <p>The first <code>ownedFeature</code> of the first owned input <code>parameter</code> of a <code>FeatureChainExpression</code> must redefine the <code>Feature</code> <code><em>ControlFunctions::'.'::source::target</em></code> from the Kernel Functions Library.</p> + + + OCL2.0 + let sourceTargetFeature : Feature = sourceTargetFeature() in +sourceTargetFeature <> null and +sourceTargetFeature.redefinesFromLibrary('ControlFunctions::\'.\'::source::target') + + + + + <p>The first <code>ownedFeature</code> of the first owned input <code>parameter</code> of a <code>FeatureChainExpression</code> must redefine its <code>targetFeature</code>.</p> + + + OCL2.0 + let sourceTargetFeature : Feature = sourceTargetFeature() in +sourceTargetFeature <> null and +sourceTargetFeature.redefines(targetFeature) + + + + + <p>The <code>targetFeature</code> of a <code>FeatureChainExpression</code> is the <code>memberElement</code> of its first <code>ownedMembership</code> that is not a <code>ParameterMembership</code>.</p> + + + OCL2.0 + targetFeature = + let nonParameterMemberships : Sequence(Membership) = ownedMembership-> + reject(oclIsKindOf(ParameterMembership)) in + if nonParameterMemberships->isEmpty() or + not nonParameterMemberships->first().memberElement.oclIsKindOf(Feature) + then null + else nonParameterMemberships->first().memberElement.oclAsType(Feature) + endif + + + + + <p>The <code>targetFeature</code> of a <code>FeatureChainExpression</code> must be featured within the <code>result</code> parameter of the <code>argument</code> <code>Expression</code> of the <code>FeatureChainExpression</code>.</p> - - - - OCL2.0 - argument->notEmpty() implies - targetFeature.isFeaturedWithin(argument->first().result) - - - - - <p>The <code>operator</code> of a <code>FeatureChainExpression</code> must be <code>"."</code>.</p> - - - OCL2.0 - operator = '.' - - - - - <p>The <code>result</code> parameter of a <code>FeatureChainExpression</code> must specialize the feature chain of the <code>FeatureChainExpression</code>.</p> - - - OCL2.0 - let inputParameters : Sequence(Feature) = - ownedFeatures->select(direction = _'in') in - let sourceTargetFeature : Feature = - owningExpression.sourceTargetFeature() in - sourceTargetFeature <> null and - result.subsetsChain(inputParameters->first(), sourceTargetFeature) and - result.owningType = self - - - - - - - - - - <p>The <code>Feature</code> that is accessed by this <code>FeatureChainExpression<code>, which is its first non-<code>parameter</code> <code>member</code>.<p> - - - - - - - <p>Return the first <code>ownedFeature</code> of the first owned input <code>parameter</code> of this <code>FeatureChainExpression</code> (if any).</p> - - - - OCL2.0 - let inputParameters : Feature = ownedFeatures-> - select(direction = _'in') in - if inputParameters->isEmpty() or - inputParameters->first().ownedFeature->isEmpty() - then null - else inputParameters->first().ownedFeature->first() - endif - - - - - - - - - - - - - - - - - - <p>The <code>MetadataAccessExpressions</code> having a certain <code>Element</code> as their <code>referencedElement</code>.</p> - - - - - - - - <p>A <code>MetadataAccessExpression</code> is an <code>Expression</code> whose <code>result</code> is a sequence of instances of <code>Metaclasses</code> representing all the <code>MetadataFeature</code> annotations of the <code>referencedElement</code>. In addition, the sequence includes an instance of the reflective <code>Metaclass</code> corresponding to the MOF class of the <code>referencedElement</code>, with values for all the abstract syntax properties of the <code>referencedElement</code>.</p> - - - - <p>A <code>MetadataAccessExpression</code> must directly or indirectly specialize the base <code>MetadataAccessExpression</code> <code><em>Performances::metadataAccessEvaluations</em></code> from the Kernel Semantic Library.</p> - - - OCL2.0 - specializesFromLibrary('Performances::metadataAccessEvaluations') - - - - - <p>A <code>MetadataAccessExpression</code> must have at least one <code>ownedMember</code> that is not a <code>FeatureMembership</code>.</p> - - - OCL2.0 - ownedMembership->exists(not oclIsKindOf(FeatureMembership)) - - - - - <p>The <code>referencedElement</code> of a <code>MetadataAccessExpression</code> is the <code>memberElement</code> of its first <code>ownedMembership</code> that is not a <code>FeatureMembership</code>.</p> - - - OCL2.0 - referencedElement = - let elements : Sequence(Element) = ownedMembership-> - reject(oclIsKindOf(FeatureMembership)).memberElement in - if elements->isEmpty() then null - else elements->first() - endif - - - - - - <p>The <code>Element</code> whose metadata is being accessed.</p> - - - - - - - <p>A <code>MetadataAccessExpression</code> is always model-level evaluable.</p> - - - - OCL2.0 - true - - - - - - - - - - - - - <p>Return the <code>ownedElements</code> of the <code>referencedElement</code> that are <code>MetadataFeatures</code> and have the <code>referencedElement</code> as an <code>annotatedElement</code>, plus a <code>MetadataFeature</code> whose <code>annotatedElement</code> is the <code>referencedElement</code>, whose <code>metaclass</code> is the reflective <code>Metaclass</code> corresponding to the MOF class of the <code>referencedElement</code> and whose <code>ownedFeatures</code> are bound to the values of the MOF properties of the <code>referencedElement</code>.</p> - - - - OCL2.0 - referencedElement.ownedElement-> - select(oclIsKindOf(MetadataFeature) - and annotatedElement->includes(referencedElement))-> - including(metaclassFeature()) - - - - - - - - - - - <p>Return a <code>MetadataFeature</code> whose <code>annotatedElement</code> is the <code>referencedElement</code>, whose <code>metaclass</code> is the reflective <code>Metaclass</code> corresponding to the MOF class of the <code>referencedElement</code> and whose <code>ownedFeatures</code> are bound to the MOF properties of the <code>referencedElement</code>.</p> - - - - - - - <p>An <code>IndexExpression</code> is an <code>OperatorExpression</code> whose operator is <code>"#"</code>, which resolves to the <code>Function</code> <em><code>BasicFunctions::'#'</code></em> from the Kernel Functions Library.</p> - - - - <p>The <code>result</code> of an <code>IndexExpression</code> must specialize the <code>result</code> parameter of the first <code>argument</code> of the <code>IndexExpression</code>, unless that <code>result</code> already directly or indirectly specializes the <code>DataType</code> <em><code>Collections::Array</code></em> from the Kernel Data Type Library.</p> - - - OCL2.0 - arguments->notEmpty() and - not arguments->first().result.specializesFromLibrary('Collections::Array') implies - result.specializes(arguments->first().result) - - - - - <p>The <code>operator</code> of an <code>IndexExpression</code> must be <code>"#"</code>.</p> - - - OCL2.0 - operator = '#' - - - - - - - - - - - <p>An <code>InstantiationExpression</code> is an <code>Expression</code> that instantiates its <code>instantiatedType</code>, binding some or all of the <code>features</code> of that <code>Type</code> to the <code>results</code> of its <code>arguments</code>.</p> + + + + OCL2.0 + argument->notEmpty() implies + targetFeature.isFeaturedWithin(argument->first().result) + + + + + <p>The <code>operator</code> of a <code>FeatureChainExpression</code> must be <code>"."</code>.</p> + + + OCL2.0 + operator = '.' + + + + + <p>The <code>result</code> parameter of a <code>FeatureChainExpression</code> must specialize the feature chain of the <code>FeatureChainExpression</code>.</p> + + + OCL2.0 + let inputParameters : Sequence(Feature) = + ownedFeatures->select(direction = _'in') in +let sourceTargetFeature : Feature = + owningExpression.sourceTargetFeature() in +sourceTargetFeature <> null and +result.subsetsChain(inputParameters->first(), sourceTargetFeature) and +result.owningType = self + + + + + + + + + + <p>The <code>Feature</code> that is accessed by this <code>FeatureChainExpression<code>, which is its first non-<code>parameter</code> <code>member</code>.<p> + + + + + + + <p>Return the first <code>ownedFeature</code> of the first owned input <code>parameter</code> of this <code>FeatureChainExpression</code> (if any).</p> + + + + OCL2.0 + let inputParameters : Feature = ownedFeatures-> + select(direction = _'in') in +if inputParameters->isEmpty() or + inputParameters->first().ownedFeature->isEmpty() +then null +else inputParameters->first().ownedFeature->first() +endif + + + + + + + + + + + + + + + + + + <p>The <code>MetadataAccessExpressions</code> having a certain <code>Element</code> as their <code>referencedElement</code>.</p> + + + + + + + + <p>A <code>MetadataAccessExpression</code> is an <code>Expression</code> whose <code>result</code> is a sequence of instances of <code>Metaclasses</code> representing all the <code>MetadataFeature</code> annotations of the <code>referencedElement</code>. In addition, the sequence includes an instance of the reflective <code>Metaclass</code> corresponding to the MOF class of the <code>referencedElement</code>, with values for all the abstract syntax properties of the <code>referencedElement</code>.</p> + + + + <p>A <code>MetadataAccessExpression</code> must directly or indirectly specialize the base <code>MetadataAccessExpression</code> <code><em>Performances::metadataAccessEvaluations</em></code> from the Kernel Semantic Library.</p> + + + OCL2.0 + specializesFromLibrary('Performances::metadataAccessEvaluations') + + + + + <p>A <code>MetadataAccessExpression</code> must have at least one <code>ownedMember</code> that is not a <code>FeatureMembership</code>.</p> + + + OCL2.0 + ownedMembership->exists(not oclIsKindOf(FeatureMembership)) + + + + + <p>The <code>referencedElement</code> of a <code>MetadataAccessExpression</code> is the <code>memberElement</code> of its first <code>ownedMembership</code> that is not a <code>FeatureMembership</code>.</p> + + + OCL2.0 + referencedElement = + let elements : Sequence(Element) = ownedMembership-> + reject(oclIsKindOf(FeatureMembership)).memberElement in + if elements->isEmpty() then null + else elements->first() + endif + + + + + + <p>The <code>Element</code> whose metadata is being accessed.</p> + + + + + + + <p>A <code>MetadataAccessExpression</code> is always model-level evaluable.</p> + + + + OCL2.0 + true + + + + + + + + + + + + + <p>Return the <code>ownedElements</code> of the <code>referencedElement</code> that are <code>MetadataFeatures</code> and have the <code>referencedElement</code> as an <code>annotatedElement</code>, plus a <code>MetadataFeature</code> whose <code>annotatedElement</code> is the <code>referencedElement</code>, whose <code>metaclass</code> is the reflective <code>Metaclass</code> corresponding to the MOF class of the <code>referencedElement</code> and whose <code>ownedFeatures</code> are bound to the values of the MOF properties of the <code>referencedElement</code>.</p> + + + + OCL2.0 + referencedElement.ownedElement-> + select(oclIsKindOf(MetadataFeature) + and annotatedElement->includes(referencedElement))-> + including(metaclassFeature()) + + + + + + + + + + + <p>Return a <code>MetadataFeature</code> whose <code>annotatedElement</code> is the <code>referencedElement</code>, whose <code>metaclass</code> is the reflective <code>Metaclass</code> corresponding to the MOF class of the <code>referencedElement</code> and whose <code>ownedFeatures</code> are bound to the MOF properties of the <code>referencedElement</code>.</p> + + + + + + + <p>An <code>IndexExpression</code> is an <code>OperatorExpression</code> whose operator is <code>"#"</code>, which resolves to the <code>Function</code> <em><code>BasicFunctions::'#'</code></em> from the Kernel Functions Library.</p> + + + + <p>The <code>result</code> of an <code>IndexExpression</code> must specialize the <code>result</code> parameter of the first <code>argument</code> of the <code>IndexExpression</code>, unless that <code>result</code> already directly or indirectly specializes the <code>DataType</code> <em><code>Collections::Array</code></em> from the Kernel Data Type Library.</p> + + + OCL2.0 + arguments->notEmpty() and +not arguments->first().result.specializesFromLibrary('Collections::Array') implies + result.specializes(arguments->first().result) + + + + + <p>The <code>operator</code> of an <code>IndexExpression</code> must be <code>"#"</code>.</p> + + + OCL2.0 + operator = '#' + + + + + + + + + + + <p>An <code>InstantiationExpression</code> is an <code>Expression</code> that instantiates its <code>instantiatedType</code>, binding some or all of the <code>features</code> of that <code>Type</code> to the <code>results</code> of its <code>arguments</code>.</p> - <p><code>InstantiationExpression</code> is abstract, with concrete subclasses <code>InvocationExpression</code> and <code>ConstructorExpression</code>.</p> - - - - <p>An <code>InstantiationExpression</code> must own its <code>result</code> parameter.</p> - - - OCL2.0 - result.owningType = self - - - - - <p>The <code>instantiatedType</code> of an <code>InstantiationExpression</code> is given by the result of the <code>instantiatedType()</code> operation.</p> - - - OCL2.0 - instantiatedType = instantiatedType() - - - - - <p>An <code>InstantiationExpression</code> must have an <code>InstantiatedType</code>.</p> - - - OCL2.0 - instantiatedType() <> null - - - - - - <p>The <code>Expressions</code> whose <code>results</code> are bound to <code>features</code> of the <code>instantiatedType</code>. The <code>arguments</code> are ordered consistent with the order of the <code>features</code>, though they may not be one-to-one with all the <code>features</code>.</p> +<p><code>InstantiationExpression</code> is abstract, with concrete subclasses <code>InvocationExpression</code> and <code>ConstructorExpression</code>.</p> + + + + <p>An <code>InstantiationExpression</code> must own its <code>result</code> parameter.</p> + + + OCL2.0 + result.owningType = self + + + + + <p>The <code>instantiatedType</code> of an <code>InstantiationExpression</code> is given by the result of the <code>instantiatedType()</code> operation.</p> + + + OCL2.0 + instantiatedType = instantiatedType() + + + + + <p>An <code>InstantiationExpression</code> must have an <code>InstantiatedType</code>.</p> + + + OCL2.0 + instantiatedType() <> null + + + + + + <p>The <code>Expressions</code> whose <code>results</code> are bound to <code>features</code> of the <code>instantiatedType</code>. The <code>arguments</code> are ordered consistent with the order of the <code>features</code>, though they may not be one-to-one with all the <code>features</code>.</p> - <p><strong>Note.</strong> The derivation of <code>argument</code> is given in the concrete subclasses of <code>InstantiationExpression</code>.</p> - - - - - - - <p>The <code>Type</code> that is being instantiated.</p> - - - - - - - <p>Return the <code>Type</code> to act as the <code>instantiatedType</code> for this <code>InstantiationExpression</code>. By default, this is the <code>memberElement</code> of the first <code>ownedMembership</code> that is not a <code>FeatureMembership</code>, which must be a <code>Type</code>.</p> +<p><strong>Note.</strong> The derivation of <code>argument</code> is given in the concrete subclasses of <code>InstantiationExpression</code>.</p> + + + + + + + <p>The <code>Type</code> that is being instantiated.</p> + + + + + + + <p>Return the <code>Type</code> to act as the <code>instantiatedType</code> for this <code>InstantiationExpression</code>. By default, this is the <code>memberElement</code> of the first <code>ownedMembership</code> that is not a <code>FeatureMembership</code>, which must be a <code>Type</code>.</p> - <p><b>Note.</b> This operation is overridden in the subclass <code>OperatorExpression</code>.</p> - - - - OCL2.0 - let members : Sequence(Element) = ownedMembership-> - reject(oclIsKindOf(FeatureMembership)).memberElement in - if members->isEmpty() or not members->first().oclIsKindOf(Type) then null - else typeMembers->first().oclAsType(Type) - endif - - - - - - - - - - - - - - - - - <p>A <code>ConstructorExpression</code> is an <code>InstantiationExpression</code> whose <code>result</code> specializes its <code>instantiatedType</code>, binding some or all of the <code>features</code> of the <code>instantiatedType</code> to the <code>results</code> of its <code>argument</code> <code>Expressions</code>.</p> - - - - <p>The <code>arguments</code> of a <code>ConstructorExpression</code> are the <code>value</code> <code>Expressions</code> of the <code>FeatureValues</code> of the <code>ownedFeatures</code> of its <code>result</code> parameter, in an order corresponding to the order of the <code>features</code> of the <code>instantiatedType</code> that the <code>result</code> <code>ownedFeatures</code> redefine.</p> - - - OCL2.0 - instantiatedType.feature->collect(f | - result.ownedFeatures->select(redefines(f)).valuation-> - select(v | v <> null).value - ) - - - - - <p>Two different <code>ownedFeatures</code> of the <code>result</code> of a <code>ConstructorExpression</code> must not redefine the same <code>feature</code> of the <code>instantiatedType</code> of the <code>ConstructorExpression</code>.</p> - - - OCL2.0 - let features : OrderedSet(Feature) = instantiatedType.feature-> - select(visibility = VisibilityKind::public) in - result.ownedFeature->forAll(f1 | result.ownedFeature->forAll(f2 | - f1 <> f2 implies - f1.ownedRedefinition.redefinedFeature-> - intersection(f2.ownedRedefinition.redefinedFeature)-> - intersection(features)->isEmpty())) - - - - - <p>Each <code>ownedFeature</code> of the result of a <code>ConstructionExpression</code> must redefine exactly one public <code>feature</code> of the <code>instantiatedType</code> of the <code>ConstructorExpression</code>.</p> - - - OCL2.0 - let features : OrderedSet(Feature) = instantiatedType.feature-> - select(owningMembership.visibility = VisibilityKind::public) in - result.ownedFeature->forAll(f | - f.ownedRedefinition.redefinedFeature-> - intersection(features)->size() = 1) - - - - - <p>The <code>result</code> of a <code>ConstructorExpression</code> must own a <code>BindingConnector</code> between the <code>featureWithValue</code> and <code>value</code> <code>Expression</code> of any <code>FeatureValue</code> that is the effective default value for a <code>feature</code> of the <code>instantiatedType</code> of the <code>InvocationExpression</code>.</p> - - - OCL2.0 - TBD - - - - - <p>A <code>ConstructorExpression</code> must directly or indirectly specialize the <code>Expression</code> <em><code>Performances::constructorEvaluations</code></em> from the Kernel Semantic Library.</p> - - - OCL2.0 - specializes('Performances::constructorEvaluations') - - - - - <p>The <code>result</code> of a <code>ConstructorExpression</code> must specialize the <code>instantiatedType</code> of the <code>ConstructorExpression</code>.</p> - - - OCL2.0 - result.specializes(instantiatedType) - - - - - <p>A <code>ConstructorExpression</code> must not have any <code>ownedFeatures</code> other than its <code>result</code>.</p> - - - OCL2.0 - ownedFeatures->excluding(result)->isEmpty() - - - - - - <p>A <code>ConstructorExpression</code> is model-level evaluable if all its argument <code>Expressions</code> are model-level evaluable.</p> - - - - - OCL2.0 - argument->forAll(modelLevelEvaluable(visited)) - - - - - - - - - - - - - - - <p>A <code>InstantiationExpression</code> that has a certain <code>argument</code> <code>Expression</code>.</p> - - - - - - - - - - <p>A <code>Structure</code> is a <code>Class</code> of objects in the modeled universe that are primarily structural in nature. While such an object is not itself behavioral, it may be involved in and acted on by <code>Behaviors</code>, and it may be the performer of some of them.</p> - - - - - <p>A <code>Structure</code> must directly or indirectly specialize the base <code>Structure</code> <code><em>Objects::Object</em></code> from the Kernel Semantic Library.</p> - - - OCL2.0 - specializesFromLibrary('Objects::Object') - - - - - <p>A <code>Structure</code> must not specialize a <code>Behavior</code>.</p> - - - OCL2.0 - ownedSpecialization.general->forAll(not oclIsKindOf(Behavior)) - - - - - - - - - - <p>The Expressions that have a certain Feature its owned or inherited <code>result</code>.</p> - - - - - - - - <p>A <code>Predicate</code> is a <code>Function</code> whose <code>result</code> <code>parameter</code> has type <code><em>Boolean</em></code> and multiplicity <code>1..1</code>.</p> - - - - - <p>A <code>Predicate</code> must directly or indirectly specialize the base <code>Predicate</code> <code><em>Performances::BooleanEvaluation</em></code> from the Kernel Semantic Library.</p> - - - OCL2.0 - specializesFromLibrary('Performances::BooleanEvaluation') - - - - - - - <p>A <code>ReturnParameterMembership</code> is a <code>ParameterMembership</code> that indicates that the <code>ownedMemberParameter</code> is the <code>result</code> <code>parameter</code> of a <code>Function</code> or <code>Expression</code>. The <code>direction</code> of the <code>ownedMemberParameter</code> must be <code>out</code>.</p> - - - - - <p>The <code>owningType</code> of a <code>ReturnParameterMembership</code> must be a <code>Function</code> or <code>Expression</code>.</p> - - - OCL2.0 - owningType.oclIsKindOf(Function) or owningType.oclIsKindOf(Expression) - - - - - - <p>The <code>ownedMemberParameter</code> of a <code>ReturnParameterMembership</code> must have direction <code>out</code>. (This is a leaf operation that cannot be further redefined.)</p> - - - - OCL2.0 - FeatureDirectionKind::out - - - - - - - - - - - - <p>The Functions that have a certain Feature its owned or inherited <code>result</code>.</p> - - - - - - - - <p>An <code>Invariant</code> is a <code>BooleanExpression</code> that is asserted to have a specific <code><em>Boolean</em></code> result value. If <code>isNegated = false</code>, then the result is asserted to be true. If <code>isNegated = true</code>, then the result is asserted to be false.</p> - - - - - <p>An <code>Invariant</code> must directly or indirectly specialize either of the following <code>BooleanExpressions</code> from the Kernel Semantic Library: <code><em>Performances::trueEvaluations</em></code>, if <code>isNegated = false</code>, or <code><em>Performances::falseEvaluations</em></code>, if <code>isNegated = true</code>.</p> - - - OCL2.0 - if isNegated then - specializesFromLibrary('Performances::falseEvaluations') - else - specializesFromLibrary('Performances::trueEvaluations') - endif - - - - - - <p>Whether this <code>Invariant</code> is asserted to be false rather than true.</p> - - - - - - - - - <p>A <code>BooleanExpression</code> is a <em><code>Boolean</code></em>-valued <code>Expression</code> whose type is a <code>Predicate</code>. It represents a logical condition resulting from the evaluation of the <code>Predicate</code>.</p> - - - - - <p>A <code>BooleanExpression</code> must directly or indirectly specialize the base <code>BooleanExpression</code> <code><em>Performances::booleanEvaluations</em></code> from the Kernel Semantic Library.</p> - - - OCL2.0 - specializesFromLibrary('Performances::booleanEvaluations') - - - - - - <p>The Predicate that types the Expression.</p> - - - - <p>The <code>Predicate</code> that types this <code>BooleanExpression</code>.</p> - - - - - - - - <p>An <code>Expression</code> is a <code>Step</code> that is typed by a <code>Function</code>. An <code>Expression</code> that also has a <code>Function</code> as its <code>featuringType</code> is a computational step within that <code>Function</code>. An <code>Expression</code> always has a single <code>result</code> parameter, which redefines the <code>result</code> parameter of its defining <code>function</code>. This allows <code>Expressions</code> to be interconnected in tree structures, in which inputs to each <code>Expression</code> in the tree are determined as the results of other <code>Expression</code> in the tree.</p> - - - - - <p>Whether an <code>Expression</code> <code>isModelLevelEvaluable</code> is determined by the <code>modelLevelEvaluable()</code> operation.</p> - - - OCL2.0 - isModelLevelEvaluable = modelLevelEvaluable(Set(Element){}) - - - - - <p>An <code>Expression</code> must directly or indirectly specialize the base <code>Expression</code> <code><em>Performances::evaluations</em></code> from the Kernel Semantic Library.</p> - - - OCL2.0 - specializesFromLibrary('Performances::evaluations') - - - - - <p>If this <code>Expression</code> is owned by a <code>FeatureValue</code>, then it must have the same <code>featuringTypes</code> as the <code>featureWithValue</code> of the <code>FeatureValue</code>.</p> - - - OCL2.0 - owningMembership <> null and - owningMembership.oclIsKindOf(FeatureValue) implies - let featureWithValue : Feature = - owningMembership.oclAsType(FeatureValue).featureWithValue in - featuringType = featureWithValue.featuringType - - - - - <p>If an <code>Expression</code> has an <code>Expression</code> owned via a <code>ResultExpressionMembership</code>, then the owning <code>Expression</code> must also own a <code>BindingConnector</code> between its <code>result</code> <code>parameter</code> and the <code>result</code> <code>parameter</code> of the result <code>Expression</code>.</p> - - - OCL2.0 - ownedMembership.selectByKind(ResultExpressionMembership)-> - forAll(mem | ownedFeature.selectByKind(BindingConnector)-> - exists(binding | - binding.relatedFeature->includes(result) and - binding.relatedFeature->includes(mem.ownedResultExpression.result))) - - - - - <p>The <code>result</code> parameter of an <code>Expression</code> is its <code>parameter</code> owned (possibly in a supertype) via a <code>ReturnParameterMembership</code> (if any).</p> - - - OCL2.0 - result = - let resultParams : Sequence(Feature) = - featureMemberships-> - selectByKind(ReturnParameterMembership). - ownedMemberParameter in - if resultParams->notEmpty() then resultParams->first() - else null - endif - - - - - - <p>An <code>Expression</code> must have exactly one <code>featureMembership</code> (owned or inherited) that is a <code>ResultParameterMembership</code>.</p> - - - OCL2.0 - featureMembership-> - selectByKind(ReturnParameterMembership)-> - size() = 1 - - - - - <p>An <code>Expression</code> must have at most one <code>ResultExpressionMembership</code>.</p> - - - OCL2.0 - membership->selectByKind(ResultExpressionMembership)->size() <= 1 - - - - - - <p>The <code>Function</code> that types this <code>Expression</code>.</p> - - - - <p>This is the Function that types the Expression.</p> - - - - - - - - <p><p>An <code>output</code> <code>parameter</code> of the <code>Expression</code> whose value is the result of the <code>Expression</code>. The result of an <code>Expression</code> is either inherited from its <code>function</code> or it is related to the <code>Expression</code> via a <code>ReturnParameterMembership</code>, in which case it redefines the <code>result</code> <code>parameter</code> of its <code>function</code>.</p> - - - - - - - - <p>Whether this <code>Expression</code> meets the constraints necessary to be evaluated at <em>model level</em>, that is, using metadata within the model.</p> - - - - - - <p>Return whether this <code>Expression</code> is model-level evaluable. The <code>visited</code> parameter is used to track possible circular <code>Feature</code> references made from <code>FeatureReferenceExpressions</code> (see the redefinition of this operation for <code>FeatureReferenceExpression</code>). Such circular references are not allowed in model-level evaluable expressions.</p> +<p><b>Note.</b> This operation is overridden in the subclass <code>OperatorExpression</code>.</p> + + + + OCL2.0 + let members : Sequence(Element) = ownedMembership-> + reject(oclIsKindOf(FeatureMembership)).memberElement in +if members->isEmpty() or not members->first().oclIsKindOf(Type) then null +else typeMembers->first().oclAsType(Type) +endif + + + + + + + + + + + + + + + + + <p>A <code>ConstructorExpression</code> is an <code>InstantiationExpression</code> whose <code>result</code> specializes its <code>instantiatedType</code>, binding some or all of the <code>features</code> of the <code>instantiatedType</code> to the <code>results</code> of its <code>argument</code> <code>Expressions</code>.</p> + + + + <p>The <code>arguments</code> of a <code>ConstructorExpression</code> are the <code>value</code> <code>Expressions</code> of the <code>FeatureValues</code> of the <code>ownedFeatures</code> of its <code>result</code> parameter, in an order corresponding to the order of the <code>features</code> of the <code>instantiatedType</code> that the <code>result</code> <code>ownedFeatures</code> redefine.</p> + + + OCL2.0 + instantiatedType.feature->collect(f | + result.ownedFeatures->select(redefines(f)).valuation-> + select(v | v <> null).value +) + + + + + <p>Two different <code>ownedFeatures</code> of the <code>result</code> of a <code>ConstructorExpression</code> must not redefine the same <code>feature</code> of the <code>instantiatedType</code> of the <code>ConstructorExpression</code>.</p> + + + OCL2.0 + let features : OrderedSet(Feature) = instantiatedType.feature-> + select(visibility = VisibilityKind::public) in +result.ownedFeature->forAll(f1 | result.ownedFeature->forAll(f2 | + f1 <> f2 implies + f1.ownedRedefinition.redefinedFeature-> + intersection(f2.ownedRedefinition.redefinedFeature)-> + intersection(features)->isEmpty())) + + + + + <p>Each <code>ownedFeature</code> of the result of a <code>ConstructionExpression</code> must redefine exactly one public <code>feature</code> of the <code>instantiatedType</code> of the <code>ConstructorExpression</code>.</p> + + + OCL2.0 + let features : OrderedSet(Feature) = instantiatedType.feature-> + select(owningMembership.visibility = VisibilityKind::public) in +result.ownedFeature->forAll(f | + f.ownedRedefinition.redefinedFeature-> + intersection(features)->size() = 1) + + + + + <p>The <code>result</code> of a <code>ConstructorExpression</code> must own a <code>BindingConnector</code> between the <code>featureWithValue</code> and <code>value</code> <code>Expression</code> of any <code>FeatureValue</code> that is the effective default value for a <code>feature</code> of the <code>instantiatedType</code> of the <code>InvocationExpression</code>.</p> + + + OCL2.0 + TBD + + + + + <p>A <code>ConstructorExpression</code> must directly or indirectly specialize the <code>Expression</code> <em><code>Performances::constructorEvaluations</code></em> from the Kernel Semantic Library.</p> + + + OCL2.0 + specializes('Performances::constructorEvaluations') + + + + + <p>The <code>result</code> of a <code>ConstructorExpression</code> must specialize the <code>instantiatedType</code> of the <code>ConstructorExpression</code>.</p> + + + OCL2.0 + result.specializes(instantiatedType) + + + + + <p>A <code>ConstructorExpression</code> must not have any <code>ownedFeatures</code> other than its <code>result</code>.</p> + + + OCL2.0 + ownedFeatures->excluding(result)->isEmpty() + + + + + + <p>A <code>ConstructorExpression</code> is model-level evaluable if all its argument <code>Expressions</code> are model-level evaluable.</p> + + + + + OCL2.0 + argument->forAll(modelLevelEvaluable(visited)) + + + + + + + + + + + + + + + <p>A <code>InstantiationExpression</code> that has a certain <code>argument</code> <code>Expression</code>.</p> + + + + + + + + + + <p>A <code>Structure</code> is a <code>Class</code> of objects in the modeled universe that are primarily structural in nature. While such an object is not itself behavioral, it may be involved in and acted on by <code>Behaviors</code>, and it may be the performer of some of them.</p> + + + + + <p>A <code>Structure</code> must directly or indirectly specialize the base <code>Structure</code> <code><em>Objects::Object</em></code> from the Kernel Semantic Library.</p> + + + OCL2.0 + specializesFromLibrary('Objects::Object') + + + + + <p>A <code>Structure</code> must not specialize a <code>Behavior</code>.</p> + + + OCL2.0 + ownedSpecialization.general->forAll(not oclIsKindOf(Behavior)) + + + + + + + + + + <p>The Expressions that have a certain Feature its owned or inherited <code>result</code>.</p> + + + + + + + + <p>A <code>Predicate</code> is a <code>Function</code> whose <code>result</code> <code>parameter</code> has type <code><em>Boolean</em></code> and multiplicity <code>1..1</code>.</p> + + + + + <p>A <code>Predicate</code> must directly or indirectly specialize the base <code>Predicate</code> <code><em>Performances::BooleanEvaluation</em></code> from the Kernel Semantic Library.</p> + + + OCL2.0 + specializesFromLibrary('Performances::BooleanEvaluation') + + + + + + + <p>A <code>ReturnParameterMembership</code> is a <code>ParameterMembership</code> that indicates that the <code>ownedMemberParameter</code> is the <code>result</code> <code>parameter</code> of a <code>Function</code> or <code>Expression</code>. The <code>direction</code> of the <code>ownedMemberParameter</code> must be <code>out</code>.</p> + + + + + <p>The <code>owningType</code> of a <code>ReturnParameterMembership</code> must be a <code>Function</code> or <code>Expression</code>.</p> + + + OCL2.0 + owningType.oclIsKindOf(Function) or owningType.oclIsKindOf(Expression) + + + + + + <p>The <code>ownedMemberParameter</code> of a <code>ReturnParameterMembership</code> must have direction <code>out</code>. (This is a leaf operation that cannot be further redefined.)</p> + + + + OCL2.0 + FeatureDirectionKind::out + + + + + + + + + + + + <p>The Functions that have a certain Feature its owned or inherited <code>result</code>.</p> + + + + + + + + <p>An <code>Invariant</code> is a <code>BooleanExpression</code> that is asserted to have a specific <code><em>Boolean</em></code> result value. If <code>isNegated = false</code>, then the result is asserted to be true. If <code>isNegated = true</code>, then the result is asserted to be false.</p> + + + + + <p>An <code>Invariant</code> must directly or indirectly specialize either of the following <code>BooleanExpressions</code> from the Kernel Semantic Library: <code><em>Performances::trueEvaluations</em></code>, if <code>isNegated = false</code>, or <code><em>Performances::falseEvaluations</em></code>, if <code>isNegated = true</code>.</p> + + + OCL2.0 + if isNegated then + specializesFromLibrary('Performances::falseEvaluations') +else + specializesFromLibrary('Performances::trueEvaluations') +endif + + + + + + <p>Whether this <code>Invariant</code> is asserted to be false rather than true.</p> + + + + + + + + + <p>A <code>BooleanExpression</code> is a <em><code>Boolean</code></em>-valued <code>Expression</code> whose type is a <code>Predicate</code>. It represents a logical condition resulting from the evaluation of the <code>Predicate</code>.</p> + + + + + <p>A <code>BooleanExpression</code> must directly or indirectly specialize the base <code>BooleanExpression</code> <code><em>Performances::booleanEvaluations</em></code> from the Kernel Semantic Library.</p> + + + OCL2.0 + specializesFromLibrary('Performances::booleanEvaluations') + + + + + + <p>The Predicate that types the Expression.</p> + + + + <p>The <code>Predicate</code> that types this <code>BooleanExpression</code>.</p> + + + + + + + + <p>An <code>Expression</code> is a <code>Step</code> that is typed by a <code>Function</code>. An <code>Expression</code> that also has a <code>Function</code> as its <code>featuringType</code> is a computational step within that <code>Function</code>. An <code>Expression</code> always has a single <code>result</code> parameter, which redefines the <code>result</code> parameter of its defining <code>function</code>. This allows <code>Expressions</code> to be interconnected in tree structures, in which inputs to each <code>Expression</code> in the tree are determined as the results of other <code>Expression</code> in the tree.</p> + + + + + <p>Whether an <code>Expression</code> <code>isModelLevelEvaluable</code> is determined by the <code>modelLevelEvaluable()</code> operation.</p> + + + OCL2.0 + isModelLevelEvaluable = modelLevelEvaluable(Set(Element){}) + + + + + <p>An <code>Expression</code> must directly or indirectly specialize the base <code>Expression</code> <code><em>Performances::evaluations</em></code> from the Kernel Semantic Library.</p> + + + OCL2.0 + specializesFromLibrary('Performances::evaluations') + + + + + <p>If this <code>Expression</code> is owned by a <code>FeatureValue</code>, then it must have the same <code>featuringTypes</code> as the <code>featureWithValue</code> of the <code>FeatureValue</code>.</p> + + + OCL2.0 + owningMembership <> null and +owningMembership.oclIsKindOf(FeatureValue) implies + let featureWithValue : Feature = + owningMembership.oclAsType(FeatureValue).featureWithValue in + featuringType = featureWithValue.featuringType + + + + + <p>If an <code>Expression</code> has an <code>Expression</code> owned via a <code>ResultExpressionMembership</code>, then the owning <code>Expression</code> must also own a <code>BindingConnector</code> between its <code>result</code> <code>parameter</code> and the <code>result</code> <code>parameter</code> of the result <code>Expression</code>.</p> + + + OCL2.0 + ownedMembership.selectByKind(ResultExpressionMembership)-> + forAll(mem | ownedFeature.selectByKind(BindingConnector)-> + exists(binding | + binding.relatedFeature->includes(result) and + binding.relatedFeature->includes(mem.ownedResultExpression.result))) + + + + + <p>The <code>result</code> parameter of an <code>Expression</code> is its <code>parameter</code> owned (possibly in a supertype) via a <code>ReturnParameterMembership</code> (if any).</p> + + + OCL2.0 + result = + let resultParams : Sequence(Feature) = + featureMemberships-> + selectByKind(ReturnParameterMembership). + ownedMemberParameter in + if resultParams->notEmpty() then resultParams->first() + else null + endif + + + + + + <p>An <code>Expression</code> must have exactly one <code>featureMembership</code> (owned or inherited) that is a <code>ResultParameterMembership</code>.</p> + + + OCL2.0 + featureMembership-> + selectByKind(ReturnParameterMembership)-> + size() = 1 + + + + + <p>An <code>Expression</code> must have at most one <code>ResultExpressionMembership</code>.</p> + + + OCL2.0 + membership->selectByKind(ResultExpressionMembership)->size() <= 1 + + + + + + <p>The <code>Function</code> that types this <code>Expression</code>.</p> + + + + <p>This is the Function that types the Expression.</p> + + + + + + + + <p><p>An <code>output</code> <code>parameter</code> of the <code>Expression</code> whose value is the result of the <code>Expression</code>. The result of an <code>Expression</code> is either inherited from its <code>function</code> or it is related to the <code>Expression</code> via a <code>ReturnParameterMembership</code>, in which case it redefines the <code>result</code> <code>parameter</code> of its <code>function</code>.</p> + + + + + + + + <p>Whether this <code>Expression</code> meets the constraints necessary to be evaluated at <em>model level</em>, that is, using metadata within the model.</p> + + + + + + <p>Return whether this <code>Expression</code> is model-level evaluable. The <code>visited</code> parameter is used to track possible circular <code>Feature</code> references made from <code>FeatureReferenceExpressions</code> (see the redefinition of this operation for <code>FeatureReferenceExpression</code>). Such circular references are not allowed in model-level evaluable expressions.</p> - <p>An <code>Expression</code> that is not otherwise specialized is model-level evaluable if it has no (non-implied) <code>ownedSpecializations</code> and all its <code>ownedFeatures</code> are either <code>in</code> parameters, the <code>result</code> <code>parameter</code> or a result <code>Expression</code> owned via a <code>ResultExpressionMembership</code>. The <code>parameters</code> must not have any <code>ownedFeatures</code> or a <code>FeatureValue</code>, and the result <code>Expression</code> must be model-level evaluable.</p> - - - - OCL2.0 - ownedSpecialization->forAll(isImplied) and - ownedFeature->forAll(f | - (directionOf(f) = FeatureDirectionKind::_'in' or f = result) and - f.ownedFeature->isEmpty() and f.valuation = null or - f.owningFeatureMembership.oclIsKindOf(ResultExpressionMembership) and - f.oclAsType(Expression).modelLevelEvaluable(visited) - - - - - - - - - - - - - - <p>If this <code>Expression</code> <code>isModelLevelEvaluable</code>, then evaluate it using the <code>target</code> as the context <code>Element</code> for resolving <code>Feature</code> names and testing classification. The result is a collection of <code>Elements</code>, which, for a fully evaluable <code>Expression</code>, will be a <code>LiteralExpression</code> or a <code>Feature</code> that is not an <code>Expression</code>.</p> - - - - OCL2.0 - isModelLevelEvaluable - - - - - OCL2.0 - let resultExprs : Sequence(Expression) = - ownedFeatureMembership-> - selectByKind(ResultExpressionMembership). - ownedResultExpression in - if resultExpr->isEmpty() then Sequence{} - else resultExprs->first().evaluate(target) - endif - - - - - - - - - - - <p>Model-level evaluate this <code>Expression</code> with the given <code>target</code>. If the result is a <code>LiteralBoolean</code>, return its <code>value</code>. Otherwise return <code>false</code>.</p> - - - - - OCL2.0 - let results: Sequence(Element) = evaluate(target) in - result->size() = 1 and - results->first().oclIsKindOf(LiteralBoolean) and - results->first().oclAsType(LiteralBoolean).value - - - - - - - - - - - - <p>The ResultExpressionMembership that owns the <code>ownedResultExpression</code>.</p> - - - - - - - - - <p>The Functions that hasve a certain <code>expression</code> as a step.</p> - - - - - - - - <p>A <code>Function</code> is a <code>Behavior</code> that has an <code>out</code> <code>parameter</code> that is identified as its <code>result</code>. A <code>Function</code> represents the performance of a calculation that produces the values of its <code>result</code> <code>parameter</code>. This calculation may be decomposed into <code>Expressions</code> that are <code>steps</code> of the <code>Function</code>.</p> - - - - - <p>A <code>Function</code> must have exactly one <code>featureMembership</code> (owned or inherited) that is a <code>ResultParameterMembership</code>.</p> - - - OCL2.0 - featureMembership-> - selectByKind(ReturnParameterMembership)-> - size() = 1 - - - - - <p>A <code>Function</code> must directly or indirectly specialize the base <code>Function</code> <code><em>Performances::Evaluation</em></code> from the Kernel Semantic Library.</p> - - - OCL2.0 - specializesFromLibrary('Performances::Evaluation') - - - - - <p>If a <code>Function</code> has an <code>Expression</code> owned via a <code>ResultExpressionMembership</code>, then the owning <code>Function</code> must also own a <code>BindingConnector</code> between its <code>result</code> <code>parameter</code> and the <code>result</code> <code>parameter</code> of the result <code>Expression</code>.</p> - - - OCL2.0 - ownedMembership.selectByKind(ResultExpressionMembership)-> - forAll(mem | ownedFeature.selectByKind(BindingConnector)-> - exists(binding | - binding.relatedFeature->includes(result) and - binding.relatedFeature->includes(mem.ownedResultExpression.result))) - - - - - <p>The <code>result</code> <code>parameter</code> of a <code>Function</code> is its <code>parameter</code> owned (possibly in a supertype) via a <code>ReturnParameterMembership</code> (if any).</p> - - - OCL2.0 - result = - let resultParams : Sequence(Feature) = - featureMemberships-> - selectByKind(ReturnParameterMembership). - ownedMemberParameter in - if resultParams->notEmpty() then resultParams->first() - else null - endif - - - - - <p>A <code>Function</code> must have at most one <code>ResultExpressionMembership</code>.</p> - - - OCL2.0 - membership->selectByKind(ResultExpressionMembership)->size() <= 1 - - - - - - <p>The <code>Expressions</code> that are <code>steps</code> in the calculation of the <code>result</code> of this <code>Function</code>.</p> - - - - <p>The set of expressions that represent computational steps or parts of a system of equations within the Function.</p> - - - - - - - - <p>The object or value that is the result of evaluating the Function.</p> - - - <p>The <code>result</code> <code>parameter</code> of the <code>Function</code>, which is owned by the <code>Function</code> via a <code>ReturnParameterMembership</code>.</p> - - - - - - - - <p>Whether this <code>Function</code> can be used as the <code>function</code> of a model-level evaluable <code>InvocationExpression</code>. Certain <code>Functions</code> from the Kernel Functions Library are considered to have <code>isModelLevelEvaluable = true</code>. For all other <code>Functions</code> it is <code>false</code>.</p> +<p>An <code>Expression</code> that is not otherwise specialized is model-level evaluable if it has no (non-implied) <code>ownedSpecializations</code> and all its <code>ownedFeatures</code> are either <code>in</code> parameters, the <code>result</code> <code>parameter</code> or a result <code>Expression</code> owned via a <code>ResultExpressionMembership</code>. The <code>parameters</code> must not have any <code>ownedFeatures</code> or a <code>FeatureValue</code>, and the result <code>Expression</code> must be model-level evaluable.</p> + + + + OCL2.0 + ownedSpecialization->forAll(isImplied) and +ownedFeature->forAll(f | + (directionOf(f) = FeatureDirectionKind::_'in' or f = result) and + f.ownedFeature->isEmpty() and f.valuation = null or + f.owningFeatureMembership.oclIsKindOf(ResultExpressionMembership) and + f.oclAsType(Expression).modelLevelEvaluable(visited) + + + + + + + + + + + + + + <p>If this <code>Expression</code> <code>isModelLevelEvaluable</code>, then evaluate it using the <code>target</code> as the context <code>Element</code> for resolving <code>Feature</code> names and testing classification. The result is a collection of <code>Elements</code>, which, for a fully evaluable <code>Expression</code>, will be a <code>LiteralExpression</code> or a <code>Feature</code> that is not an <code>Expression</code>.</p> + + + + OCL2.0 + isModelLevelEvaluable + + + + + OCL2.0 + let resultExprs : Sequence(Expression) = + ownedFeatureMembership-> + selectByKind(ResultExpressionMembership). + ownedResultExpression in +if resultExpr->isEmpty() then Sequence{} +else resultExprs->first().evaluate(target) +endif + + + + + + + + + + + <p>Model-level evaluate this <code>Expression</code> with the given <code>target</code>. If the result is a <code>LiteralBoolean</code>, return its <code>value</code>. Otherwise return <code>false</code>.</p> + + + + + OCL2.0 + let results: Sequence(Element) = evaluate(target) in + result->size() = 1 and + results->first().oclIsKindOf(LiteralBoolean) and + results->first().oclAsType(LiteralBoolean).value + + + + + + + + + + + + <p>The ResultExpressionMembership that owns the <code>ownedResultExpression</code>.</p> + + + + + + + + + <p>The Functions that hasve a certain <code>expression</code> as a step.</p> + + + + + + + + <p>A <code>Function</code> is a <code>Behavior</code> that has an <code>out</code> <code>parameter</code> that is identified as its <code>result</code>. A <code>Function</code> represents the performance of a calculation that produces the values of its <code>result</code> <code>parameter</code>. This calculation may be decomposed into <code>Expressions</code> that are <code>steps</code> of the <code>Function</code>.</p> + + + + + <p>A <code>Function</code> must have exactly one <code>featureMembership</code> (owned or inherited) that is a <code>ResultParameterMembership</code>.</p> + + + OCL2.0 + featureMembership-> + selectByKind(ReturnParameterMembership)-> + size() = 1 + + + + + <p>A <code>Function</code> must directly or indirectly specialize the base <code>Function</code> <code><em>Performances::Evaluation</em></code> from the Kernel Semantic Library.</p> + + + OCL2.0 + specializesFromLibrary('Performances::Evaluation') + + + + + <p>If a <code>Function</code> has an <code>Expression</code> owned via a <code>ResultExpressionMembership</code>, then the owning <code>Function</code> must also own a <code>BindingConnector</code> between its <code>result</code> <code>parameter</code> and the <code>result</code> <code>parameter</code> of the result <code>Expression</code>.</p> + + + OCL2.0 + ownedMembership.selectByKind(ResultExpressionMembership)-> + forAll(mem | ownedFeature.selectByKind(BindingConnector)-> + exists(binding | + binding.relatedFeature->includes(result) and + binding.relatedFeature->includes(mem.ownedResultExpression.result))) + + + + + <p>The <code>result</code> <code>parameter</code> of a <code>Function</code> is its <code>parameter</code> owned (possibly in a supertype) via a <code>ReturnParameterMembership</code> (if any).</p> + + + OCL2.0 + result = + let resultParams : Sequence(Feature) = + featureMemberships-> + selectByKind(ReturnParameterMembership). + ownedMemberParameter in + if resultParams->notEmpty() then resultParams->first() + else null + endif + + + + + <p>A <code>Function</code> must have at most one <code>ResultExpressionMembership</code>.</p> + + + OCL2.0 + membership->selectByKind(ResultExpressionMembership)->size() <= 1 + + + + + + <p>The <code>Expressions</code> that are <code>steps</code> in the calculation of the <code>result</code> of this <code>Function</code>.</p> + + + + <p>The set of expressions that represent computational steps or parts of a system of equations within the Function.</p> + + + + + + + + <p>The object or value that is the result of evaluating the Function.</p> + + + <p>The <code>result</code> <code>parameter</code> of the <code>Function</code>, which is owned by the <code>Function</code> via a <code>ReturnParameterMembership</code>.</p> + + + + + + + + <p>Whether this <code>Function</code> can be used as the <code>function</code> of a model-level evaluable <code>InvocationExpression</code>. Certain <code>Functions</code> from the Kernel Functions Library are considered to have <code>isModelLevelEvaluable = true</code>. For all other <code>Functions</code> it is <code>false</code>.</p> - <p><strong>Note:</strong> See the specification of the KerML concrete syntax notation for <code>Expressions</code> for an identification of which library <code>Functions</code> are model-level evaluable.</p> - - - - - - - - <p>The Expressions that are typed by a certain <code>function</code>.</p> - - - - - - - - <p>A <code>ResultExpressionMembership</code> is a <code>FeatureMembership</code> that indicates that the <code>ownedResultExpression</code> provides the result values for the <code>Function</code> or <code>Expression</code> that owns it. The owning <code>Function</code> or <code>Expression</code> must contain a <code>BindingConnector</code> between the <code>result</code> <code>parameter</code> of the <code>ownedResultExpression</code> and the <code>result</code> <code>parameter</code> of the owning <code>Function</code> or <code>Expression</code>.</p> - - - - - <p>The <code>owningType</code> of a <code>ResultExpressionMembership</code> must be a <code>Function</code> or <code>Expression</code>.</p> - - - OCL2.0 - owningType.oclIsKindOf(Function) or owningType.oclIsKindOf(Expression) - - - - - - <p>The <code>Expression</code> that provides the result for the owner of the <code>ResultExpressionMembership</code>.</p> - - - - - - - - - - - - - - - - - <p>A <code>MultiplicityRange</code> is a <code>Multiplicity</code> whose value is defined to be the (inclusive) range of natural numbers given by the result of a <code>lowerBound</code> <code>Expression</code> and the result of an <code>upperBound</code> <code>Expression</code>. The result of these <code>Expressions</code> shall be of type <code><em>Natural</em></code>. If the result of the <code>upperBound</code> <code>Expression</code> is the unbounded value <code>*</code>, then the specified range includes all natural numbers greater than or equal to the <code>lowerBound</code> value. If no <code>lowerBound</code> <code>Expression</code>, then the default is that the lower bound has the same value as the upper bound, except if the <code>upperBound</code> evaluates to <code>*</code>, in which case the default for the lower bound is 0.</p> - - - - - <p>The <code>bounds</code> of a <code>MultiplicityRange</code> must have the same <code>featuringTypes</code> as the <code>MultiplicityRange</code>.</p> - - - OCL2.0 - bound->forAll(b | b.featuringType = self.featuringType) - - - - - <p>The <code>results</code> of the <code>bound</code> <code>Expression(s)</code> of a <code>MultiplicityRange</code> must be typed by <code><em>ScalarValues::Intger</em></code> from the Kernel Data Types Library. If a <code>bound</code> is model-level evaluable, then it must evaluate to a non-negative value.</p> - - - OCL2.0 - bound->forAll(b | - b.result.specializesFromLibrary('ScalarValues::Integer') and - let value : UnlimitedNatural = valueOf(b) in - value <> null implies value >= 0 - ) - - - - - <p>If a <code>MultiplicityRange</code> has two <code>ownedMembers</code> that are <code>Expressions</code>, then the <code>lowerBound</code> is the first of these, otherwise it is <code>null</code>.</p> - - - OCL2.0 - lowerBound = - let ownedExpressions : Sequence(Expression) = - ownedMember->selectByKind(Expression) in - if ownedExpressions->size() < 2 then null - else ownedExpressions->first() - endif - - - - - <p>If a <code>MultiplicityRange</code> has one <code>ownedMember</code> that is an <code>Expression</code>, then this is the <code>upperBound</code>. If it has more than one <code>ownedMember</code> that is an <code>Expression</code>, then the <code>upperBound</code> is the second of those. Otherwise, it is null.</p> - - - OCL2.0 - upperBound = - let ownedExpressions : Sequence(Expression) = - ownedMember->selectByKind(Expression) in - if ownedExpressions->isEmpty() then null - else if ownedExpressions->size() = 1 then ownedExpressions->at(1) - else ownedExpressions->at(2) - endif endif - - - - - <p>The <code>bounds</code> of a <code>MultiplicityRange</code> are the <code>lowerBound</code> (if any) followed by the <code>upperBound</code>.</p> - - - OCL2.0 - bound = - if upperBound = null then Sequence{} - else if lowerBound = null then Sequence{upperBound} - else Sequence{lowerBound, upperBound} - endif endif - - - - - <p>The <code>lowerBound</code> (if any) and <code>upperBound</code> <code>Expressions</code> must be the first <code>ownedMembers</code> of a <code>MultiplicityRange</code>.</p> - - - OCL2.0 - if lowerBound = null then - ownedMember->notEmpty() and - ownedMember->at(1) = upperBound - else - ownedMember->size() > 1 and - ownedMember->at(1) = lowerBound and - ownedMember->at(2) = upperBound - endif - - - - - - <p>The <code>Expression</code> whose result provides the lower bound of the <code>MultiplicityRange</code>. If no <code>lowerBound</code> <code>Expression</code> is given, then the lower bound shall have the same value as the upper bound, unless the upper bound is unbounded (<code>*</code>), in which case the lower bound shall be 0.</p> - - - - - - - - <p>The <code>Expression</code> whose result is the upper bound of the <code>MultiplicityRange</code>.</p> - - - - - - - <p>The owned <code>Expressions</code> of the <code>MultiplicityRange</code> whose results provide its bounds. These must be the first <code>ownedMembers</code> of the <code>MultiplicityRange</code>.</p> - - - - - - - <p>Check whether this <code>MultiplicityRange</code> represents the range bounded by the given values <code>lower</code> and <code>upper</code>, presuming the <code>lowerBound</code> and <code>upperBound</code> <code>Expressions</code> are model-level evaluable.</p> - - - - OCL2.0 - valueOf(upperBound) = upper and - let lowerValue: UnlimitedNatural = valueOf(lowerBound) in - (lowerValue = lower or - lowerValue = null and - (lower = upper or - lower = 0 and upper = *)) - - - - - - - - - - - - - - - - <p>Evaluate the given <code>bound</code> <code>Expression</code> (at model level) and return the result represented as a MOF <code>UnlimitedNatural</code> value.</p> - - - - OCL2.0 - if bound = null or not bound.isModelLevelEvaluable then - null - else - let boundEval: Sequence(Element) = bound.evaluate(owningType) in - if boundEval->size() <> 1 then null else - let valueEval: Element = boundEval->at(1) in - if valueEval.oclIsKindOf(LiteralInfinity) then * - else if valueEval.oclIsKindOf(LiteralInteger) then - let value : Integer = - valueEval.oclAsKindOf(LiteralInteger).value in - if value >= 0 then value else null endif - else null - endif endif - endif - endif - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - <p>A <code>Step</code> is a <code>Feature</code> that is typed by one or more <code>Behaviors</code>. <code>Steps</code> may be used by one <code>Behavior</code> to coordinate the performance of other <code>Behaviors</code>, supporting a steady refinement of behavioral descriptions. <code>Steps</code> can be ordered in time and can be connected using <code>Flows</code> to specify things flowing between their <code>parameters</code>.</p> - - - - - <p>A <code>Step</code> must directly or indirectly specialize the base <code>Step</code> <code><em>Performances::performances</em></code> from the Kernel Semantic Library.</p> - - - OCL2.0 - specializesFromLibrary('Performances::performances') - - - - - <p>A<code>Step</code> whose <code>owningType</code> is a <code>Behavior</code> or another <code>Step</code> must directly or indirectly specialize the <code>Step</code> <code><em>Performances::Performance::enclosedPerformance</em></code>.</p> - - - OCL2.0 - owningType <> null and - (owningType.oclIsKindOf(Behavior) or - owningType.oclIsKindOf(Step)) implies - specializesFromLibrary('Performances::Performance::enclosedPerformance') - - - - - <p>A composite <code>Step</code> whose <code>owningType</code> is a <code>Structure</code> or a <code>Feature</code> typed by a <code>Structure</code> must directly or indirectly specialize the <code>Step</code> <code><em>Objects::Object::ownedPerformance</em></code>.</p> - - - OCL2.0 - isComposite and owningType <> null and - (owningType.oclIsKindOf(Structure) or - owningType.oclIsKindOf(Feature) and - owningType.oclAsType(Feature).type-> - exists(oclIsKindOf(Structure)) implies - specializesFromLibrary('Objects::Object::ownedPerformance') - - - - - <p>A<code>Step</code> whose <code>owningType</code> is a <code>Behavior</code> or another <code>Step</code>, and which is composite, must directly or indirectly specialize the <code>Step</code> <code><em>Performances::Performance::subperformance</em></code>.</p> - - - OCL2.0 - owningType <> null and - (owningType.oclIsKindOf(Behavior) or - owningType.oclIsKindOf(Step)) and - self.isComposite implies - specializesFromLibrary('Performances::Performance::subperformance') - - - - - <p>The <code>behaviors</code> of a <code>Step</code> are all its <code>types</code> that are <code>Behaviors</code>.</p> - - - OCL2.0 - behavior = type->selectByKind(Behavior) - - - - - - <p>The <code>Behaviors</code> that type this <code>Step</code>.</p> - - - - - - - - <p>The <code>parameters</code> of this <code>Step</code>, which are defined as its <code>directedFeatures</code>, whose values are passed into and/or out of a performance of the <code>Step</code>.</p> - - - - - - - - - <p>A <code>Behavior </code>coordinates occurrences of other <code>Behaviors</code>, as well as changes in objects. <code>Behaviors</code> can be decomposed into <code>Steps</code> and be characterized by <code>parameters</code>.</p> - - - - - <p>A <code>Behavior</code> must not specialize a <code>Structure</code>.</p> - - - OCL2.0 - ownedSpecialization.general->forAll(not oclIsKindOf(Structure)) - - - - - <p>A <code>Behavior</code> must directly or indirectly specialize the base <code>Behavior</code> <code><em>Performances::Performance</em></code> from the Kernel Semantic Library.</p> - - - English - specializesFromLibrary('Performances::Performance') - - - - - <p>The <code>steps</code> of a <code>Behavior</code> are its <code>features</code> that are <code>Steps</code>.</p> - - - OCL2.0 - step = feature->selectByKind(Step) - - - - - - <p>The <code>Steps</code> that make up this <code>Behavior</code>.</p> - - - - - - - - <p>The parameters of this <code>Behavior</code>, which are defined as its <code>directedFeatures</code>, whose values are passed into and/or out of a performance of the <code>Behavior</code>.</p> - - - - - - - - - - - - - - - - - - - - - <p>A <code>ParameterMembership</code> is a <code>FeatureMembership</code> that identifies its <code>memberFeature</code> as a parameter, which is always owned, and must have a <code>direction</code>. A <code>ParameterMembership</code> must be owned by a <code>Behavior</code>, a <code>Step</code>, or the <code>result</code> parameter of a <code>ConstructorExpression</code>.</p> - - - - <p>The <code>ownedMemberParameter</code> of a <code>ParameterMembership</code> must have a <code>direction</code> equal to the result of the <code>parameterDirection()</code> operation.</p> - - - OCL2.0 - ownedMemberParameter.direction = parameterDirection() - - - - - <p>A <code>ParameterMembership</code> must be owned by a <code>Behavior</code>,<code>Step</code>, or the <code>result</code> parameter of a <code>ConstructorExpression</code>.</p> - - - OCL2.0 - owningType.oclIsKindOf(Behavior) or owningType.oclIsKindOf(Step) or - owningType.owningMembership.oclIsKindOf(ReturnParameterMembership) and - owningType.owningNamespace.oclIsKindOf(ConstructorExpression) - - - - - - <p>The <code>Feature</code> that is identified as a <code>parameter</code> by this <code>ParameterMembership</code>.</p> - - - - - - - - <p>Return the required value of the <code>direction</code> of the <code>ownedMemberParameter</code>. By default, this is <code>in</code>.</p> - - - - OCL2.0 - FeatureDirectionKind::_'in' - - - - - - - - - - - - - - - - - - - - - - - - - - <p>A <code>Metaclass</code> is a <code>Structure</code> used to type <code>MetadataFeatures</code>.</p> - - - - <p>A <code>Metaclass</code> must directly or indirectly specialize the base <code>Metaclass</code> <code><em>Metaobjects::Metaobject</em></code> from the Kernel Semantic Library.</p> - - - OCL2.0 - specializesFromLibrary('Metaobjects::Metaobject') - - - - - - - <p>A <code>MetadataFeature</code> is a <code>Feature</code> that is an <code>AnnotatingElement</code> used to annotate another <code>Element</code> with metadata. It is typed by a <code>Metaclass</code>. All its <code>ownedFeatures</code> must redefine <code>features</code> of its <code>metaclass</code> and any feature bindings must be model-level evaluable.</p> +<p><strong>Note:</strong> See the specification of the KerML concrete syntax notation for <code>Expressions</code> for an identification of which library <code>Functions</code> are model-level evaluable.</p> + + + + + + + + <p>The Expressions that are typed by a certain <code>function</code>.</p> + + + + + + + + <p>A <code>ResultExpressionMembership</code> is a <code>FeatureMembership</code> that indicates that the <code>ownedResultExpression</code> provides the result values for the <code>Function</code> or <code>Expression</code> that owns it. The owning <code>Function</code> or <code>Expression</code> must contain a <code>BindingConnector</code> between the <code>result</code> <code>parameter</code> of the <code>ownedResultExpression</code> and the <code>result</code> <code>parameter</code> of the owning <code>Function</code> or <code>Expression</code>.</p> + + + + + <p>The <code>owningType</code> of a <code>ResultExpressionMembership</code> must be a <code>Function</code> or <code>Expression</code>.</p> + + + OCL2.0 + owningType.oclIsKindOf(Function) or owningType.oclIsKindOf(Expression) + + + + + + <p>The <code>Expression</code> that provides the result for the owner of the <code>ResultExpressionMembership</code>.</p> + + + + + + + + + + + + + + + + + <p>A <code>MultiplicityRange</code> is a <code>Multiplicity</code> whose value is defined to be the (inclusive) range of natural numbers given by the result of a <code>lowerBound</code> <code>Expression</code> and the result of an <code>upperBound</code> <code>Expression</code>. The result of these <code>Expressions</code> shall be of type <code><em>Natural</em></code>. If the result of the <code>upperBound</code> <code>Expression</code> is the unbounded value <code>*</code>, then the specified range includes all natural numbers greater than or equal to the <code>lowerBound</code> value. If no <code>lowerBound</code> <code>Expression</code>, then the default is that the lower bound has the same value as the upper bound, except if the <code>upperBound</code> evaluates to <code>*</code>, in which case the default for the lower bound is 0.</p> + + + + + <p>The <code>bounds</code> of a <code>MultiplicityRange</code> must have the same <code>featuringTypes</code> as the <code>MultiplicityRange</code>.</p> + + + OCL2.0 + bound->forAll(b | b.featuringType = self.featuringType) + + + + + <p>The <code>results</code> of the <code>bound</code> <code>Expression(s)</code> of a <code>MultiplicityRange</code> must be typed by <code><em>ScalarValues::Intger</em></code> from the Kernel Data Types Library. If a <code>bound</code> is model-level evaluable, then it must evaluate to a non-negative value.</p> + + + OCL2.0 + bound->forAll(b | + b.result.specializesFromLibrary('ScalarValues::Integer') and + let value : UnlimitedNatural = valueOf(b) in + value <> null implies value >= 0 +) + + + + + <p>If a <code>MultiplicityRange</code> has two <code>ownedMembers</code> that are <code>Expressions</code>, then the <code>lowerBound</code> is the first of these, otherwise it is <code>null</code>.</p> + + + OCL2.0 + lowerBound = + let ownedExpressions : Sequence(Expression) = + ownedMember->selectByKind(Expression) in + if ownedExpressions->size() < 2 then null + else ownedExpressions->first() + endif + + + + + <p>If a <code>MultiplicityRange</code> has one <code>ownedMember</code> that is an <code>Expression</code>, then this is the <code>upperBound</code>. If it has more than one <code>ownedMember</code> that is an <code>Expression</code>, then the <code>upperBound</code> is the second of those. Otherwise, it is null.</p> + + + OCL2.0 + upperBound = + let ownedExpressions : Sequence(Expression) = + ownedMember->selectByKind(Expression) in + if ownedExpressions->isEmpty() then null + else if ownedExpressions->size() = 1 then ownedExpressions->at(1) + else ownedExpressions->at(2) + endif endif + + + + + <p>The <code>bounds</code> of a <code>MultiplicityRange</code> are the <code>lowerBound</code> (if any) followed by the <code>upperBound</code>.</p> + + + OCL2.0 + bound = + if upperBound = null then Sequence{} + else if lowerBound = null then Sequence{upperBound} + else Sequence{lowerBound, upperBound} + endif endif + + + + + <p>The <code>lowerBound</code> (if any) and <code>upperBound</code> <code>Expressions</code> must be the first <code>ownedMembers</code> of a <code>MultiplicityRange</code>.</p> + + + OCL2.0 + if lowerBound = null then + ownedMember->notEmpty() and + ownedMember->at(1) = upperBound +else + ownedMember->size() > 1 and + ownedMember->at(1) = lowerBound and + ownedMember->at(2) = upperBound +endif + + + + + + <p>The <code>Expression</code> whose result provides the lower bound of the <code>MultiplicityRange</code>. If no <code>lowerBound</code> <code>Expression</code> is given, then the lower bound shall have the same value as the upper bound, unless the upper bound is unbounded (<code>*</code>), in which case the lower bound shall be 0.</p> + + + + + + + + <p>The <code>Expression</code> whose result is the upper bound of the <code>MultiplicityRange</code>.</p> + + + + + + + <p>The owned <code>Expressions</code> of the <code>MultiplicityRange</code> whose results provide its bounds. These must be the first <code>ownedMembers</code> of the <code>MultiplicityRange</code>.</p> + + + + + + + <p>Check whether this <code>MultiplicityRange</code> represents the range bounded by the given values <code>lower</code> and <code>upper</code>, presuming the <code>lowerBound</code> and <code>upperBound</code> <code>Expressions</code> are model-level evaluable.</p> + + + + OCL2.0 + valueOf(upperBound) = upper and +let lowerValue: UnlimitedNatural = valueOf(lowerBound) in +(lowerValue = lower or + lowerValue = null and + (lower = upper or + lower = 0 and upper = *)) + + + + + + + + + + + + + + + + <p>Evaluate the given <code>bound</code> <code>Expression</code> (at model level) and return the result represented as a MOF <code>UnlimitedNatural</code> value.</p> + + + + OCL2.0 + if bound = null or not bound.isModelLevelEvaluable then + null +else + let boundEval: Sequence(Element) = bound.evaluate(owningType) in + if boundEval->size() <> 1 then null else + let valueEval: Element = boundEval->at(1) in + if valueEval.oclIsKindOf(LiteralInfinity) then * + else if valueEval.oclIsKindOf(LiteralInteger) then + let value : Integer = + valueEval.oclAsKindOf(LiteralInteger).value in + if value >= 0 then value else null endif + else null + endif endif + endif +endif + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + <p>A <code>Step</code> is a <code>Feature</code> that is typed by one or more <code>Behaviors</code>. <code>Steps</code> may be used by one <code>Behavior</code> to coordinate the performance of other <code>Behaviors</code>, supporting a steady refinement of behavioral descriptions. <code>Steps</code> can be ordered in time and can be connected using <code>Flows</code> to specify things flowing between their <code>parameters</code>.</p> + + + + + <p>A <code>Step</code> must directly or indirectly specialize the base <code>Step</code> <code><em>Performances::performances</em></code> from the Kernel Semantic Library.</p> + + + OCL2.0 + specializesFromLibrary('Performances::performances') + + + + + <p>A<code>Step</code> whose <code>owningType</code> is a <code>Behavior</code> or another <code>Step</code> must directly or indirectly specialize the <code>Step</code> <code><em>Performances::Performance::enclosedPerformance</em></code>.</p> + + + OCL2.0 + owningType <> null and + (owningType.oclIsKindOf(Behavior) or + owningType.oclIsKindOf(Step)) implies + specializesFromLibrary('Performances::Performance::enclosedPerformance') + + + + + <p>A composite <code>Step</code> whose <code>owningType</code> is a <code>Structure</code> or a <code>Feature</code> typed by a <code>Structure</code> must directly or indirectly specialize the <code>Step</code> <code><em>Objects::Object::ownedPerformance</em></code>.</p> + + + OCL2.0 + isComposite and owningType <> null and +(owningType.oclIsKindOf(Structure) or + owningType.oclIsKindOf(Feature) and + owningType.oclAsType(Feature).type-> + exists(oclIsKindOf(Structure)) implies + specializesFromLibrary('Objects::Object::ownedPerformance') + + + + + <p>A<code>Step</code> whose <code>owningType</code> is a <code>Behavior</code> or another <code>Step</code>, and which is composite, must directly or indirectly specialize the <code>Step</code> <code><em>Performances::Performance::subperformance</em></code>.</p> + + + OCL2.0 + owningType <> null and + (owningType.oclIsKindOf(Behavior) or + owningType.oclIsKindOf(Step)) and + self.isComposite implies + specializesFromLibrary('Performances::Performance::subperformance') + + + + + <p>The <code>behaviors</code> of a <code>Step</code> are all its <code>types</code> that are <code>Behaviors</code>.</p> + + + OCL2.0 + behavior = type->selectByKind(Behavior) + + + + + + <p>The <code>Behaviors</code> that type this <code>Step</code>.</p> + + + + + + + + <p>The <code>parameters</code> of this <code>Step</code>, which are defined as its <code>directedFeatures</code>, whose values are passed into and/or out of a performance of the <code>Step</code>.</p> + + + + + + + + + <p>A <code>Behavior </code>coordinates occurrences of other <code>Behaviors</code>, as well as changes in objects. <code>Behaviors</code> can be decomposed into <code>Steps</code> and be characterized by <code>parameters</code>.</p> + + + + + <p>A <code>Behavior</code> must not specialize a <code>Structure</code>.</p> + + + OCL2.0 + ownedSpecialization.general->forAll(not oclIsKindOf(Structure)) + + + + + <p>A <code>Behavior</code> must directly or indirectly specialize the base <code>Behavior</code> <code><em>Performances::Performance</em></code> from the Kernel Semantic Library.</p> + + + English + specializesFromLibrary('Performances::Performance') + + + + + <p>The <code>steps</code> of a <code>Behavior</code> are its <code>features</code> that are <code>Steps</code>.</p> + + + OCL2.0 + step = feature->selectByKind(Step) + + + + + + <p>The <code>Steps</code> that make up this <code>Behavior</code>.</p> + + + + + + + + <p>The parameters of this <code>Behavior</code>, which are defined as its <code>directedFeatures</code>, whose values are passed into and/or out of a performance of the <code>Behavior</code>.</p> + + + + + + + + + + + + + + + + + + + + + <p>A <code>ParameterMembership</code> is a <code>FeatureMembership</code> that identifies its <code>memberFeature</code> as a parameter, which is always owned, and must have a <code>direction</code>. A <code>ParameterMembership</code> must be owned by a <code>Behavior</code>, a <code>Step</code>, or the <code>result</code> parameter of a <code>ConstructorExpression</code>.</p> + + + + <p>The <code>ownedMemberParameter</code> of a <code>ParameterMembership</code> must have a <code>direction</code> equal to the result of the <code>parameterDirection()</code> operation.</p> + + + OCL2.0 + ownedMemberParameter.direction = parameterDirection() + + + + + <p>A <code>ParameterMembership</code> must be owned by a <code>Behavior</code>,<code>Step</code>, or the <code>result</code> parameter of a <code>ConstructorExpression</code>.</p> + + + OCL2.0 + owningType.oclIsKindOf(Behavior) or owningType.oclIsKindOf(Step) or +owningType.owningMembership.oclIsKindOf(ReturnParameterMembership) and + owningType.owningNamespace.oclIsKindOf(ConstructorExpression) + + + + + + <p>The <code>Feature</code> that is identified as a <code>parameter</code> by this <code>ParameterMembership</code>.</p> + + + + + + + + <p>Return the required value of the <code>direction</code> of the <code>ownedMemberParameter</code>. By default, this is <code>in</code>.</p> + + + + OCL2.0 + FeatureDirectionKind::_'in' + + + + + + + + + + + + + + + + + + + + + + + + + + <p>A <code>Metaclass</code> is a <code>Structure</code> used to type <code>MetadataFeatures</code>.</p> + + + + <p>A <code>Metaclass</code> must directly or indirectly specialize the base <code>Metaclass</code> <code><em>Metaobjects::Metaobject</em></code> from the Kernel Semantic Library.</p> + + + OCL2.0 + specializesFromLibrary('Metaobjects::Metaobject') + + + + + + + <p>A <code>MetadataFeature</code> is a <code>Feature</code> that is an <code>AnnotatingElement</code> used to annotate another <code>Element</code> with metadata. It is typed by a <code>Metaclass</code>. All its <code>ownedFeatures</code> must redefine <code>features</code> of its <code>metaclass</code> and any feature bindings must be model-level evaluable.</p> - - - - - <p>A <code>MetadataFeature</code> must have exactly one <code>type</code> that is a <code>Metaclass</code>.</p> - - - OCL2.0 - type->selectByKind(Metaclass).size() = 1 - - - - - <p>The <code>metaclass</code> of a <code>MetadataFeature</code> must not be abstract.</p> - - - OCL2.0 - not metaclass.isAbstract - - - - - <p>A <code>MetadataFeature</code> must directly or indirectly specialize the base <code>MetadataFeature</code> <code><em>Metaobjects::metaobjects</em></code> from the Kernel Semantic Library.</p> - - - OCL2.0 - specializesFromLibrary('Metaobjects::metaobjects') - - - - - <p>Each <code>ownedFeature</code> of a <code>MetadataFeature</code> must have no declared name, redefine a single <code>Feature</code>, either have no <code>featureValue</code> or a <code>featureValue</code> with a <code>value</code> <code>Expression</code> that is model-level evaluable, and only have <code>ownedFeatures</code> that also meet these restrictions.</p> - - - OCL2.0 - ownedFeature->closure(ownedFeature)->forAll(f | - f.declaredName = null and f.declaredShortName = null and - f.valuation <> null implies f.valuation.value.isModelLevelEvaluable and - f.redefinition.redefinedFeature->size() = 1) - - - - - <p>The <code>metaclass</code> of a <code>MetadataFeature</code> is one of its <code>types</code> that is a <code>Metaclass</code>. - - - OCL2.0 - metaclass = - let metaclassTypes : Sequence(Type) = type->selectByKind(Metaclass) in - if metaclassTypes->isEmpty() then null - else metaClassTypes->first() - endif - - - - - <p>The <code>annotatedElements</code> of a <code>MetadataFeature</code> must have an abstract syntax metaclass consistent with the <code>annotatedElement</code> declarations for the <code>MetadataFeature</code>.</p> - - - OCL2.0 - let baseAnnotatedElementFeature : Feature = - resolveGlobal('Metaobjects::Metaobject::annotatedElement').memberElement. - oclAsType(Feature) in - let annotatedElementFeatures : OrderedSet(Feature) = feature-> - select(specializes(baseAnnotatedElementFeature))-> - excluding(baseAnnotatedElementFeature) in - annotatedElementFeatures->notEmpty() implies - let annotatedElementTypes : Set(Feature) = - annotatedElementFeatures.typing.type->asSet() in - let metaclasses : Set(Metaclass) = - annotatedElement.oclType().qualifiedName->collect(qn | - resolveGlobal(qn).memberElement.oclAsType(Metaclass)) in - metaclasses->forAll(m | annotatedElementTypes->exists(t | m.specializes(t))) - - - - - <p>If this <code>MetadataFeature</code> is an application of <code><em>SemanticMetadata</em></code>, then its <code>annotatingElement</code> must be a <code>Type</code>. The annotated <code>Type</code> must then directly or indirectly specialize the specified value of the <code><em>baseType</em></code>, <em>unless</em> the <code>Type</code> is a <code>Classifier</code> and the <code><em>baseType</em></code> represents a kind of <code>Feature</code>, in which case the <code>Classifier</code> must directly or indirectly specialize each of the <code>types</code> of the <code>Feature</code>.</p> - - - OCL2.0 - isSemantic() implies - let annotatedTypes : Sequence(Type) = - annotatedElement->selectAsKind(Type) in - let baseTypes : Sequence(MetadataFeature) = - evaluateFeature(resolveGlobal( - 'Metaobjects::SemanticMetadata::baseType'). - memberElement. - oclAsType(Feature))-> - selectAsKind(MetadataFeature) in - annotatedTypes->notEmpty() and - baseTypes()->notEmpty() and - baseTypes()->first().isSyntactic() implies - let annotatedType : Type = annotatedTypes->first() in - let baseType : Element = baseTypes->first().syntaxElement() in - if annotatedType.oclIsKindOf(Classifier) and - baseType.oclIsKindOf(Feature) then - baseType.oclAsType(Feature).type-> - forAll(t | annotatedType.specializes(t)) - else if baseType.oclIsKindOf(Type) then - annotatedType.specializes(baseType.oclAsType(Type)) - else - true - endif - - - - - - - <p>The <code>type</code> of this <code>MetadataFeature</code>, which must be a <code>Metaclass</code>.</p> - - - - - - - <p>If the given <code>baseFeature</code> is a <code>feature</code> of this <code>MetadataFeature</code>, or is directly or indirectly redefined by a <code>feature</code>, then return the result of evaluating the appropriate (model-level evaluable) <code>value</code> <code>Expression</code> for it (if any), with the <code>MetadataFeature</code> as the target.</p> - - - - OCL2.0 - let selectedFeatures : Sequence(Feature) = feature-> - select(closure(ownedRedefinition.redefinedFeature)-> - includes(baseFeature)) in - if selectedFeatures->isEmpty() then null - else - let selectedFeature : Feature = selectedFeatures->first() in - let featureValues : FeatureValue = selectedFeature-> - closure(ownedRedefinition.redefinedFeature).ownedMember-> - selectAsKind(FeatureValue) in - if featureValues->isEmpty() then null - else featureValues->first().value.evaluate(self) - endif - - - - - - - - - - - <p>Check if this <code>MetadataFeature</code> has a <code>metaclass</code> which is a kind of <code><em>SemanticMetadata</code>.<p> - - - - OCL2.0 - specializesFromLibrary('Metaobjects::SemanticMetadata') - - - - - - - - - <p>Check if this <code>MetadataFeature</code> has a <code>metaclass</code> that is a kind of <code><em>KerML::Element</em></code> (that is, it is from the reflective abstract syntax model).</p> - - - - OCL2.0 - specializesFromLibrary('KerML::Element') - - - - - - - - - <p>If this <code>MetadataFeature</code> reflectively represents a model element, then return the corresponding <code>Element</code> instance from the MOF abstract syntax representation of the model.</p> - - - - English - No OCL - - - - - OCL2.0 - isSyntactic() - - - - - - - - - - - - <p>The MetadataFeatures whose <code>type</code> is a certain Metaclass.</p> - - - - - - - - - - <p>A <code>DataType</code> is a <code>Classifier</code> of things (in the universe) that can only be distinguished by how they are related to other things (via Features). This means multiple things classified by the same <code>DataType</code></p> + + + + + <p>A <code>MetadataFeature</code> must have exactly one <code>type</code> that is a <code>Metaclass</code>.</p> + + + OCL2.0 + type->selectByKind(Metaclass).size() = 1 + + + + + <p>The <code>metaclass</code> of a <code>MetadataFeature</code> must not be abstract.</p> + + + OCL2.0 + not metaclass.isAbstract + + + + + <p>A <code>MetadataFeature</code> must directly or indirectly specialize the base <code>MetadataFeature</code> <code><em>Metaobjects::metaobjects</em></code> from the Kernel Semantic Library.</p> + + + OCL2.0 + specializesFromLibrary('Metaobjects::metaobjects') + + + + + <p>Each <code>ownedFeature</code> of a <code>MetadataFeature</code> must have no declared name, redefine a single <code>Feature</code>, either have no <code>featureValue</code> or a <code>featureValue</code> with a <code>value</code> <code>Expression</code> that is model-level evaluable, and only have <code>ownedFeatures</code> that also meet these restrictions.</p> + + + OCL2.0 + ownedFeature->closure(ownedFeature)->forAll(f | + f.declaredName = null and f.declaredShortName = null and + f.valuation <> null implies f.valuation.value.isModelLevelEvaluable and + f.redefinition.redefinedFeature->size() = 1) + + + + + <p>The <code>metaclass</code> of a <code>MetadataFeature</code> is one of its <code>types</code> that is a <code>Metaclass</code>. + + + OCL2.0 + metaclass = + let metaclassTypes : Sequence(Type) = type->selectByKind(Metaclass) in + if metaclassTypes->isEmpty() then null + else metaClassTypes->first() + endif + + + + + <p>The <code>annotatedElements</code> of a <code>MetadataFeature</code> must have an abstract syntax metaclass consistent with the <code>annotatedElement</code> declarations for the <code>MetadataFeature</code>.</p> + + + OCL2.0 + let baseAnnotatedElementFeature : Feature = + resolveGlobal('Metaobjects::Metaobject::annotatedElement').memberElement. + oclAsType(Feature) in +let annotatedElementFeatures : OrderedSet(Feature) = feature-> + select(specializes(baseAnnotatedElementFeature))-> + excluding(baseAnnotatedElementFeature) in +annotatedElementFeatures->notEmpty() implies + let annotatedElementTypes : Set(Feature) = + annotatedElementFeatures.typing.type->asSet() in + let metaclasses : Set(Metaclass) = + annotatedElement.oclType().qualifiedName->collect(qn | + resolveGlobal(qn).memberElement.oclAsType(Metaclass)) in + metaclasses->forAll(m | annotatedElementTypes->exists(t | m.specializes(t))) + + + + + <p>If this <code>MetadataFeature</code> is an application of <code><em>SemanticMetadata</em></code>, then its <code>annotatingElement</code> must be a <code>Type</code>. The annotated <code>Type</code> must then directly or indirectly specialize the specified value of the <code><em>baseType</em></code>, <em>unless</em> the <code>Type</code> is a <code>Classifier</code> and the <code><em>baseType</em></code> represents a kind of <code>Feature</code>, in which case the <code>Classifier</code> must directly or indirectly specialize each of the <code>types</code> of the <code>Feature</code>.</p> + + + OCL2.0 + isSemantic() implies + let annotatedTypes : Sequence(Type) = + annotatedElement->selectAsKind(Type) in + let baseTypes : Sequence(MetadataFeature) = + evaluateFeature(resolveGlobal( + 'Metaobjects::SemanticMetadata::baseType'). + memberElement. + oclAsType(Feature))-> + selectAsKind(MetadataFeature) in + annotatedTypes->notEmpty() and + baseTypes()->notEmpty() and + baseTypes()->first().isSyntactic() implies + let annotatedType : Type = annotatedTypes->first() in + let baseType : Element = baseTypes->first().syntaxElement() in + if annotatedType.oclIsKindOf(Classifier) and + baseType.oclIsKindOf(Feature) then + baseType.oclAsType(Feature).type-> + forAll(t | annotatedType.specializes(t)) + else if baseType.oclIsKindOf(Type) then + annotatedType.specializes(baseType.oclAsType(Type)) + else + true + endif + + + + + + + <p>The <code>type</code> of this <code>MetadataFeature</code>, which must be a <code>Metaclass</code>.</p> + + + + + + + <p>If the given <code>baseFeature</code> is a <code>feature</code> of this <code>MetadataFeature</code>, or is directly or indirectly redefined by a <code>feature</code>, then return the result of evaluating the appropriate (model-level evaluable) <code>value</code> <code>Expression</code> for it (if any), with the <code>MetadataFeature</code> as the target.</p> + + + + OCL2.0 + let selectedFeatures : Sequence(Feature) = feature-> + select(closure(ownedRedefinition.redefinedFeature)-> + includes(baseFeature)) in +if selectedFeatures->isEmpty() then null +else + let selectedFeature : Feature = selectedFeatures->first() in + let featureValues : FeatureValue = selectedFeature-> + closure(ownedRedefinition.redefinedFeature).ownedMember-> + selectAsKind(FeatureValue) in + if featureValues->isEmpty() then null + else featureValues->first().value.evaluate(self) + endif + + + + + + + + + + + <p>Check if this <code>MetadataFeature</code> has a <code>metaclass</code> which is a kind of <code><em>SemanticMetadata</code>.<p> + + + + OCL2.0 + specializesFromLibrary('Metaobjects::SemanticMetadata') + + + + + + + + + <p>Check if this <code>MetadataFeature</code> has a <code>metaclass</code> that is a kind of <code><em>KerML::Element</em></code> (that is, it is from the reflective abstract syntax model).</p> + + + + OCL2.0 + specializesFromLibrary('KerML::Element') + + + + + + + + + <p>If this <code>MetadataFeature</code> reflectively represents a model element, then return the corresponding <code>Element</code> instance from the MOF abstract syntax representation of the model.</p> + + + + English + No OCL + + + + + OCL2.0 + isSyntactic() + + + + + + + + + + + + <p>The MetadataFeatures whose <code>type</code> is a certain Metaclass.</p> + + + + + + + + + + <p>A <code>DataType</code> is a <code>Classifier</code> of things (in the universe) that can only be distinguished by how they are related to other things (via Features). This means multiple things classified by the same <code>DataType</code></p> - <ul> - <li>Cannot be distinguished when they are related to other things in exactly the same way, even when they are intended to be about different things.</li> - <li>Can be distinguished when they are related to other things in different ways, even when they are intended to be about the same thing.</li> - </ul> - - - - - <p>A <code>DataType</code> must not specialize a <code>Class</code> or an <code>Association</code>.</p> - - - OCL2.0 - ownedSpecialization.general-> - forAll(not oclIsKindOf(Class) and - not oclIsKindOf(Association)) - - - - - <p>A <code>DataType</code> must directly or indirectly specialize the base <code>DataType</code> <code><em>Base::DataValue</em></code> from the Kernel Semantic Library.</p> - - - OCL2.0 - specializesFromLibrary('Base::DataValue') - - - - - - - - - <p>An <code>AssociationStructure</code> is an <code>Association</code> that is also a <code>Structure</code>, classifying link objects that are both links and objects. As objects, link objects can be created and destroyed, and their non-end <code>Features</code> can change over time. However, the values of the end <code>Features</code> of a link object are fixed and cannot change over its lifetime.</p> - - - - <p>An <code>AssociationStructure</code> must directly or indirectly specialize the base <code>AssociationStructure</code> <code><em>Objects::LinkObject</em></code> from the Kernel Semantic Library.</p> - - - OCL2.0 - specializesFromLibrary('Objects::LinkObject') - - - - - <p>A binary <code>AssociationStructure</code> must directly or indirectly specialize the base <code>AssociationStructure</code> <code><em>Objects::BinaryLinkObject</em></code> from the Kernel Semantic Library.</p> - - - OCL2.0 - endFeature->size() = 2 implies - specializesFromLibrary('Objects::BinaryLinkObject') - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - <p>An <code>Association</code> is a <code>Relationship</code> and a <code>Classifier</code> to enable classification of links between things (in the universe). The co-domains (<code>types</code>) of the <code>associationEnd</code> <code>Features</code> are the <code>relatedTypes</code>, as co-domain and participants (linked things) of an <code>Association</code> identify each other.</p> - - - - - <p>The <code>relatedTypes</code> of an <code>Association</code> are the <code>types</code> of its <code>associationEnds</code>.</p> - - - OCL2.0 - relatedType = associationEnd.type - - - - - <p>An <code>Association</code> must directly or indirectly specialize the base <code>Association</code> <code><em>Links::Link</em></code> from the Kernel Semantic Library.</p> - - - OCL2.0 - specializesFromLibrary('Links::Link') - - - - - <p>If an <code>Association</code> is also a kind of <code>Structure</code>, then it must be an <code>AssociationStructure</code>.</p> - - - English - oclIsKindOf(Structure) = oclIsKindOf(AssociationStructure) - - - - - <p>A binary <code>Association</code> must directly or indirectly specialize the base <code>Association</code> <code><em>Links::binaryLink</em></code> from the Kernel Semantic Library.</p> - - - OCL2.0 - associationEnd->size() = 2 implies - specializesFromLibrary('Links::BinaryLink') - - - - - <p>If an <code>Association</code> is concrete (not abstract), then it must have at least two <code>relatedTypes</code>.</p> - - - OCL2.0 - not isAbstract implies relatedType->size() >= 2 - - - - - <p>If an <code>Association</code> has more than two <code>associationEnds</code>, then it must <em>not</em> specialize, directly or indirectly, the <code>Association</code> <em><code>BinaryLink</code></em> from the Kernel Semantic Library.</p> - - - OCL2.0 - associationEnds->size() > 2 implies - not specializesFromLibrary('Links::BinaryLink') - - - - - <p>The <code>sourceType</code> of an <code>Association</code> is its first <code>relatedType</code> (if any).</p> - - - OCL2.0 - sourceType = - if relatedType->isEmpty() then null - else relatedType->first() endif - - - - - OCL2.0 - targetType = - if relatedType->size() < 2 then OrderedSet{} - else - relatedType-> - subSequence(2, relatedType->size())-> - asOrderedSet() - endif - - - - - <p>The <code>ownedEndFeatures</code> of an <code>Association</code> must have exactly one <code>type</code></p>. - - - OCL2.0 - ownedEndFeature->forAll(type->size() = 1) - - - - - - - <p>The <code>types</code> of the <code>associationEnds</code> of the <code>Association</code>, which are the <code>relatedElements</code> of the <code>Association</code> considered as a <code>Relationship</code>.</p> - - - - - - - - <p>The source <code>relatedType</code> for this <code>Association</code>. It is the first <code>relatedType</code> of the <code>Association</code>.</p> - - - - - - - - <p>The target <code>relatedTypes</code> for this <code>Association</code>. This includes all the <code>relatedTypes</code> other than the <code>sourceType</code>.</p> - - - - - - - - <p>The <code>features</code> of the <code>Association</code> that identify the things that can be related by it. A concrete <code>Association</code> must have at least two <code>associationEnds</code>. When it has exactly two, the <code>Association</code> is called a <em>binary</em> <code>Association</code>.</p> - - - - - - - - - - - - <p>The (at most one) <code>ownedMembership</code> of this Feature that is the FeatureValue that provides the value of the Feature.</p> - - - - - - - - - <p>The FeatureValue that owns the <code>value</code> Expression.</p> - - - - - - - - <p>A <code>FeatureValue</code> is a <code>Membership</code> that identifies a particular member <code>Expression</code> that provides the value of the <code>Feature</code> that owns the <code>FeatureValue</code>. The value is specified as either a bound value or an initial value, and as either a concrete or default value. A <code>Feature</code> can have at most one <code>FeatureValue</code>.</p> +<ul> + <li>Cannot be distinguished when they are related to other things in exactly the same way, even when they are intended to be about different things.</li> + <li>Can be distinguished when they are related to other things in different ways, even when they are intended to be about the same thing.</li> +</ul> + + + + + <p>A <code>DataType</code> must not specialize a <code>Class</code> or an <code>Association</code>.</p> + + + OCL2.0 + ownedSpecialization.general-> + forAll(not oclIsKindOf(Class) and + not oclIsKindOf(Association)) + + + + + <p>A <code>DataType</code> must directly or indirectly specialize the base <code>DataType</code> <code><em>Base::DataValue</em></code> from the Kernel Semantic Library.</p> + + + OCL2.0 + specializesFromLibrary('Base::DataValue') + + + + + + + + + <p>An <code>AssociationStructure</code> is an <code>Association</code> that is also a <code>Structure</code>, classifying link objects that are both links and objects. As objects, link objects can be created and destroyed, and their non-end <code>Features</code> can change over time. However, the values of the end <code>Features</code> of a link object are fixed and cannot change over its lifetime.</p> + + + + <p>An <code>AssociationStructure</code> must directly or indirectly specialize the base <code>AssociationStructure</code> <code><em>Objects::LinkObject</em></code> from the Kernel Semantic Library.</p> + + + OCL2.0 + specializesFromLibrary('Objects::LinkObject') + + + + + <p>A binary <code>AssociationStructure</code> must directly or indirectly specialize the base <code>AssociationStructure</code> <code><em>Objects::BinaryLinkObject</em></code> from the Kernel Semantic Library.</p> + + + OCL2.0 + endFeature->size() = 2 implies + specializesFromLibrary('Objects::BinaryLinkObject') + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + <p>An <code>Association</code> is a <code>Relationship</code> and a <code>Classifier</code> to enable classification of links between things (in the universe). The co-domains (<code>types</code>) of the <code>associationEnd</code> <code>Features</code> are the <code>relatedTypes</code>, as co-domain and participants (linked things) of an <code>Association</code> identify each other.</p> + + + + + <p>The <code>relatedTypes</code> of an <code>Association</code> are the <code>types</code> of its <code>associationEnds</code>.</p> + + + OCL2.0 + relatedType = associationEnd.type + + + + + <p>An <code>Association</code> must directly or indirectly specialize the base <code>Association</code> <code><em>Links::Link</em></code> from the Kernel Semantic Library.</p> + + + OCL2.0 + specializesFromLibrary('Links::Link') + + + + + <p>If an <code>Association</code> is also a kind of <code>Structure</code>, then it must be an <code>AssociationStructure</code>.</p> + + + English + oclIsKindOf(Structure) = oclIsKindOf(AssociationStructure) + + + + + <p>A binary <code>Association</code> must directly or indirectly specialize the base <code>Association</code> <code><em>Links::binaryLink</em></code> from the Kernel Semantic Library.</p> + + + OCL2.0 + associationEnd->size() = 2 implies + specializesFromLibrary('Links::BinaryLink') + + + + + <p>If an <code>Association</code> is concrete (not abstract), then it must have at least two <code>relatedTypes</code>.</p> + + + OCL2.0 + not isAbstract implies relatedType->size() >= 2 + + + + + <p>If an <code>Association</code> has more than two <code>associationEnds</code>, then it must <em>not</em> specialize, directly or indirectly, the <code>Association</code> <em><code>BinaryLink</code></em> from the Kernel Semantic Library.</p> + + + OCL2.0 + associationEnds->size() > 2 implies + not specializesFromLibrary('Links::BinaryLink') + + + + + <p>The <code>sourceType</code> of an <code>Association</code> is its first <code>relatedType</code> (if any).</p> + + + OCL2.0 + sourceType = + if relatedType->isEmpty() then null + else relatedType->first() endif + + + + + OCL2.0 + targetType = + if relatedType->size() < 2 then OrderedSet{} + else + relatedType-> + subSequence(2, relatedType->size())-> + asOrderedSet() + endif + + + + + <p>The <code>ownedEndFeatures</code> of an <code>Association</code> must have exactly one <code>type</code></p>. + + + OCL2.0 + ownedEndFeature->forAll(type->size() = 1) + + + + + + + <p>The <code>types</code> of the <code>associationEnds</code> of the <code>Association</code>, which are the <code>relatedElements</code> of the <code>Association</code> considered as a <code>Relationship</code>.</p> + + + + + + + + <p>The source <code>relatedType</code> for this <code>Association</code>. It is the first <code>relatedType</code> of the <code>Association</code>.</p> + + + + + + + + <p>The target <code>relatedTypes</code> for this <code>Association</code>. This includes all the <code>relatedTypes</code> other than the <code>sourceType</code>.</p> + + + + + + + + <p>The <code>features</code> of the <code>Association</code> that identify the things that can be related by it. A concrete <code>Association</code> must have at least two <code>associationEnds</code>. When it has exactly two, the <code>Association</code> is called a <em>binary</em> <code>Association</code>.</p> + + + + + + + + + + + + <p>The (at most one) <code>ownedMembership</code> of this Feature that is the FeatureValue that provides the value of the Feature.</p> + + + + + + + + + <p>The FeatureValue that owns the <code>value</code> Expression.</p> + + + + + + + + <p>A <code>FeatureValue</code> is a <code>Membership</code> that identifies a particular member <code>Expression</code> that provides the value of the <code>Feature</code> that owns the <code>FeatureValue</code>. The value is specified as either a bound value or an initial value, and as either a concrete or default value. A <code>Feature</code> can have at most one <code>FeatureValue</code>.</p> - <p>The result of the <code>value</code> <code>Expression</code> is bound to the <code>featureWithValue</code> using a <code>BindingConnector</code>. If <code>isInitial = false</code>, then the <code>featuringType</code> of the <code>BindingConnector</code> is the same as the <code>featuringType</code> of the <code>featureWithValue</code>. If <code>isInitial = true</code>, then the <code>featuringType</code> of the <code>BindingConnector</code> is restricted to its <code>startShot</code>. +<p>The result of the <code>value</code> <code>Expression</code> is bound to the <code>featureWithValue</code> using a <code>BindingConnector</code>. If <code>isInitial = false</code>, then the <code>featuringType</code> of the <code>BindingConnector</code> is the same as the <code>featuringType</code> of the <code>featureWithValue</code>. If <code>isInitial = true</code>, then the <code>featuringType</code> of the <code>BindingConnector</code> is restricted to its <code>startShot</code>. - <p>If <code>isDefault = false</code>, then the above semantics of the <code>FeatureValue</code> are realized for the given <code>featureWithValue</code>. Otherwise, the semantics are realized for any individual of the <code>featuringType</code> of the <code>featureWithValue</code>, unless another value is explicitly given for the <code>featureWithValue</code> for that individual.</p> - - - - - <p>If <code>isDefault = false</code>, then the <code>featureWithValue</code> must have an <code>ownedMember</code> that is a <code>BindingConnector</code> whose <code>relatedElements</code> are the <code>featureWithValue</code> and a feature chain consisting of the <code>value</code> <code>Expression</code> and its <code>result</code>. If <code>isInitial = false</code>, then this <code>BindingConnector</code> must have <code>featuringTypes</code> that are the same as those of the <code>featureWithValue</code>. If <code>isInitial = true</code>, then the <code>BindingConnector</code> must have <code><em>that.startShot</em><code> as its <code>featuringType</code>.</p> - - - OCL2.0 - not isDefault implies - featureWithValue.ownedMember-> - selectByKind(BindingConnector)->exists(b | - b.relatedFeature->includes(featureWithValue) and - b.relatedFeature->exists(f | - f.chainingFeature = Sequence{value, value.result}) and - if not isInitial then - b.featuringType = featureWithValue.featuringType - else - b.featuringType->exists(t | - t.oclIsKindOf(Feature) and - t.oclAsType(Feature).chainingFeature = - Sequence{ +<p>If <code>isDefault = false</code>, then the above semantics of the <code>FeatureValue</code> are realized for the given <code>featureWithValue</code>. Otherwise, the semantics are realized for any individual of the <code>featuringType</code> of the <code>featureWithValue</code>, unless another value is explicitly given for the <code>featureWithValue</code> for that individual.</p> + + + + + <p>If <code>isDefault = false</code>, then the <code>featureWithValue</code> must have an <code>ownedMember</code> that is a <code>BindingConnector</code> whose <code>relatedElements</code> are the <code>featureWithValue</code> and a feature chain consisting of the <code>value</code> <code>Expression</code> and its <code>result</code>. If <code>isInitial = false</code>, then this <code>BindingConnector</code> must have <code>featuringTypes</code> that are the same as those of the <code>featureWithValue</code>. If <code>isInitial = true</code>, then the <code>BindingConnector</code> must have <code><em>that.startShot</em><code> as its <code>featuringType</code>.</p> + + + OCL2.0 + not isDefault implies + featureWithValue.ownedMember-> + selectByKind(BindingConnector)->exists(b | + b.relatedFeature->includes(featureWithValue) and + b.relatedFeature->exists(f | + f.chainingFeature = Sequence{value, value.result}) and + if not isInitial then + b.featuringType = featureWithValue.featuringType + else + b.featuringType->exists(t | + t.oclIsKindOf(Feature) and + t.oclAsType(Feature).chainingFeature = + Sequence{ resolveGlobal('Base::things::that'). - memberElement, + memberElement, resolveGlobal('Occurrences::Occurrence::startShot'). - memberElement - } - ) - endif) - - - - - <p>All <code>Features</code> directly or indirectly redefined by the <code>featureWithValue</code> of a <code>FeatureValue</code> must have only default <code>FeatureValues</code>.</p> - - - OCL2.0 - featureWithValue.redefinition.redefinedFeature-> - closure(redefinition.redefinedFeature).valuation-> - forAll(isDefault) - - - - - <p>If a <code>FeatureValue</code> has <code>isInitial = true</code>, then its <code>featureWithValue</code> must have <code>isVariable = true</code>.</p> - - - OCL2.0 - isInitial implies featureWithValue.isVariable - - - - - - <p>The Feature to be provided a value.</p> - - - <p>The <code>Feature</code> to be provided a value.</p> - - - - - - - - <p>The Expression that provides the value as a result.</p> - - - <p>The <code>Expression</code> that provides the value of the <code>featureWithValue</code> as its <code>result</code>.</p> - - - - - - - - <p>Whether this <code>FeatureValue</code> specifies a bound value or an initial value for the <code>featureWithValue</code>.</p> - - - - - - - <p>Whether this <code>FeatureValue</code> is a concrete specification of the bound or initial value of the <code>featureWithValue</code>, or just a default value that may be overridden.</p> - - - - - - - - - - <p>A <code>Connector</code> is a usage of <code>Associations</code>, with links restricted according to instances of the <code>Type</code> in which they are used (domain of the <code>Connector</code>). The <code>associations</code> of the <code>Connector</code> restrict what kinds of things might be linked. The <code>Connector</code> further restricts these links to be between values of <code>Features</code> on instances of its domain.</p> - - - - - <p>The <code>relatedFeatures</code> of a <code>Connector</code> are the referenced <code>Features</code> of its <code>connectorEnds</code>.</p> - - - OCL2.0 - relatedFeature = connectorEnd.ownedReferenceSubsetting-> - select(s | s <> null).subsettedFeature - - - - - <p>Each <code>relatedFeature</code> of a <code>Connector</code> must have each <code>featuringType</code> of the <code>Connector</code> as a direct or indirect <code>featuringType</code> (where a <code>Feature</code> with no <code>featuringType</code> is treated as if the <code>Classifier</code> <code><em>Base::Anything</em></code> was its <code>featuringType</code>).</p> - - - OCL2.0 - relatedFeature->forAll(f | - if featuringType->isEmpty() then f.isFeaturedWithin(null) - else featuringType->forAll(t | f.isFeaturedWithin(t)) - endif) - - - - - <p>The <code>sourceFeature</code> of a <code>Connector</code> is its first <code>relatedFeature</code> (if any).</p> - - - OCL2.0 - sourceFeature = - if relatedFeature->isEmpty() then null - else relatedFeature->first() - endif - - - - - <p>The <code>targetFeatures</code> of a <code>Connector</code> are the <code>relatedFeatures</code> other than the <code>sourceFeature</code>.</p> - - - OCL2.0 - targetFeature = - if relatedFeature->size() < 2 then OrderedSet{} - else - relatedFeature-> - subSequence(2, relatedFeature->size())-> - asOrderedSet() - endif - - - - - <p>If a <code>Connector</code> is concrete (not abstract), then it must have at least two <code>relatedFeatures</code>.</p> - - - OCL2.0 - not isAbstract implies relatedFeature->size() >= 2 - - - - - <p>A <code>Connector</code> must directly or indirectly specialize the base <code>Connector</code> <code><em>Links::links</em></code> from the Kernel Semantic Library.</p> - - - OCL2.0 - specializesFromLibrary('Links::links') - - - - - <p>A <code>Connector</code> for an <code>AssociationStructure</code> must directly or indirectly specialize the base <code>Connector</code> <code><em>Objects::linkObjects</em></code> from the Kernel Semantic Library.</p> - - - OCL2.0 - association->exists(oclIsKindOf(AssociationStructure)) implies - specializesFromLibrary('Objects::linkObjects') - - - - - <p>A binary <code>Connector</code> for an <code>AssociationStructure</code> must directly or indirectly specialize the base <code>Connector</code> <code><em>Objects::binaryLinkObjects</em></code> from the Kernel Semantic Library.</p> - - - OCL2.0 - connectorEnds->size() = 2 and - association->exists(oclIsKindOf(AssociationStructure)) implies - specializesFromLibrary('Objects::binaryLinkObjects') - - - - - <p>A binary <code>Connector</code> must directly or indirectly specialize the base <code>Connector</code> <code><em>Links::binaryLinks</em></code> from the Kernel Semantic Library.</p> - - - OCL2.0 - connectorEnd->size() = 2 implies - specializesFromLibrary('Links::binaryLinks') - - - - - <p>If a <code>Connector</code> has more than two <code>connectorEnds</code>, then it must <em>not</em> specialize, directly or indirectly, the <code>Association</code> <em><code>BinaryLink</code></em> from the Kernel Semantic Library.</p> - - - OCL2.0 - connectorEnds->size() > 2 implies - not specializesFromLibrary('Links::BinaryLink') - - - - - <p>The <code>defaultFeaturingType</code> of a <code>Connector</code> is the innermost common direct or indirect <code>featuringType</code> of the <code>relatedFeatures</code> of the <code>Connector</code>, so that each <code>relatedElement</code> is featured within the <code>defaultFeaturingType</code>, if such exists.</p> - - - OCL2.0 - let commonFeaturingTypes : OrderedSet(Type) = - relatedFeature->closure(featuringType)->select(t | - relatedFeature->forAll(f | f.isFeaturedWithin(t)) - ) in - let nearestCommonFeaturingTypes : OrderedSet(Type) = - commonFeaturingTypes->reject(t1 | - commonFeaturingTypes->exists(t2 | - t2 <> t1 and t2->closure(featuringType)->contains(t1) - )) in - if nearestCommonFeaturingTypes->isEmpty() then null - else nearestCommonFeaturingTypes->first() - endif - - - - - - - <p>The <code>Features</code> that are related by this <code>Connector</code> considered as a <code>Relationship</code> and that restrict the links it identifies, given by the referenced <code>Features</code> of the <code>connectorEnds</code> of the <code>Connector</code>.</p> - - - - - - - - <p>The <code>Associations</code> that type the <code>Connector</code>.</p> - - - - - - - - <p>The <code>endFeatures</code> of a <code>Connector</code>, which redefine the <code>endFeatures</code> of the <code>associations</code> of the <code>Connector</code>. The <code>connectorEnds</code> determine via <code>ReferenceSubsetting</code> <code>Relationships</code> which <code>Features</code> are related by the <code>Connector</code>.</p> - - - - - - - <p>The source <code>relatedFeature</code> for this <code>Connector</code>. It is the first <code>relatedFeature</code>.</p> - - - - - - - <p>The target <code>relatedFeatures</code> for this <code>Connector</code>. This includes all the <code>relatedFeatures</code> other than the <code>sourceFeature</code>.</p> - - - - - - - <p>The innermost <code>Type</code> that is a common direct or indirect <code>featuringType</code> of the <code>relatedFeatures</code>, such that, if it exists and was the <code>featuringType</code> of this <code>Connector</code>, the <code>Connector</code> would satisfy the <code>checkConnectorTypeFeaturing</code> constraint.</p> - - - - - - - - - - - - - - - - - - - - - - - - - - - <p>A <code>BindingConnector</code> is a binary <code>Connector</code> that requires its <code>relatedFeatures</code> to identify the same things (have the same values).</p> - - - - - <p>A <code>BindingConnector</code> must be binary.</p> - - - OCL2.0 - relatedFeature->size() = 2 - - - - - <p>A <code>BindingConnector</code> must directly or indirectly specialize the base <code>BindingConnector</code> <code><em>Links::selfLinks</em></code> from the Kernel Semantic Library.</p> - - - OCL2.0 - specializesFromLibrary('Links::selfLinks') - - - - - - - - - - - - - <p>A <code>Succession</code> is a binary <code>Connector</code> that requires its <code>relatedFeatures</code> to happen separately in time.</p> - - - - - <p>A <code>Succession</code> must directly or indirectly specialize the Feature <code><em>Occurrences::happensBeforeLinks</em></code> from the Kernel Semantic Library.</p> - - - OCL2.0 - specializesFromLibrary('Occurrences::happensBeforeLinks') - - - - - - - - - - - - - - - - - - - - <p>A <code>Connector</code> with a certain <code>defaultFeaturingType</code>.</p> - - - - - - + memberElement + } + ) + endif) + + + + + <p>All <code>Features</code> directly or indirectly redefined by the <code>featureWithValue</code> of a <code>FeatureValue</code> must have only default <code>FeatureValues</code>.</p> + + + OCL2.0 + featureWithValue.redefinition.redefinedFeature-> + closure(redefinition.redefinedFeature).valuation-> + forAll(isDefault) + + + + + <p>If a <code>FeatureValue</code> has <code>isInitial = true</code>, then its <code>featureWithValue</code> must have <code>isVariable = true</code>.</p> + + + OCL2.0 + isInitial implies featureWithValue.isVariable + + + + + + <p>The Feature to be provided a value.</p> + + + <p>The <code>Feature</code> to be provided a value.</p> + + + + + + + + <p>The Expression that provides the value as a result.</p> + + + <p>The <code>Expression</code> that provides the value of the <code>featureWithValue</code> as its <code>result</code>.</p> + + + + + + + + <p>Whether this <code>FeatureValue</code> specifies a bound value or an initial value for the <code>featureWithValue</code>.</p> + + + + + + + <p>Whether this <code>FeatureValue</code> is a concrete specification of the bound or initial value of the <code>featureWithValue</code>, or just a default value that may be overridden.</p> + + + + + + + + + + <p>A <code>Connector</code> is a usage of <code>Associations</code>, with links restricted according to instances of the <code>Type</code> in which they are used (domain of the <code>Connector</code>). The <code>associations</code> of the <code>Connector</code> restrict what kinds of things might be linked. The <code>Connector</code> further restricts these links to be between values of <code>Features</code> on instances of its domain.</p> + + + + + <p>The <code>relatedFeatures</code> of a <code>Connector</code> are the referenced <code>Features</code> of its <code>connectorEnds</code>.</p> + + + OCL2.0 + relatedFeature = connectorEnd.ownedReferenceSubsetting-> + select(s | s <> null).subsettedFeature + + + + + <p>Each <code>relatedFeature</code> of a <code>Connector</code> must have each <code>featuringType</code> of the <code>Connector</code> as a direct or indirect <code>featuringType</code> (where a <code>Feature</code> with no <code>featuringType</code> is treated as if the <code>Classifier</code> <code><em>Base::Anything</em></code> was its <code>featuringType</code>).</p> + + + OCL2.0 + relatedFeature->forAll(f | + if featuringType->isEmpty() then f.isFeaturedWithin(null) + else featuringType->forAll(t | f.isFeaturedWithin(t)) + endif) + + + + + <p>The <code>sourceFeature</code> of a <code>Connector</code> is its first <code>relatedFeature</code> (if any).</p> + + + OCL2.0 + sourceFeature = + if relatedFeature->isEmpty() then null + else relatedFeature->first() + endif + + + + + <p>The <code>targetFeatures</code> of a <code>Connector</code> are the <code>relatedFeatures</code> other than the <code>sourceFeature</code>.</p> + + + OCL2.0 + targetFeature = + if relatedFeature->size() < 2 then OrderedSet{} + else + relatedFeature-> + subSequence(2, relatedFeature->size())-> + asOrderedSet() + endif + + + + + <p>If a <code>Connector</code> is concrete (not abstract), then it must have at least two <code>relatedFeatures</code>.</p> + + + OCL2.0 + not isAbstract implies relatedFeature->size() >= 2 + + + + + <p>A <code>Connector</code> must directly or indirectly specialize the base <code>Connector</code> <code><em>Links::links</em></code> from the Kernel Semantic Library.</p> + + + OCL2.0 + specializesFromLibrary('Links::links') + + + + + <p>A <code>Connector</code> for an <code>AssociationStructure</code> must directly or indirectly specialize the base <code>Connector</code> <code><em>Objects::linkObjects</em></code> from the Kernel Semantic Library.</p> + + + OCL2.0 + association->exists(oclIsKindOf(AssociationStructure)) implies + specializesFromLibrary('Objects::linkObjects') + + + + + <p>A binary <code>Connector</code> for an <code>AssociationStructure</code> must directly or indirectly specialize the base <code>Connector</code> <code><em>Objects::binaryLinkObjects</em></code> from the Kernel Semantic Library.</p> + + + OCL2.0 + connectorEnds->size() = 2 and +association->exists(oclIsKindOf(AssociationStructure)) implies + specializesFromLibrary('Objects::binaryLinkObjects') + + + + + <p>A binary <code>Connector</code> must directly or indirectly specialize the base <code>Connector</code> <code><em>Links::binaryLinks</em></code> from the Kernel Semantic Library.</p> + + + OCL2.0 + connectorEnd->size() = 2 implies + specializesFromLibrary('Links::binaryLinks') + + + + + <p>If a <code>Connector</code> has more than two <code>connectorEnds</code>, then it must <em>not</em> specialize, directly or indirectly, the <code>Association</code> <em><code>BinaryLink</code></em> from the Kernel Semantic Library.</p> + + + OCL2.0 + connectorEnds->size() > 2 implies + not specializesFromLibrary('Links::BinaryLink') + + + + + <p>The <code>defaultFeaturingType</code> of a <code>Connector</code> is the innermost common direct or indirect <code>featuringType</code> of the <code>relatedFeatures</code> of the <code>Connector</code>, so that each <code>relatedElement</code> is featured within the <code>defaultFeaturingType</code>, if such exists.</p> + + + OCL2.0 + let commonFeaturingTypes : OrderedSet(Type) = + relatedFeature->closure(featuringType)->select(t | + relatedFeature->forAll(f | f.isFeaturedWithin(t)) + ) in +let nearestCommonFeaturingTypes : OrderedSet(Type) = + commonFeaturingTypes->reject(t1 | + commonFeaturingTypes->exists(t2 | + t2 <> t1 and t2->closure(featuringType)->contains(t1) + )) in +if nearestCommonFeaturingTypes->isEmpty() then null +else nearestCommonFeaturingTypes->first() +endif + + + + + + + <p>The <code>Features</code> that are related by this <code>Connector</code> considered as a <code>Relationship</code> and that restrict the links it identifies, given by the referenced <code>Features</code> of the <code>connectorEnds</code> of the <code>Connector</code>.</p> + + + + + + + + <p>The <code>Associations</code> that type the <code>Connector</code>.</p> + + + + + + + + <p>The <code>endFeatures</code> of a <code>Connector</code>, which redefine the <code>endFeatures</code> of the <code>associations</code> of the <code>Connector</code>. The <code>connectorEnds</code> determine via <code>ReferenceSubsetting</code> <code>Relationships</code> which <code>Features</code> are related by the <code>Connector</code>.</p> + + + + + + + <p>The source <code>relatedFeature</code> for this <code>Connector</code>. It is the first <code>relatedFeature</code>.</p> + + + + + + + <p>The target <code>relatedFeatures</code> for this <code>Connector</code>. This includes all the <code>relatedFeatures</code> other than the <code>sourceFeature</code>.</p> + + + + + + + <p>The innermost <code>Type</code> that is a common direct or indirect <code>featuringType</code> of the <code>relatedFeatures</code>, such that, if it exists and was the <code>featuringType</code> of this <code>Connector</code>, the <code>Connector</code> would satisfy the <code>checkConnectorTypeFeaturing</code> constraint.</p> + + + + + + + + + + + + + + + + + + + + <p>A <code>BindingConnector</code> is a binary <code>Connector</code> that requires its <code>relatedFeatures</code> to identify the same things (have the same values).</p> + + + + + <p>A <code>BindingConnector</code> must be binary.</p> + + + OCL2.0 + relatedFeature->size() = 2 + + + + + <p>A <code>BindingConnector</code> must directly or indirectly specialize the base <code>BindingConnector</code> <code><em>Links::selfLinks</em></code> from the Kernel Semantic Library.</p> + + + OCL2.0 + specializesFromLibrary('Links::selfLinks') + + + + + + + + + + + + + <p>A <code>Succession</code> is a binary <code>Connector</code> that requires its <code>relatedFeatures</code> to happen separately in time.</p> + + + + + <p>A <code>Succession</code> must directly or indirectly specialize the Feature <code><em>Occurrences::happensBeforeLinks</em></code> from the Kernel Semantic Library.</p> + + + OCL2.0 + specializesFromLibrary('Occurrences::happensBeforeLinks') + + + + + + + + + + + + + + + + + + + + <p>A <code>Connector</code> with a certain <code>defaultFeaturingType</code>.</p> + + + + + + diff --git a/Resources/SysML_only_xmi.uml b/Resources/SysML_only_xmi.uml index b0bfbbd7f..2764d000c 100644 --- a/Resources/SysML_only_xmi.uml +++ b/Resources/SysML_only_xmi.uml @@ -1,8543 +1,8554 @@ - - - - - - - - - <p>A <code>PortUsage</code> is a usage of a <code>PortDefinition</code>. A <code>PortUsage</code> itself as well as all its <code>nestedUsages</code> must be referential (non-composite).</p> - - - - <p>The <code>nestedUsages</code> of a <code>PortUsage</code> that are not themselves <code>PortUsages</code> must not be composite.</p> - - - OCL2.0 - nestedUsage-> - reject(oclIsKindOf(PortUsage))-> - forAll(not isComposite) - - - - - <p>A <code>PortUsage</code> must directly or indirectly specialize the <code>PortUsage</code> <em><code>Ports::ports</code></em> from the Systems Model Library.</p> - - - OCL2.0 - specializesFromLibrary('Ports::ports') - - - - - <p>A composite <code>PortUsage</code> with an <code>owningType</code> that is a <code>PortDefinition</code> or <code>PortUsage</code> must directly or indirectly specialize the <code>PortUsage</code> <em><code>Ports::Port::subports</code></em> from the Systems Model Library.</p> - - - OCL2.0 - isComposite and owningType <> null and - (owningType.oclIsKindOf(PortDefinition) or - owningType.oclIsKindOf(PortUsage)) implies - specializesFromLibrary('Ports::Port::subports') - - - - - <p>Unless a <code>PortUsage</code> has an <code>owningType</code> that is a <code>PortDefinition</code> or a <code>PortUsage</code>, it must be referential (non-composite).</p> - - - OCL2.0 - owningType = null or - not owningType.oclIsKindOf(PortDefinition) and - not owningType.oclIsKindOf(PortUsage) implies - isReference - - - - - <p>A <code>PortUsage</code> whose <code>owningType</code> is a <code>PartDefinition</code> or <code>PartUsage</code> must directly or indirectly specialize the <code>PortUsage</code> <em><code>Parts::Part::ownedPorts</code></em> from the Systems Model Library.</p> - - - OCL2.0 - owningType <> null and - (owningType.oclIsKindOf(PartDefinition) or - owningType.oclIsKindOf(PartUsage)) implies - specializesFromLibrary('Parts::Part::ownedPorts') - - - - - - <p>The <code>occurrenceDefinitions</code> of this <code>PortUsage</code>, which must all be <code>PortDefinitions<code>.</p> - - - - - - - - - <p>The PortUsages that are typed by a certain PortDefinition.</p> - - - - - - - - <p>A <code>PortDefinition</code> defines a point at which external entities can connect to and interact with a system or part of a system. Any <code>ownedUsages</code> of a <code>PortDefinition</code>, other than <code>PortUsages</code>, must not be composite.</p> + + + + + + + + + <p>A <code>PortUsage</code> is a usage of a <code>PortDefinition</code>. A <code>PortUsage</code> itself as well as all its <code>nestedUsages</code> must be referential (non-composite).</p> + + + + <p>The <code>nestedUsages</code> of a <code>PortUsage</code> that are not themselves <code>PortUsages</code> must not be composite.</p> + + + OCL2.0 + nestedUsage-> + reject(oclIsKindOf(PortUsage))-> + forAll(not isComposite) + + + + + <p>A <code>PortUsage</code> must directly or indirectly specialize the <code>PortUsage</code> <em><code>Ports::ports</code></em> from the Systems Model Library.</p> + + + OCL2.0 + specializesFromLibrary('Ports::ports') + + + + + <p>A composite <code>PortUsage</code> with an <code>owningType</code> that is a <code>PortDefinition</code> or <code>PortUsage</code> must directly or indirectly specialize the <code>PortUsage</code> <em><code>Ports::Port::subports</code></em> from the Systems Model Library.</p> + + + OCL2.0 + isComposite and owningType <> null and +(owningType.oclIsKindOf(PortDefinition) or + owningType.oclIsKindOf(PortUsage)) implies + specializesFromLibrary('Ports::Port::subports') + + + + + <p>Unless a <code>PortUsage</code> has an <code>owningType</code> that is a <code>PortDefinition</code> or a <code>PortUsage</code>, it must be referential (non-composite).</p> + + + OCL2.0 + owningType = null or +not owningType.oclIsKindOf(PortDefinition) and +not owningType.oclIsKindOf(PortUsage) implies + isReference + + + + + <p>A <code>PortUsage</code> whose <code>owningType</code> is a <code>PartDefinition</code> or <code>PartUsage</code> must directly or indirectly specialize the <code>PortUsage</code> <em><code>Parts::Part::ownedPorts</code></em> from the Systems Model Library.</p> + + + OCL2.0 + owningType <> null and +(owningType.oclIsKindOf(PartDefinition) or + owningType.oclIsKindOf(PartUsage)) implies + specializesFromLibrary('Parts::Part::ownedPorts') + + + + + + <p>The <code>occurrenceDefinitions</code> of this <code>PortUsage</code>, which must all be <code>PortDefinitions<code>.</p> + + + + + + + + + <p>The PortUsages that are typed by a certain PortDefinition.</p> + + + + + + + + <p>A <code>PortDefinition</code> defines a point at which external entities can connect to and interact with a system or part of a system. Any <code>ownedUsages</code> of a <code>PortDefinition</code>, other than <code>PortUsages</code>, must not be composite.</p> - - - - - <p>The <code>conjugatedPortDefinition</code> of a <code>PortDefinition</code> is the <code>ownedMember</code> that is a <code>ConjugatedPortDefinition</code>.</p> - - - OCL2.0 - conjugatedPortDefinition = - let conjugatedPortDefinitions : OrderedSet(ConjugatedPortDefinition) = - ownedMember->selectByKind(ConjugatedPortDefinition) in - if conjugatedPortDefinitions->isEmpty() then null - else conjugatedPortDefinitions->first() - endif - - - - - <p>The <code>ownedUsages</code> of a <code>PortDefinition</code> that are not <code>PortUsages</code> must not be composite.</p> - - - OCL2.0 - ownedUsage-> - reject(oclIsKindOf(PortUsage))-> - forAll(not isComposite) - - - - - <p>Unless it is a <code>ConjugatedPortDefinition</code>, a <code>PortDefinition</code> must have exactly one <code>ownedMember</code> that is a <code>ConjugatedPortDefinition</code>.</p> - - - OCL2.0 - not oclIsKindOf(ConjugatedPortDefinition) implies - ownedMember-> - selectByKind(ConjugatedPortDefinition)-> - size() = 1 - - - - - <p>A <code>PortDefinition</code> must directly or indirectly specialize the <code>PortDefinition</code> <em><code>Ports::Port</code></em> from the Systems Model Library.</p> - - - OCL2.0 - specializesFromLibrary('Ports::Port') - - - - - - - - - <p>The <codeConjugatedPortDefinition</code> that is conjugate to this <code>PortDefinition</code>.</p> - - - - - - - - - - - <p>The PortConjugation that relates a certain PortDefinition to its ConjugatedPortDefinition (if any).</p> - - - - - - - - - <p>A <code>ConjugatedPortDefinition</code> is a <code>PortDefinition</code> that is a <code>PortDefinition</code> of its original <code>PortDefinition</code>. That is, a <code>ConjugatedPortDefinition</code> inherits all the <code>features</code> of the original <code>PortDefinition</code>, but input <code>flows</code> of the original <code>PortDefinition</code> become outputs on the <code>ConjugatedPortDefinition</code> and output <code>flows</code> of the original <code>PortDefinition</code> become inputs on the <code>ConjugatedPortDefinition</code>. Every <code>PortDefinition</code> (that is not itself a <code><code>ConjugatedPortDefinition</code></code>) has exactly one corresponding <code>ConjugatedPortDefinition</code>, whose effective name is the name of the <code>originalPortDefinition</code>, with the character <code>~</code> prepended.</p> - - - - <p>The <code>originalPortDefinition</code> of the <code>ownedPortConjugator</code> of a <code>ConjugatedPortDefinition</code> must be the <code>originalPortDefinition</code> of the <code>ConjugatedPortDefinition</code>.</p> - - - OCL2.0 - ownedPortConjugator.originalPortDefinition = originalPortDefinition - - - - - <p>A <code>ConjugatedPortDefinition</code> must not itself have a <code>conjugatedPortDefinition</code>. - - - OCL2.0 - conjugatedPortDefinition = null - - - - - - <p>The original <code>PortDefinition</code> for this <code>ConjugatedPortDefinition</code>, which is the <code>owningNamespace</code> of the <code>ConjugatedPortDefinition</code>.</p> - - - - - - - - <p>The <code>PortConjugation</code> that is the <code>ownedConjugator</code> of this <code>ConjugatedPortDefinition</code>, linking it to its <code>originalPortDefinition</code>.</p> - - - - - - - - <p>If the <code>name</code> of the <code>originalPortDefinition</code> is non-empty, then return that with the character <code>~</code> prepended.</p> - - - - OCL2.0 - let originalName : String = originalPortDefinition.name in - if originalName = null then null - else '~' + originalName - endif - - - - - - - - - - - - - <p>A <code>PortConjugation</code> is a <code>Conjugation</code> <code>Relationship</code> between a <code>PortDefinition</code> and its corresponding <code>ConjugatedPortDefinition</code>. As a result of this <code>Relationship</code>, the <code>ConjugatedPortDefinition</code> inherits all the <code>features</code> of the original <code>PortDefinition</code>, but input <code>flows</code> of the original <code>PortDefinition</code> become outputs on the <code>ConjugatedPortDefinition</code> and output <code>flows</code> of the original <code>PortDefinition</code> become inputs on the <code>ConjugatedPortDefinition</code>.</code></p> - - - - - - - - <p>The <code>PortDefinition</code> being conjugated.</p> - - - - - - - - <p>The <code>ConjugatedPortDefinition</code> that is conjugate to the <code>originalPortDefinition</code>.</p> - - - - - - - - - - <p>A <code>ConjugatedPortTyping</code> is a <code>FeatureTyping</code> whose <code>type</code> is a <code>ConjugatedPortDefinition</code>. (This relationship is intended to be an abstract-syntax marker for a special surface notation for conjugated typing of ports.)</p> - - - - <p>The <code>portDefinition</code> of a <code>ConjugatedPortTyping</code> is the <code>originalPortDefinition</code> of the <code>conjugatedPortDefinition</code> of the <code>ConjugatedPortTyping</code>.</p> - - - OCL2.0 - portDefinition = conjugatedPortDefinition.originalPortDefinition - - - - - - - - <p>The <code>originalPortDefinition</code> of the <code>conjugatedPortDefinition</code> of this <code>ConjugatedPortTyping</code>.</p> - - - - - - - <p>The <code>type</code> of this <code>ConjugatedPortTyping</code> considered as a <code>FeatureTyping</code>, which must be a <code>ConjugatedPortDefinition</code>.</p> - - - - - - - - - - - <p>The ConjugatedPortTypings whose <code>conjugatedPortDefinition</code> a certain ConjugatedPortDefinition.</p> - - - - - - - - - - <p>The ConjugatedPortTypings whose <code>portDefinition</code> is a certain PortDefinition.</p> - - - - - - - - - - - <p>An <code>AttributeDefinition</code> is a <code>Definition</code> and a <code>DataType</code> of information about a quality or characteristic of a system or part of a system that has no independent identity other than its value. All <code>features</code> of an <code>AttributeDefinition</code> must be referential (non-composite).</p> + + + + + <p>The <code>conjugatedPortDefinition</code> of a <code>PortDefinition</code> is the <code>ownedMember</code> that is a <code>ConjugatedPortDefinition</code>.</p> + + + OCL2.0 + conjugatedPortDefinition = +let conjugatedPortDefinitions : OrderedSet(ConjugatedPortDefinition) = + ownedMember->selectByKind(ConjugatedPortDefinition) in +if conjugatedPortDefinitions->isEmpty() then null +else conjugatedPortDefinitions->first() +endif + + + + + <p>The <code>ownedUsages</code> of a <code>PortDefinition</code> that are not <code>PortUsages</code> must not be composite.</p> + + + OCL2.0 + ownedUsage-> + reject(oclIsKindOf(PortUsage))-> + forAll(not isComposite) + + + + + <p>Unless it is a <code>ConjugatedPortDefinition</code>, a <code>PortDefinition</code> must have exactly one <code>ownedMember</code> that is a <code>ConjugatedPortDefinition</code>.</p> + + + OCL2.0 + not oclIsKindOf(ConjugatedPortDefinition) implies + ownedMember-> + selectByKind(ConjugatedPortDefinition)-> + size() = 1 + + + + + <p>A <code>PortDefinition</code> must directly or indirectly specialize the <code>PortDefinition</code> <em><code>Ports::Port</code></em> from the Systems Model Library.</p> + + + OCL2.0 + specializesFromLibrary('Ports::Port') + + + + + + + + + <p>The <code>ConjugatedPortDefinition</code> that is conjugate to this <code>PortDefinition</code>.</p> + + + + + + + + + + + <p>The PortConjugation that relates a certain PortDefinition to its ConjugatedPortDefinition (if any).</p> + + + + + + + + + <p>A <code>ConjugatedPortDefinition</code> is a <code>PortDefinition</code> that is a <code>PortDefinition</code> of its original <code>PortDefinition</code>. That is, a <code>ConjugatedPortDefinition</code> inherits all the <code>features</code> of the original <code>PortDefinition</code>, but input <code>flows</code> of the original <code>PortDefinition</code> become outputs on the <code>ConjugatedPortDefinition</code> and output <code>flows</code> of the original <code>PortDefinition</code> become inputs on the <code>ConjugatedPortDefinition</code>. Every <code>PortDefinition</code> (that is not itself a <code><code>ConjugatedPortDefinition</code></code>) has exactly one corresponding <code>ConjugatedPortDefinition</code>, whose effective name is the name of the <code>originalPortDefinition</code>, with the character <code>~</code> prepended.</p> + + + + <p>The <code>originalPortDefinition</code> of the <code>ownedPortConjugator</code> of a <code>ConjugatedPortDefinition</code> must be the <code>originalPortDefinition</code> of the <code>ConjugatedPortDefinition</code>.</p> + + + OCL2.0 + ownedPortConjugator.originalPortDefinition = originalPortDefinition + + + + + <p>A <code>ConjugatedPortDefinition</code> must not itself have a <code>conjugatedPortDefinition</code>. + + + OCL2.0 + conjugatedPortDefinition = null + + + + + + <p>The original <code>PortDefinition</code> for this <code>ConjugatedPortDefinition</code>, which is the <code>owningNamespace</code> of the <code>ConjugatedPortDefinition</code>.</p> + + + + + + + + <p>The <code>PortConjugation</code> that is the <code>ownedConjugator</code> of this <code>ConjugatedPortDefinition</code>, linking it to its <code>originalPortDefinition</code>.</p> + + + + + + + + <p>If the <code>name</code> of the <code>originalPortDefinition</code> is non-empty, then return that with the character <code>~</code> prepended.</p> + + + + OCL2.0 + let originalName : String = originalPortDefinition.name in +if originalName = null then null +else '~' + originalName +endif + + + + + + + + + + + + + <p>A <code>PortConjugation</code> is a <code>Conjugation</code> <code>Relationship</code> between a <code>PortDefinition</code> and its corresponding <code>ConjugatedPortDefinition</code>. As a result of this <code>Relationship</code>, the <code>ConjugatedPortDefinition</code> inherits all the <code>features</code> of the original <code>PortDefinition</code>, but input <code>flows</code> of the original <code>PortDefinition</code> become outputs on the <code>ConjugatedPortDefinition</code> and output <code>flows</code> of the original <code>PortDefinition</code> become inputs on the <code>ConjugatedPortDefinition</code>.</code></p> + + + + + + + + <p>The <code>PortDefinition</code> being conjugated.</p> + + + + + + + + <p>The <code>ConjugatedPortDefinition</code> that is conjugate to the <code>originalPortDefinition</code>.</p> + + + + + + + + + + <p>A <code>ConjugatedPortTyping</code> is a <code>FeatureTyping</code> whose <code>type</code> is a <code>ConjugatedPortDefinition</code>. (This relationship is intended to be an abstract-syntax marker for a special surface notation for conjugated typing of ports.)</p> + + + + <p>The <code>portDefinition</code> of a <code>ConjugatedPortTyping</code> is the <code>originalPortDefinition</code> of the <code>conjugatedPortDefinition</code> of the <code>ConjugatedPortTyping</code>.</p> + + + OCL2.0 + portDefinition = conjugatedPortDefinition.originalPortDefinition + + + + + + + + <p>The <code>originalPortDefinition</code> of the <code>conjugatedPortDefinition</code> of this <code>ConjugatedPortTyping</code>.</p> + + + + + + + <p>The <code>type</code> of this <code>ConjugatedPortTyping</code> considered as a <code>FeatureTyping</code>, which must be a <code>ConjugatedPortDefinition</code>.</p> + + + + + + + + + + + <p>The ConjugatedPortTypings whose <code>conjugatedPortDefinition</code> a certain ConjugatedPortDefinition.</p> + + + + + + + + + + <p>The ConjugatedPortTypings whose <code>portDefinition</code> is a certain PortDefinition.</p> + + + + + + + + + + + <p>An <code>AttributeDefinition</code> is a <code>Definition</code> and a <code>DataType</code> of information about a quality or characteristic of a system or part of a system that has no independent identity other than its value. All <code>features</code> of an <code>AttributeDefinition</code> must be referential (non-composite).</p> - <p>As a <code>DataType</code>, an <code>AttributeDefinition</code> must specialize, directly or indirectly, the base <code>DataType</code> <code><em>Base::DataValue</em></code> from the Kernel Semantic Library.</p> - - - - <p>All <code>features</code> of an <code>AttributeDefinition</code> must be non-composite.</p> - - - OCL2.0 - feature->forAll(not isComposite) - - - - - - - - - - - <p>The AttributeUsages that are typed by a certain DataType.</p> - - - - - - - - <p>An <code>AttributeUsage</code> is a <code>Usage</code> whose type is a <code>DataType</code>. Nominally, if the type is an <code>AttributeDefinition</code>, an <code>AttributeUsage</code> is a usage of a <code>AttributeDefinition</code> to represent the value of some system quality or characteristic. However, other kinds of kernel <code>DataTypes</code> are also allowed, to permit use of <code>DataTypes</code> from the Kernel Model Libraries. An <code>AttributeUsage</code> itself as well as all its nested <code>features</code> must be referential (non-composite).</p> +<p>As a <code>DataType</code>, an <code>AttributeDefinition</code> must specialize, directly or indirectly, the base <code>DataType</code> <code><em>Base::DataValue</em></code> from the Kernel Semantic Library.</p> + + + + <p>All <code>features</code> of an <code>AttributeDefinition</code> must be non-composite.</p> + + + OCL2.0 + feature->forAll(not isComposite) + + + + + + + + + + + <p>The AttributeUsages that are typed by a certain DataType.</p> + + + + + + + + <p>An <code>AttributeUsage</code> is a <code>Usage</code> whose type is a <code>DataType</code>. Nominally, if the type is an <code>AttributeDefinition</code>, an <code>AttributeUsage</code> is a usage of a <code>AttributeDefinition</code> to represent the value of some system quality or characteristic. However, other kinds of kernel <code>DataTypes</code> are also allowed, to permit use of <code>DataTypes</code> from the Kernel Model Libraries. An <code>AttributeUsage</code> itself as well as all its nested <code>features</code> must be referential (non-composite).</p> - <p>An <code>AttributeUsage</code> must specialize, directly or indirectly, the base <code>Feature</code> <code><em>Base::dataValues</em></code> from the Kernel Semantic Library.</p> - - - - <p>An <code>AttributeUsage</code> is always referential.</p> - - - OCL2.0 - isReference - - - - - <p>All <code>features</code> of an <code>AttributeUsage</code> must be non-composite.</p> - - - OCL2.0 - feature->forAll(not isComposite) - - - - - <p>An <code>AttributeUsage</code> must directly or indirectly specialize <code><em>Base::dataValues</em></code> from the Kernel Semantic Library.</p> - - - OCL2.0 - specializesFromLibrary('Base::dataValues') - - - - - - <p>The <code>DataTypes</code> that are the types of this <code>AttributeUsage</code>. Nominally, these are <code>AttributeDefinitions</code>, but other kinds of kernel <code>DataTypes</code> are also allowed, to permit use of <code>DataTypes</code> from the Kernel Model Libraries.</p> - - - - - - - - <p>Always true for an <code>AttributeUsage</code>.</p> - - - - - - - - - - - <p>The PerformActionUsages that have a certain ActionUsage as their <code>performedAction</code>.</p> - - - - - - - - <p>An <code>AcceptActionUsage</code> is an <code>ActionUsage</code> that specifies the acceptance of an <em><code>incomingTransfer</code></em> from the <code><em>Occurrence</em></code> given by the result of its <code>receiverArgument</code> Expression. (If no <code>receiverArgument</code> is provided, the default is the <em><code>this</code></em> context of the AcceptActionUsage.) The payload of the accepted <em><code>Transfer</em></code> is output on its <code>payloadParameter</code>. Which <em><code>Transfers</em></code> may be accepted is determined by conformance to the typing and (potentially) binding of the <code>payloadParameter</code>.</p> - - - - - <p>An <code>AcceptUsageAction</code> must have at least two input <code>parameters</code>, corresponding to its <em><code>payload</code></em> and <em><code>receiver</code>, respectively (even if they have no <code>FeatureValue</code>). (Note that the <code>payloadParameter</code> is an input as well as an output.)</p> - - - OCL2.0 - inputParameters()->size() >= 2 - - - - - <p>The <code>receiverArgument</code> of an <code>AcceptUsageAction</code> is its second argument <code>Expression</code>.</p> - - - OCL2.0 - receiverArgument = argument(2) - - - - - <p>The <code>payloadArgument</code> of an <code>AcceptUsageAction</code> is its first argument <code>Expression</code>.</p> - - - OCL2.0 - payloadArgument = argument(1) - - - - - <p>The <code>payloadParameter</code> of an <code>AcceptActionUsage<code> is its first <code>parameter</code>.</p> - - - OCL2.0 - payloadParameter = - if parameter->isEmpty() then null - else parameter->first() endif - - - - - <p>An <code>AcceptActionUsage</code> that is not the <code>triggerAction</code> of a <code>TransitionUsage</code> must directly or indirectly specialize the <code>ActionUsage</code> <em><code>Actions::acceptActions</code></em> from the Systems Model Library.</p> - - - OCL2.0 - not isTriggerAction() implies - specializesFromLibrary('Actions::acceptActions') - - - - - <p>A composite <code>AcceptActionUsage</code> that is a subaction usage, but is <em>not</em> the <code>triggerAction</code> of a <code>TransitionUsage</code>, must directly or indirectly specialize the <code>ActionUsage</code> <em><code>Actions::Action::acceptSubactions</code></em> from the Systems Model Library.</p> - - - OCL2.0 - isSubactionUsage() and not isTriggerAction() implies - specializesFromLibrary('Actions::Action::acceptSubactions') - - - - - <p>An <code>AcceptActionUsage</code> that is the <code>triggerAction</code> of <code>TransitionUsage</code> must directly or indirectly specialize the <code>ActionUsage</code> <em><code>Actions::TransitionAction::accepter</code></em> from the Systems Model Library.</p> - - - OCL2.0 - isTriggerAction() implies - specializesFromLibrary('Actions::TransitionAction::accepter') - - - - - <p>If the <code>payloadArgument</code> of an <code>AcceptActionUsage</code> is a <code>TriggerInvocationExpression</code>, then the <code>AcceptActionusage</code> must have an <code>ownedFeature</code> that is a <code>BindingConnector</code> between its <code><em>receiver</em></code> <code>parameter</code> and the <code><em>receiver</em></code> <code>parameter</code> of the <code>TriggerInvocationExpression</code>.</p> - - - OCL2.0 - payloadArgument <> null and - payloadArgument.oclIsKindOf(TriggerInvocationExpression) implies - let invocation : Expression = - payloadArgument.oclAsType(Expression) in - parameter->size() >= 2 and - invocation.parameter->size() >= 2 and - ownedFeature->selectByKind(BindingConnector)->exists(b | - b.relatedFeatures->includes(parameter->at(2)) and - b.relatedFeatures->includes(invocation.parameter->at(2))) - - - - - - <p>An <code>Expression</code> whose <code>result</code> is bound to the <em><code>receiver</code></em> input <code>parameter</code> of this <code>AcceptActionUsage</code>.</p> - - - - - - - - - <p>The <code>nestedReference</code> of this <code>AcceptActionUsage</code> that redefines the <code>payload</code> output <code>parameter</code> of the base <code>AcceptActionUsage</code> <em><code>AcceptAction</code></em> from the Systems Model Library.</p> - - - - - - - - - <p>An <code>Expression</code> whose <code>result</code> is bound to the <code><em>payload</em></code> <code>parameter</code> of this <code>AcceptActionUsage</code>. If provided, the <code>AcceptActionUsage</code> will only accept a <code><em>Transfer</em></code> with exactly this <code><em>payload</em></code>.</p> - - - - - - - - - <p>Check if this <code>AcceptActionUsage</code> is the <code>triggerAction</code> of a <code>TransitionUsage</code>.</p> - - - - OCL2.0 - owningType <> null and - owningType.oclIsKindOf(TransitionUsage) and - owningType.oclAsType(TransitionUsage).triggerAction->includes(self) - - - - - - - - - - - <p>The <code>SendActionUsage</code> that has a certain <code>Expression<code> as its <code>receiverArgument</code>.</p> - - - - - - - - <p>A <code>SendActionUsage</code> is an <code>ActionUsage</code> that specifies the sending of a payload given by the result of its <code>payloadArgument</code> <code>Expression</code> via a <em><code>MessageTransfer</code></em> whose <em><code>source</code></em> is given by the result of the <code>senderArgument</code> <code>Expression</code> and whose <code>target</code> is given by the result of the <code>receiverArgument</code> <code>Expression</code>. If no <code>senderArgument</code> is provided, the default is the <em><code>this</code></em> context for the action. If no <code>receiverArgument</code> is given, then the receiver is to be determined by, e.g., outgoing <em><code>Connections</code></em> from the sender.</p> - - - - - <p>The <code>senderArgument</code> of a <code>SendActionUsage</code> is its second argument <code>Expression</code>.</p> - - - OCL2.0 - senderArgument = argument(2) - - - - - <p>The <code>payloadArgument</code> of a <code>SendActionUsage</code> is its first argument <code>Expression</code>.</p> - - - OCL2.0 - payloadArgument = argument(1) - - - - - <p>A <code>SendActionUsage</code> must have at least three owned input <code>parameters</code>, corresponding to its <em><code>payload</code></em>, <em><code>sender</code></em> and <em><code>receiver</code></em>, respectively (whether or not they have <code>FeatureValues</code>).</p> - - - OCL2.0 - inputParameters()->size() >= 3 - - - - - <p>The <code>receiverArgument</code> of a <code>SendActionUsage</code> is its third argument <code>Expression</code>.</p> - - - OCL2.0 - receiverArgument = argument(3) - - - - - <p>A composite <code>SendActionUsage</code> that is a subaction must directly or indirectly specialize the <code>ActionUsage</code> <em><code>Actions::Action::sendSubactions</code></em> from the Systems Model Library.</p> - - - OCL2.0 - isSubactionUsage() implies - specializesFromLibrary('Actions::Action::acceptSubactions') - - - - - <p>A <code>SendActionUsage</code> must directly or indirectly specialize the <code>ActionUsage</code> <em><code>Actions::sendActions</code></em> from the Systems Model Library.</p> - - - OCL2.0 - specializesFromLibrary('Actions::sendActions') - - - - - - <p>An <code>Expression</code> whose result is bound to the <em><code>receiver</code></em> input parameter of this <code>SendActionUsage</code>.</p> - - - - - - - - - <p>An <code>Expression</code> whose result is bound to the <code><em>payload</em></code> input parameter of this <code>SendActionUsage</code>.</p> - - - - - - - - - <p>An <code>Expression</code> whose result is bound to the <em><code>sender</code></em> input parameter of this <code>SendActionUsage</code>.</p> - - - - - - - - - - <p>A <code>PerformActionUsage</code> is an <code>ActionUsage</code> that represents the performance of an <code>ActionUsage</code>. Unless it is the <code>PerformActionUsage</code> itself, the <code>ActionUsage</code> to be performed is related to the <code>PerformActionUsage</code> by a <code>ReferenceSubsetting</code> relationship. A <code>PerformActionUsage</code> is also an <code>EventOccurrenceUsage</code>, with its <code>performedAction</code> as the <code>eventOccurrence</code>.</p> - - - - <p>If a <code>PerformActionUsage</code> has an <code>ownedReferenceSubsetting</code>, then the <code>featureTarget</code> of the <code>referencedFeature</code> must be an <code>ActionUsage</code>.</p> - - - OCL2.0 - referencedFeatureTarget() <> null implies - referencedFeatureTarget().oclIsKindOf(ActionUsage) - - - - - <p>If a <code>PerformActionUsage</code> has an <code>owningType</code> that is a <code>PartDefinition</code> or <code>PartUsage</code>, then it must directly or indirectly specialize the <code>ActionUsage</code> <code><em>Parts::Part::performedActions</em></code>.</p> - - - OCL2.0 - owningType <> null and - (owningType.oclIsKindOf(PartDefinition) or - owningType.oclIsKindOf(PartUsage)) implies - specializesFromLibrary('Parts::Part::performedActions') - - - - - - - <p>The <code>ActionUsage</code> to be performed by this <code>PerformedActionUsage</code>. It is the <code>eventOccurrence</code> of the <code>PerformActionUsage</code> considered as an <code>EventOccurrenceUsage</code>, which must be an <code>ActionUsage</code>.</p> - - - - - - - - <p>The naming <code>Feature</code> of a <code>PerformActionUsage</code> is its <code>performedAction</code>, if this is different than the <code>PerformActionUsage</code>. If the <code>PerformActionUsage</code> is its own <code>performedAction</code>, then the naming <code>Feature</code> is the same as the usual default for a <code>Usage</code>.</p> - - - - OCL2.0 - if performedAction <> self then performedAction - else self.oclAsType(Usage).namingFeature() - endif - - - - - - - - - - - - <p>A <code>ForkNode</code> is a <code>ControlNode</code> that must be followed by successor <code>Actions</code> as given by all its outgoing <code>Successions</code>.</p> - - - - <p>A <code>ForkNode</code> may have at most one incoming <code>Succession</code>.</p> - - - OCL2.0 - targetConnector->selectByKind(Succession)->size() <= 1 - - - - - <p>A <code>ForkNode</code> must directly or indirectly specialize the <code>ActionUsage</code> <em><code>Actions::Action::forks</code></em> from the Systems Model Library.</p> - - - OCL2.0 - specializesFromLibrary('Actions::Action::forks') - - - - - - - <p>A <code>JoinNode</code> is a <code>ControlNode</code> that waits for the completion of all the predecessor <code>Actions</code> given by incoming <code>Successions</code>.</p> - - - - <p>A <code>JoinNode</code> may have at most one outgoing <code>Succession</code>.</p> - - - OCL2.0 - sourceConnector->selectByKind(Succession)->size() <= 1 - - - - - <p>A <code>JoinNode</code> must directly or indirectly specialize the <code>ActionUsage</code> <em><code>Actions::Action::joins</code></em> from the Systems Model Library.</p> - - - OCL2.0 - specializesFromLibrary('Actions::Action::join') - - - - - - - <p>A <code>ControlNode</code> is an <code>ActionUsage</code> that does not have any inherent behavior but provides constraints on incoming and outgoing <code>Successions</code> that are used to control other <code>Actions</code>. A <code>ControlNode</code> must be a composite owned <code>usage</code> of an <code>ActionDefinition</code> or <code>ActionUsage</code>.</p> - - - - - <p>All outgoing <code>Successions</code> from a <code>ControlNode</code> must have a source <code>multiplicity</code> of <code>1..1</code>.</p> - - - OCL2.0 - sourceConnector->selectByKind(Succession)-> - collect(connectorEnd->at(1).multiplicity)-> - forAll(sourceMult | - multiplicityHasBounds(sourceMult, 1, 1)) - - - - - <p>The <code>owningType</code> of a <code>ControlNode</code> must be an <code>ActionDefinition</code> or <code>ActionUsage</code>.</p> - - - OCL2.0 - owningType <> null and - (owningType.oclIsKindOf(ActionDefinition) or - owningType.oclIsKindOf(ActionUsage)) - - - - - <p>All incoming <code>Successions</code> to a <code>ControlNode</code> must have a target <code>multiplicity</code> of <code>1..1</code>.</p> - - - OCL2.0 - targetConnector->selectByKind(Succession)-> - collect(connectorEnd->at(2).multiplicity)-> - forAll(targetMult | - multiplicityHasBounds(targetMult, 1, 1)) - - - - - <p>A <code>ControlNode</code> must directly or indirectly specialize the <code>ActionUsage</code> <em><code>Actions::Action::control</code></em> from the Systems Model Library.</p> - - - OCL2.0 - specializesFromLibrary('Action::Action::controls') - - - - - <p>A <code>ControlNode</code> must be composite.</p> - - - OCL2.0 - isComposite - - - - - - <p>Check that the given <code>Multiplicity</code> has <code>lowerBound</code> and <code>upperBound</code> expressions that are model-level evaluable to the given <code>lower</code> and <code>upper</code> values.</p> - - - - OCL2.0 - mult <> null and - if mult.oclIsKindOf(MultiplicityRange) then - mult.oclAsType(MultiplicityRange).hasBounds(lower, upper) - else - mult.allSuperTypes()->exists( - oclisKindOf(MultiplicityRange) and - oclAsType(MultiplicityRange).hasBounds(lower, upper) - endif - - - - - - - - - - - - - - - - - - - <p>An <code>ActionUsage</code> is a <code>Usage</code> that is also a <code>Step</code>, and, so, is typed by a <code>Behavior</code>. Nominally, if the type is an <code>ActionDefinition</code>, an <code>ActionUsage</code> is a <code>Usage</code> of that <code>ActionDefinition</code> within a system. However, other kinds of kernel <code>Behaviors</code> are also allowed, to permit use of <code>Behaviors</code> from the Kernel Model Libraries.</p> - - - - - <p>A composite <code>ActionUsage</code> that is a subaction usage must directly or indirectly specialize the <code>ActionUsage</code> <em><code>Actions::Action::subactions</code></em> from the Systems Model Library.</p> - - - OCL2.0 - isSubactionUsage() implies - specializesFromLibrary('Actions::Action::subactions') - - - - - <p>An <code>ActionUsage</code> must directly or indirectly specialize the <code>ActionUsage</code> <em><code>Actions::actions</code></em> from the Systems Model Library.</p> - - - OCL2.0 - specializesFromLibrary('Actions::actions') - - - - - <p>A composite <code>ActionUsage</code> whose <code>owningType</code> is <code>PartDefinition</code> or <code>PartUsage</code> must directly or indirectly specialize the <code>ActionUsage</code> <em><code>Parts::Part::ownedActions</code></em> from the Systems Model Library.</p> - - - OCL2.0 - isComposite and owningType <> null and - (owningType.oclIsKindOf(PartDefinition) or - owningType.oclIsKindOf(PartUsage)) implies - specializesFromLibrary('Parts::Part::ownedActions') - - - - - <p>An <code>ActionUsage</code> that is the <code><em>entry</em></code>, <code><em>do</em></code>, or <code><em>exit</em></code> <code><em>Action</em></code> of a <code>StateDefinition</code> or <code>StateUsage</code> must redefine the <code>entryAction</code>, <code>doAction</code>, or <code>exitAction</code> <code>feature</code>, respectively, of the <code>StateDefinition</code> <code><em>States::StateAction</em></code> from the Systems Model Library.</p> - - - OCL2.0 - owningFeatureMembership <> null and - owningFeatureMembership.oclIsKindOf(StateSubactionMembership) implies - let kind : StateSubactionKind = - owningFeatureMembership.oclAsType(StateSubactionMembership).kind in - if kind = StateSubactionKind::entry then - redefinesFromLibrary('States::StateAction::entryAction') - else if kind = StateSubactionKind::do then - redefinesFromLibrary('States::StateAction::doAction') - else - redefinesFromLibrary('States::StateAction::exitAction') - endif endif - - - - - - - - - <p>The <code>Behaviors</code> that are the <code>types</code> of this <code>ActionUsage</code>. Nominally, these would be <code>ActionDefinitions</code>, but other kinds of Kernel <code>Behaviors</code> are also allowed, to permit use of <code>Behaviors</code> from the Kernel Model Libraries.</p> - - - - - - - - - - - <p>Return the owned input <code>parameters</code> of this <code>ActionUsage</code>.</p> - - - - OCL2.0 - input->select(f | f.owner = self) - - - - - - - - - - - <p>Return the <code>i</code>-th owned input <code>parameter</code> of the <code>ActionUsage</code>. Return null if the <code>ActionUsage</code> has less than <code>i</code> owned input <code>parameters</code>.</p> - - - - OCL2.0 - if inputParameters()->size() < i then null - else inputParameters()->at(i) - endif - - - - - - - - - - - - - - <p>Return the <code>i</code>-th argument <code>Expression</code> of an <code>ActionUsage</code>, defined as the <code>value</code> <code>Expression</code> of the <code>FeatureValue</code> of the <code>i</code>-th owned input <code>parameter</code> of the <code>ActionUsage</code>. Return null if the <code>ActionUsage</code> has less than <code>i</code> owned input <code>parameters</code> or the <code>i</code>-th owned input <code>parameter</code> has no <code>FeatureValue</code>.</p> - - - - OCL2.0 - if inputParameter(i) = null then null - else - let featureValue : Sequence(FeatureValue) = inputParameter(i). - ownedMembership->select(oclIsKindOf(FeatureValue)) in - if featureValue->isEmpty() then null - else featureValue->at(1).value - endif - endif - - - - - - - - - - - - - - <p>Check if this <code>ActionUsage</code> is composite and has an <code>owningType</code> that is an <code>ActionDefinition</code> or <code>ActionUsage</code> but is <em>not</em> the <code>entryAction</code> or <code>exitAction</em></code> of a <code>StateDefinition</code> or <code>StateUsage</code>. If so, then it represents an <code><em>Action</em></code> that is a <code><em>subaction</em></code> of another <code><em>Action</em></code>.</p> - - - - OCL2.0 - isComposite and owningType <> null and - (owningType.oclIsKindOf(ActionDefinition) or - owningType.oclIsKindOf(ActionUsage)) and - (owningFeatureMembership.oclIsKindOf(StateSubactionMembership) implies - owningFeatureMembership.oclAsType(StateSubactionMembership).kind = - StateSubactionKind::do) - - - - - - - - - - - <p>The Activities that feature a certain ActionUsage.</p> - - - - - - - - - - <p>A <code>DecisionNode</code> is a <code>ControlNode</code> that makes a selection from its outgoing <code>Successions</code>.</p> - - - - <p>A <code>DecisionNode</code> may have at most one incoming <code>Succession</code>.</p> - - - OCL2.0 - targetConnector->selectByKind(Succession)->size() <= 1 - - - - - <p>All outgoing <code>Successions</code> from a <code>DecisionNode</code> must have a target <code>multiplicity</code> of <code>0..1</code>.</p> - - - OCL2.0 - sourceConnector->selectAsKind(Succession)-> - collect(connectorEnd->at(2))-> - forAll(targetMult | - multiplicityHasBounds(targetMult, 0, 1)) - - - - - <p>A <code>DecisionNode</code> must directly or indirectly specialize the <code>ActionUsage</code> <em><code>Actions::Action::decisions</code></em> from the Systems Model Library.</p> - - - OCL2.0 - specializesFromLibrary('Actions::Action::decisions') - - - - - <p>All outgoing <code>Successions</code> from a <code>DecisionNode</code> must subset the inherited <em><code>outgoingHBLink</code></em> <code>feature</code> of the <code>DecisionNode</code>.</p> - - - OCL2.0 - sourceConnector->selectByKind(Succession)-> - forAll(subsetsChain(self, - resolveGlobal('ControlPerformances::MergePerformance::outgoingHBLink'))) - - - - - - - <p>A <code>MergeNode</code> is a <code>ControlNode</code> that asserts the merging of its incoming <code>Successions</code>. A <code>MergeNode</code> may have at most one outgoing <code>Successions</code>.</p> - - - - <p>A <code>MergeNode</code> may have at most one outgoing <code>Succession</code>.</p> - - - OCL2.0 - sourceConnector->selectAsKind(Succession)->size() <= 1 - - - - - <p>All incoming <code>Successions</code> to a <code>MergeNode</code> must have a source <code>multiplicity</code> of <code>0..1</code>.</p> - - - OCL2.0 - targetConnector->selectByKind(Succession)-> - collect(connectorEnd->at(1))-> - forAll(sourceMult | - multiplicityHasBounds(sourceMult, 0, 1)) - - - - - <p>All incoming <code>Successions</code> to a <code>MergeNode</code> must subset the inherited <em><code>incomingHBLink</code></em> <code>feature</code> of the <code>MergeNode</code>.</p> - - - OCL2.0 - targetConnector->selectByKind(Succession)-> - forAll(subsetsChain(self, - resolveGlobal('ControlPerformances::MergePerformance::incomingHBLink'))) - - - - - <p>A <code>MergeNode</code> must directly or indirectly specialize the <code>ActionUsage</code> <em><code>Actions::Action::merges</code></em> from the Systems Model Library.</p> - - - OCL2.0 - specializesFromLibrary('Actions::Action::merges') - - - - - - - - <p>The ActionUsages being typed by a certain Behavior.</p> - - - - - - - - - - <p>An <code>ActionDefinition</code> is a <code>Definition</code> that is also a <code>Behavior</code> that defines an <em><code>Action</code></em> performed by a system or part of a system.</p> - - - - <p>An <code>ActionDefinition</code> must directly or indirectly specialize the <code>ActionDefinition</code> <em><code>Actions::Action</code></em> from the Systems Model Library.</p> - - - OCL2.0 - specializesFromLibrary('Actions::Action') - - - - - <p> The <code>actions</code> of a <code>ActionDefinition</code> are those of its <code>usages</code> that are <code>ActionUsages</code>.</p> - - - OCL2.0 - action = usage->selectByKind(ActionUsage) - - - - - - - - - <p>The <code>ActionUsages</code> that are <code>steps</code> in this <code>ActionDefinition</code>, which define the actions that specify the behavior of the <code>ActionDefinition</code>.</p> - - - - - - - - - - - - <p>The <code>SendActionUsage</code> that has a certain <code>Expression</code> as its <code>itemsArgument</code>.</p> - - - - - - - - - <p>The AcceptActionUsage that has a certain Expression as its <code>receiverArgument</code>.</p> - - - - - - - - - <p>The AssignmentActionUsages that gave a certain <code>referent</code> Expression.</p> - - - - - - - - - - <p>The <code>ForLoopActionUsage</code> that has a certain <code>Expression</code> as its <code>seqArgument</code>.</p> - - - - - - - - <p>An <code>IfActionUsage</code> is an <code>ActionUsage</code> that specifies that the <code>thenAction</code> <code>ActionUsage</code> should be performed if the result of the <code>ifArgument</code> <code>Expression</code> is true. It may also optionally specify an <code>elseAction</code> <code>ActionUsage</code> that is performed if the result of the <code>ifArgument</code> is false.</p> - - - - <p>The <code>thenAction</code> of an <code>ifActionUsage</code> is its second <code>parameter</code>, which must be an <code>ActionUsage</code>.</p> - - - OCL2.0 - thenAction = - let parameter : Feature = inputParameter(2) in - if parameter <> null and parameter.oclIsKindOf(ActionUsage) then - parameter.oclAsType(ActionUsage) - else - null - endif - - - - - <p>A composite <code>IfActionUsage</code> that is a subaction usage must directly or indirectly specialize the <code>ActionUsage</code> <em><code>Actions::Action::ifSubactions</code></em> from the Systems Model Library.</p> - - - OCL2.0 - isSubactionUsage() implies - specializesFromLibrary('Actions::Action::ifSubactions') - - - - - <p>A <code>IfActionUsage</code> must directly or indirectly specialize the <code>ActionUsage</code> <em><code>Actions::ifThenActions</code></em> from the Systems Model Library. If it has an <code>elseAction</code>, then it must directly or indirectly specialize <em><code>Actions::ifThenElseActions</code></em>. - - - OCL2.0 - if elseAction = null then - specializesFromLibrary('Actions::ifThenActions') - else - specializesFromLibrary('Actions::ifThenElseActions') - endif - - - - - <p>The <code>ifArgument</code> of an <code>ifActionUsage</code> is its first <code>parameter</code>, which must be an <code>Expression</code>.</p> - - - OCL2.0 - ifArgument = - let parameter : Feature = inputParameter(1) in - if parameter <> null and parameter.oclIsKindOf(Expression) then - parameter.oclAsType(Expression) - else - null - endif - - - - - <p>The <code>elseAction</code> of an <code>ifActionUsage</code> is its third <code>parameter</code>, if there is one, which must then be an <code>ActionUsage</code>.</p> - - - OCL2.0 - elseAction = - let parameter : Feature = inputParameter(3) in - if parameter <> null and parameter.oclIsKindOf(ActionUsage) then - parameter.oclAsType(ActionUsage) - else - null - endif - - - - - <p>An <code>IfActionUsage</code> must have at least two owned <code>input</code> <code>parameters</code>.</p> - - - OCL2.0 - inputParameters()->size() >= 2 - - - - - - <p>The <code>ActionUsage</code> that is to be performed if the result of the <code>ifArgument</code> is false. It is the (optional) third <code>parameter</code> of the <code>IfActionUsage</code>.</p> - - - - - - - - <p>The <code>ActionUsage</code> that is to be performed if the result of the <code>ifArgument</code> is true. It is the second <code>parameter<code> of the <code>IfActionUsage</code>.</p> - - - - - - - - <p>The <code>Expression</code> whose result determines whether the <code>thenAction</code> or (optionally) the <code>elseAction</code> is performed. It is the first <code>parameter<code> of the <code>IfActionUsage</code>.</p> - - - - - - - - - - - <p>The AssignmentActionUsage that has a certain Expression as its <code>targetArgument</code>.</p> - - - - - - - - - <p>The <code>WhileLoopActionUsage</code> that has a certain <code>Expression</code> as its <code>untilArgument</code>.</p> - - - - - - - - - <p>The <code>WhileLoopActionUsage</code> that has a certain <code>Expression</code> as its <code>whileArgument</code>.</p> - - - - - - - - - <p>The <code>LoopActionUsage</code> that has a certain <code>ActionUsage</code> as its <code>bodyAction</code>.</p> - - - - - - - - - <p>The IfActionUsage that has a certain ActionUsage as its <code>elseAction</code>.</p> - - - - - - - - - <p>The <code>IfActionUsage</code> that has a certain <code>Expression</code> as its <code>ifArgument</code>.</p> - - - - - - - - - <p>The <code>IfActionUsage</code> that has a certain <code>ActionUsage</code> as its <code>thenAction</code>.</p> - - - - - - - - <p>A <code>LoopActionUsage</code> is an <code>ActionUsage</code> that specifies that its <code>bodyAction</code> should be performed repeatedly. Its subclasses <code>WhileLoopActionUsage</code> and <code>ForLoopActionUsage</code> provide different ways to determine how many times the <code>bodyAction</code> should be performed.</p> - - - - <p>The <code>bodyAction</code> of a <code>LoopActionUsage</code> is its second input <code>parameter</code>, which must be an <code>Action</code>.</p> - - - OCL2.0 - bodyAction = - let parameter : Feature = inputParameter(2) in - if parameter <> null and parameter.oclIsKindOf(Action) then - parameter.oclAsType(Action) - else - null - endif - - - - - - - <p>The <code>ActionUsage</code> to be performed repeatedly by the <code>LoopActionUsage</code>. It is the second <code>parameter</code> of the <code>LoopActionUsage</code>.</p> - - - - - - - - - - <p>The AssignmentActionUsage that has a certain Expression as its <code>valueArgument</code>.</p> - - - - - - - - <p>A <code>ForLoopActionUsage</code> is a <code>LoopActionUsage</code> that specifies that its <code>bodyAction</code> <code>ActionUsage</code> should be performed once for each value, in order, from the sequence of values obtained as the result of the <code>seqArgument</code> <code>Expression</code>, with the <code>loopVariable</code> set to the value for each iteration.</p> - - - - <p>The <code>seqArgument</code> of a <code>ForLoopActionUsage</code> is its first argument <code>Expression</code>.</p> - - - OCL2.0 - seqArgument = argument(1) - - - - - - <p>A composite <code>ForLoopActionUsage</code> that is a subaction usage must directly or indirectly specialize the <code>ActionUsage</code> <em><code>Actions::Action::forLoops</code></em> from the Systems Model Library.</p> - - - OCL2.0 - isSubactionUsage() implies - specializesFromLibrary('Actions::Action::forLoops') - - - - - <p>The <code>loopVariable</code> of a <code>ForLoopActionUsage</code> must redefine the <code>ActionUsage</code> <code><em>Actions::ForLoopAction::var</em></code>.</p> - - - OCL2.0 - loopVariable <> null and - loopVariable.redefinesFromLibrary('Actions::ForLoopAction::var') - - - - - <p>A <code>ForLoopActionUsage</code> must directly or indirectly specialize the <code>ActionUsage</code> <em><code>Actions::forLoopActions</code></em> from the Systems Model Library.</p> - - - OCL2.0 - specializesFromLibrary('Actions::forLoopActions') - - - - - <p>The <code>loopVariable</code> of a <code>ForLoopActionUsage</code> is its first <code>ownedFeature</code>, which must be a <code>ReferenceUsage</code>.</p> - - - OCL2.0 - loopVariable = - if ownedFeature->isEmpty() or - not ownedFeature->first().oclIsKindOf(ReferenceUsage) then - null - else - ownedFeature->first().oclAsType(ReferenceUsage) - endif - - - - - <p>The first <code>ownedFeature</code> of a <code>ForLoopActionUsage</code> must be a <code>ReferenceUsage</code>.</p> - - - OCL2.0 - ownedFeature->notEmpty() and - ownedFeature->at(1).oclIsKindOf(ReferenceUsage) - - - - - - <p>A <code>ForLoopActionUsage</code> must have two owned <code>input</code> <code>parameters</code>.</p> - - - OCL2.0 - inputParameters()->size() = 2 - - - - - - <p>The <code>Expression</code> whose result provides the sequence of values to which the <code>loopVariable</code> is set for each iterative performance of the <code>bodyAction</code>. It is the <code>Expression</code> whose <code>result</code> is bound to the <em><code>seq</code></em> <code>input</code> <code>parameter</code> of this <code>ForLoopActionUsage</code>.</p> - - - - - - - - - <p>The <code>ownedFeature</code> of this <co>ForLoopActionUsage</code> that acts as the loop variable, which is assigned the successive values of the input sequence on each iteration. It is the <code>ownedFeature</code> that redefines <em><code>ForLoopAction::var</code></em>.</p> - - - - - - - - <p>An <code>AssignmentActionUsage</code> is an <code>ActionUsage</code> that is defined, directly or indirectly, by the <code>ActionDefinition</code> <em><code>AssignmentAction</code></em> from the Systems Model Library. It specifies that the value of the <code>referent</code> <code>Feature</code>, relative to the target given by the result of the <code>targetArgument</code> <code>Expression</code>, should be set to the result of the <code>valueExpression</code>.</p> - - - - - <p>An <code>AssignmentActionUsage</code> must directly or indirectly specialize the <code>ActionUsage</code> <em><code>Actions::assignmentActions</code></em> from the Systems Model Library.</p> - - - OCL2.0 - specializesFromLibrary('Actions::assignmentActions') - - - - - <p>The first <code>ownedFeature</code> of the first <code>parameter</code> of an <code>AssignmentActionUsage</code> must redefine <code><em>AssignmentAction::target::startingAt</em></code>.</p> - - - OCL2.0 - let targetParameter : Feature = inputParameter(1) in - targetParameter <> null and - targetParameter.ownedFeature->notEmpty() and - targetParameter.ownedFeature->first(). - redefines('AssignmentAction::target::startingAt') - - - - - <p>The <code>valueExpression</code> of a <code>AssignmentActionUsage</code> is its second argument <code>Expression</code>.</p> - - - OCL2.0 - valueExpression = argument(2) - - - - - <p>The <code>targetArgument</code> of a <code>AssignmentActionUsage</code> is its first argument <code>Expression</code>.</p> - - - OCL2.0 - targetArgument = argument(1) - - - - - <p>A composite <code>AssignmentActionUsage</code> that is a subaction usage must directly or indirectly specialize the <code>ActionUsage</code> <em><code>Actions::Action::assignments</code></em> from the Systems Model Library.</p> - - - OCL2.0 - isSubactionUsage() implies - specializesFromLibrary('Actions::Action::assignments') - - - - - <p>The first <code>ownedFeature</code> of the first <code>ownedFeature</code> of the first <code>parameter</code> of an <code>AssignmentActionUsage</code> must redefine <code><em>AssignmentAction::target::startingAt::accessedFeature</em></code>.</p> - - - OCL2.0 - let targetParameter : Feature = inputParameter(1) in - targetParameter <> null and - targetParameter.ownedFeature->notEmpty() and - targetParameter->first().ownedFeature->notEmpty() and - targetParameter->first().ownedFeature->first(). - redefines('AssigmentAction::target::startingAt::accessedFeature') - - - - - <p>The first <code>ownedFeature</code> of the first <code>ownedFeature</code> of the first <code>parameter</code> of an <code>AssignmentActionUsage</code> must redefine the <code>referent</code> of the <code>AssignmentActionUsage</code>.</p> - - - OCL2.0 - let targetParameter : Feature = inputParameter(1) in - targetParameter <> null and - targetParameter.ownedFeature->notEmpty() and - targetParameter->first().ownedFeature->notEmpty() and - targetParameter->first().ownedFeature->first().redefines(referent) - - - - - <p>The <code>referent</code> of an <code>AssignmentActionUsage</code> is the first <code>Feature</code> that is the <code>memberElement</code> of a <code>ownedMembership</code> that is not a <code>FeatureMembership</code>.</p> - - - OCL2.0 - referent = - let unownedFeatures : Sequence(Feature) = ownedMembership-> - reject(oclIsKindOf(FeatureMembership)).memberElement-> - selectByKind(Feature) in - if unownedFeatures->isEmpty() then null - else unownedFeatures->first().oclAsType(Feature) - endif - - - - - <p>An <code>AssignmentActionUsage</code> must have an <code>ownedMembership</code> that is not an <code>OwningMembership</code> and whose <code>memberElement</code> is a <code>Feature</code>.</p> - - - OCL2.0 - ownedMembership->exists( - not oclIsKindOf(OwningMembership) and - memberElement.oclIsKindOf(Feature)) - - - - - <p>The <code>featureTarget</code> of the <code>referent</code> of an <code>AssignmentActionUsage</code> must be able to have time-varying values.</p> - - - OCL2.0 - referent <> null implies referent.featureTarget.mayTimeVary - - - - - - <p>The <code>Expression</code> whose value is an occurrence in the domain of the <code>referent</code> <code>Feature</code>, for which the value of the <code>referent</code> will be set to the result of the <code>valueExpression</code> by this <code>AssignmentActionUsage</code>.</p> - - - - - - - - <p>The <code>Expression</code> whose result is to be assigned to the <code>referent</code> <code>Feature</code>.</p> - - - - - - - - <p>The <code>Feature</code> whose value is to be set.</p> - - - - - - - - - - <p>A <code>WhileLoopActionUsage</code> is a <code>LoopActionUsage</code> that specifies that the <code>bodyAction</code> <code>ActionUsage</code> should be performed repeatedly while the result of the <code>whileArgument</code> <code>Expression</code> is true or until the result of the <code>untilArgument</code> <code>Expression</code> (if provided) is true. The <code>whileArgument</code> <code>Expression</code> is evaluated before each (possible) performance of the <code>bodyAction</code>, and the <code>untilArgument</code> <code>Expression</code> is evaluated after each performance of the <code>bodyAction</code>.</p> - - - - <p>A composite <code>WhileLoopActionUsage</code> that is a subaction usage must directly or indirectly specialize the <code>ActionUsage</code> <em><code>Actions::Action::whileLoops</code></em> from the Systems Model Library.</p> - - - OCL2.0 - isSubactionUsage() implies - specializesFromLibrary('Actions::Action::whileLoops') - - - - - <p>The <code>whileArgument</code> of a <code>WhileLoopActionUsage</code> is its third input <code>parameter</code>, which, if it exists, must be an <code>Expression</code>.</p> - - - OCL2.0 - untilArgument = - let parameter : Feature = inputParameter(3) in - if parameter <> null and parameter.oclIsKindOf(Expression) then - parameter.oclAsType(Expression) - else - null - endif - - - - - - <p>A <code>WhileLoopActionUsage</code> must directly or indirectly specialize the <code>ActionUsage</code> <em><code>Actions::whileLoopActions</code></em> from the Systems Model Library.</p> - - - OCL2.0 - specializesFromLibrary('Actions::whileLoopActions') - - - - - <p>The <code>whileArgument</code> of a <code>WhileLoopActionUsage</code> is its first input <code>parameter</code>, which must be an <code>Expression</code>.</p> - - - OCL2.0 - whileArgument = - let parameter : Feature = inputParameter(1) in - if parameter <> null and parameter.oclIsKindOf(Expression) then - parameter.oclAsType(Expression) - else - null - endif - - - - - - <p>A <code>WhileLoopActionUsage</code> must have at least two owned <code>input</code> <code>parameters</code>.</p> - - - OCL2.0 - inputParameters()->size() >= 2 - - - - - - <p>The <code>Expression</code> whose result, if true, determines that the <code>bodyAction</code> should continue to be performed. It is the first owned <code>parameter</code> of the <code>WhileLoopActionUsage</code>.</p> - - - - - - - - - <p>The <code>Expression</code> whose result, if false, determines that the <code>bodyAction</code> should continue to be performed. It is the (optional) third owned <code>parameter</code> of the <code>WhileLoopActionUsage</code>.</p> - - - - - - - - - - - The <code>ForLoopActionUsage</code> that has a certain <code>ReferenceUsage</code> as its <code>loopVariable</code>. - - - - - - - - - <p>The AcceptActionUsage that owns the <code>payloadParameter</code>.</p> - - - - - - - - <p><code>TriggerKind</code> enumerates the kinds of triggers that can be represented by a <code>TriggerInvocationExpression</code>.</p> - - - - <p>Indicates a <em>change trigger</em>, corresponding to the <em><code>TriggerWhen</code></em> <code>Function</code> from the <em><code>Triggers</code></em> model in the Kernel Semantic Library.</p> - - - - - <p>Indicates an <em>absolute time trigger</em>, corresponding to the <em><code>TriggerAt</code></em> <code>Function</code> from the <em><code>Triggers</code></em> model in the Kernel Semantic Library.</p> - - - - - <p>Indicates a <em>relative time trigger</em>, corresponding to the <em><code>TriggerAfter</code></em> <code>Function</code> from the <em><code>Triggers</code></em> model in the <code>Kernel Semantic Library.</p> - - - - - - - - - - - - <p>A <code>TriggerInvocationExpression</code> is an <code>InvocationExpression</code> that invokes one of the trigger <code>Functions</code> from the Kernel Semantic Library <code><em>Triggers<em></code> package, as indicated by its <code>kind</code>.</p> - - - - <p>If a <code>TriggerInvocationExpression</code> has <code>kind = after</code>, then it must have an argument <code>Expression</code> with a <code>result</code> that conforms to the type <em><code>Quantities::ScalarQuantityValue</code></em> and a <code>feature</code> that directly or indirectly redefines <em><code>Quantities::TensorQuantityValue::mRef</code></em> and directly or indirectly specializes <em><code>ISQBase::DurationUnit</code></em>.</p> - - - OCL2.0 - kind = TriggerKind::after implies - argument->notEmpty() and - argument->at(1).result.specializesFromLibrary('Quantities::ScalarQuantityValue') and - let mRef : Element = - resolveGlobal('Quantities::TensorQuantityValue::mRef').ownedMemberElement in - argument->at(1).result.feature-> - select(ownedRedefinition.redefinedFeature-> - closure(ownedRedefinition.redefinedFeature)-> - includes(mRef))-> - exists(specializesFromLibrary('ISQBase::DurationUnit')) - - - - - <p>If a <code>TriggerInvocationExpression</code> has <code>kind = at</code>, then it must have an argument <code>Expression</code> with a <code>result</code> that conforms to the type <em><code>Time::TimeInstantValue</code></em>.</p> - - - OCL2.0 - kind = TriggerKind::at implies - argument->notEmpty() and - argument->at(1).result.specializesFromLibrary('Time::TimeInstantValue') - - - - - <p>If a <code>TriggerInvocationExpression</code> has <code>kind = when</code>, then it must have an <code>argument</code> that is a <code>FeatureReferenceExpression</code> whose <code>referent</code> is an <code>Expression</code> with a <code>result</code> that conforms to the type <em><code>ScalarValues::Boolean</code></em>.</p> - - - OCL2.0 - kind = TriggerKind::when implies - argument->notEmpty() and - argument->at(1).oclIsKindOf(FeatureReferenceExpression) and - let referent : Feature = - argument->at(1).oclAsType(FeatureReferenceExpression).referent in - referent.oclIsKindOf(Expression) and - referent.oclAsType(Expression).result.specializesFromLibrary('ScalarValues::Boolean') - - - - - - - - <p>Indicates which of the <code>Functions</code> from the <code><em>Triggers</em></code> model in the Kernel Semantic Library is to be invoked by this <code>TriggerInvocationExpression</code>.</p> - - - - - <p>Return one of the <code>Functions</code> <em><code>TriggerWhen</code></em>, <em><code>TriggerAt</code></em> or <em><code>TriggerAfter</code></em>, from the Kernel Semantic Library <em><code>Triggers</code></em> package, depending on whether the <code>kind</code> of this <code>TriggerInvocationExpression</code> is <code>when</code>, <code>at</code> or <code>after</code>, respectively.</p> - - - - OCL2.0 - resolveGlobal( - if kind = TriggerKind::when then - 'Triggers::TriggerWhen' - else if kind = TriggerKind::at then - 'Triggers::TriggerAt' - else - 'Triggers::TriggerAfter' - endif endif - ).memberElement.oclAsType(Type) - - - - - - - - - - - - <p>The <code>SendActionUsage</code> that has a certain <code>Expression</code> as its <code>senderArgument</code>.</p> - - - - - - - - <p>A <code>TerminateActionUsage</code> is an <code>ActionUsage</code> that directly or indirectly specializes the <code>ActionDefinition</code> <em><code>TerminateAction</code></em> from the Systems Model Library, which causes a given <em><code>terminatedOccurrence</code></em> to end during its performance. By default, the <code>terminatedOccurrence</code> is the featuring instance (<em><code>that</code></em>) of the performance of the <code>TerminateActionUsage</code>, generally the performance of its immediately containing <code>ActionDefinition</code> or <code>ActionUsage</code>.</p> - - - - <p>A <code>TerminateActionUsage</code> must directly or indirectly specialize the <code>ActionUsage</code> <em><code>Actions::terminateActions</code></em> from the Systems Modeling Library.</p> - - - OCL2.0 - specializesFromLibrary('Actions::terminateActions') - - - - - <p>The <code>terminatedOccurrenceArgument</code> of a <code>TerminateActionUsage</code> is its first argument.</p> - - - OCL2.0 - terminatedOccurrenceArgument = argument(1) - - - - - <p>A composite <code>TerminateActionUsage</code> that is a subaction must must directly or indirectly specialize the <code>ActionUsage</code> <em><code>Actions::Action::terminateSubactions</code></em> from the Systems Modeling Library.</p> - - - OCL2.0 - isSubactionUsage() implies - specializesFromLibrary('Actions::Action::terminateSubactions') - - - - - - <p>The <code>Expression</code> that is the <code>featureValue</code> of the <em><code>terminateOccurrence</code></em> <code>parameter</code> of this <code>TerminateActionUsage</code>. - - - - - - - - - - <p>The <code>TerminateActionUsage</code> that has a certain <code>Expression</code> as its <code>terminatedOccurrenceArgument</code>.</p> - - - - - - - - - - - <p>The Definitions that have a certain Usage as a <code>flow</code>.</p> - - - - - - - - - - - <p>The Definitions that feature a certain Usage.</p> - - - - - - - - - - <p>The Usage in which the <code>nestedPort</code> is nested (if any).</p> - - - - - - - - <p>A <code>Definition</code> is a <code>Classifier</code> of <code>Usages</code>. The actual kinds of <code>Definition</code> that may appear in a model are given by the subclasses of <code>Definition</code> (possibly as extended with user-defined <em><code>SemanticMetadata</code></em>).</p> +<p>An <code>AttributeUsage</code> must specialize, directly or indirectly, the base <code>Feature</code> <code><em>Base::dataValues</em></code> from the Kernel Semantic Library.</p> + + + + <p>An <code>AttributeUsage</code> is always referential.</p> + + + OCL2.0 + isReference + + + + + <p>All <code>features</code> of an <code>AttributeUsage</code> must be non-composite.</p> + + + OCL2.0 + feature->forAll(not isComposite) + + + + + <p>An <code>AttributeUsage</code> must directly or indirectly specialize <code><em>Base::dataValues</em></code> from the Kernel Semantic Library.</p> + + + OCL2.0 + specializesFromLibrary('Base::dataValues') + + + + + + <p>The <code>DataTypes</code> that are the types of this <code>AttributeUsage</code>. Nominally, these are <code>AttributeDefinitions</code>, but other kinds of kernel <code>DataTypes</code> are also allowed, to permit use of <code>DataTypes</code> from the Kernel Model Libraries.</p> + + + + + + + + <p>Always true for an <code>AttributeUsage</code>.</p> + + + + + + + + + + + <p>The PerformActionUsages that have a certain ActionUsage as their <code>performedAction</code>.</p> + + + + + + + + <p>An <code>AcceptActionUsage</code> is an <code>ActionUsage</code> that specifies the acceptance of an <em><code>incomingTransfer</code></em> from the <code><em>Occurrence</em></code> given by the result of its <code>receiverArgument</code> Expression. (If no <code>receiverArgument</code> is provided, the default is the <em><code>this</code></em> context of the AcceptActionUsage.) The payload of the accepted <em><code>Transfer</em></code> is output on its <code>payloadParameter</code>. Which <em><code>Transfers</em></code> may be accepted is determined by conformance to the typing and (potentially) binding of the <code>payloadParameter</code>.</p> + + + + + <p>An <code>AcceptUsageAction</code> must have at least on input <code>parameter</code>, corresponding to its <em><code>payload</code></em> (even if it has no <code>FeatureValue</code>). (Note that the <code>payloadParameter</code> is an input as well as an output.)</p> + + + OCL2.0 + inputParameters()->notEmpty() + + + + + <p>The <code>receiverArgument</code> of an <code>AcceptUsageAction</code> is its second argument <code>Expression</code>.</p> + + + OCL2.0 + receiverArgument = argument(2) + + + + + <p>The <code>payloadArgument</code> of an <code>AcceptUsageAction</code> is its first argument <code>Expression</code>.</p> + + + OCL2.0 + payloadArgument = argument(1) + + + + + <p>The <code>payloadParameter</code> of an <code>AcceptActionUsage<code> is its first <code>parameter</code>.</p> + + + OCL2.0 + payloadParameter = + if parameter->isEmpty() then null + else parameter->first() endif + + + + + <p>An <code>AcceptActionUsage</code> that is not the <code>triggerAction</code> of a <code>TransitionUsage</code> must directly or indirectly specialize the <code>ActionUsage</code> <em><code>Actions::acceptActions</code></em> from the Systems Model Library.</p> + + + OCL2.0 + not isTriggerAction() implies + specializesFromLibrary('Actions::acceptActions') + + + + + <p>A composite <code>AcceptActionUsage</code> that is a subaction usage, but is <em>not</em> the <code>triggerAction</code> of a <code>TransitionUsage</code>, must directly or indirectly specialize the <code>ActionUsage</code> <em><code>Actions::Action::acceptSubactions</code></em> from the Systems Model Library.</p> + + + OCL2.0 + isSubactionUsage() and not isTriggerAction() implies + specializesFromLibrary('Actions::Action::acceptSubactions') + + + + + <p>An <code>AcceptActionUsage</code> that is the <code>triggerAction</code> of <code>TransitionUsage</code> must directly or indirectly specialize the <code>ActionUsage</code> <em><code>Actions::TransitionAction::accepter</code></em> from the Systems Model Library.</p> + + + OCL2.0 + isTriggerAction() implies + specializesFromLibrary('Actions::TransitionAction::accepter') + + + + + <p>If the <code>payloadArgument</code> of an <code>AcceptActionUsage</code> is a <code>TriggerInvocationExpression</code>, then the <code>AcceptActionusage</code> must have an <code>ownedFeature</code> that is a <code>BindingConnector</code> between its <code><em>receiver</em></code> <code>parameter</code> and the <code><em>receiver</em></code> <code>parameter</code> of the <code>TriggerInvocationExpression</code>.</p> + + + OCL2.0 + payloadArgument <> null and +payloadArgument.oclIsKindOf(TriggerInvocationExpression) implies + let invocation : Expression = + payloadArgument.oclAsType(Expression) in + parameter->size() >= 2 and + invocation.parameter->size() >= 2 and + ownedFeature->selectByKind(BindingConnector)->exists(b | + b.relatedFeatures->includes(parameter->at(2)) and + b.relatedFeatures->includes(invocation.parameter->at(2))) + + + + + + <p>An <code>Expression</code> whose <code>result</code> is bound to the <em><code>receiver</code></em> input <code>parameter</code> of this <code>AcceptActionUsage</code>.</p> + + + + + + + + + <p>The <code>nestedReference</code> of this <code>AcceptActionUsage</code> that redefines the <code>payload</code> output <code>parameter</code> of the base <code>AcceptActionUsage</code> <em><code>AcceptAction</code></em> from the Systems Model Library.</p> + + + + + + + + + <p>An <code>Expression</code> whose <code>result</code> is bound to the <code><em>payload</em></code> <code>parameter</code> of this <code>AcceptActionUsage</code>. If provided, the <code>AcceptActionUsage</code> will only accept a <code><em>Transfer</em></code> with exactly this <code><em>payload</em></code>.</p> + + + + + + + + + <p>Check if this <code>AcceptActionUsage</code> is the <code>triggerAction</code> of a <code>TransitionUsage</code>.</p> + + + + OCL2.0 + owningType <> null and +owningType.oclIsKindOf(TransitionUsage) and +owningType.oclAsType(TransitionUsage).triggerAction->includes(self) + + + + + + + + + + + <p>The <code>SendActionUsage</code> that has a certain <code>Expression<code> as its <code>receiverArgument</code>.</p> + + + + + + + + <p>A <code>SendActionUsage</code> is an <code>ActionUsage</code> that specifies the sending of a payload given by the result of its <code>payloadArgument</code> <code>Expression</code> via a <em><code>MessageTransfer</code></em> whose <em><code>source</code></em> is given by the result of the <code>senderArgument</code> <code>Expression</code> and whose <code>target</code> is given by the result of the <code>receiverArgument</code> <code>Expression</code>. If no <code>senderArgument</code> is provided, the default is the <em><code>this</code></em> context for the action. If no <code>receiverArgument</code> is given, then the receiver is to be determined by, e.g., outgoing <em><code>Connections</code></em> from the sender.</p> + + + + + <p>The <code>senderArgument</code> of a <code>SendActionUsage</code> is its second argument <code>Expression</code>.</p> + + + OCL2.0 + senderArgument = argument(2) + + + + + <p>The <code>payloadArgument</code> of a <code>SendActionUsage</code> is its first argument <code>Expression</code>.</p> + + + OCL2.0 + payloadArgument = argument(1) + + + + + <p>If a <code>SendActionUsage</code> is owned via a <code>StateSubactionMembership</code> or a <code>TransitionFeatureMembership</code>, then it must have a <code>payloadArgument</code>.</p> + + + OCL2.0 + owningFeatureMembership <> null and +(owningFeatureMembership.oclIsKindOf(StateSubactionMembership) or + owningFeatureMembership.oclIsKindOf(TransitionFeatureMembership)) implies + payloadArgument <> null + + + + + <p>The <code>receiverArgument</code> of a <code>SendActionUsage</code> is its third argument <code>Expression</code>.</p> + + + OCL2.0 + receiverArgument = argument(3) + + + + + <p>A composite <code>SendActionUsage</code> that is a subaction must directly or indirectly specialize the <code>ActionUsage</code> <em><code>Actions::Action::sendSubactions</code></em> from the Systems Model Library.</p> + + + OCL2.0 + isSubactionUsage() implies + specializesFromLibrary('Actions::Action::acceptSubactions') + + + + + <p>A <code>SendActionUsage</code> must directly or indirectly specialize the <code>ActionUsage</code> <em><code>Actions::sendActions</code></em> from the Systems Model Library.</p> + + + OCL2.0 + specializesFromLibrary('Actions::sendActions') + + + + + + <p>An <code>Expression</code> whose result is bound to the <em><code>receiver</code></em> input parameter of this <code>SendActionUsage</code>.</p> + + + + + + + + + <p>An <code>Expression</code> whose result is bound to the <code><em>payload</em></code> input parameter of this <code>SendActionUsage</code>.</p> + + + + + + + + + <p>An <code>Expression</code> whose result is bound to the <em><code>sender</code></em> input parameter of this <code>SendActionUsage</code>.</p> + + + + + + + + + + <p>A <code>PerformActionUsage</code> is an <code>ActionUsage</code> that represents the performance of an <code>ActionUsage</code>. Unless it is the <code>PerformActionUsage</code> itself, the <code>ActionUsage</code> to be performed is related to the <code>PerformActionUsage</code> by a <code>ReferenceSubsetting</code> relationship. A <code>PerformActionUsage</code> is also an <code>EventOccurrenceUsage</code>, with its <code>performedAction</code> as the <code>eventOccurrence</code>.</p> + + + + <p>If a <code>PerformActionUsage</code> has an <code>ownedReferenceSubsetting</code>, then the <code>featureTarget</code> of the <code>referencedFeature</code> must be an <code>ActionUsage</code>.</p> + + + OCL2.0 + referencedFeatureTarget() <> null implies + referencedFeatureTarget().oclIsKindOf(ActionUsage) + + + + + <p>If a <code>PerformActionUsage</code> has an <code>owningType</code> that is a <code>PartDefinition</code> or <code>PartUsage</code>, then it must directly or indirectly specialize the <code>ActionUsage</code> <code><em>Parts::Part::performedActions</em></code>.</p> + + + OCL2.0 + owningType <> null and +(owningType.oclIsKindOf(PartDefinition) or + owningType.oclIsKindOf(PartUsage)) implies + specializesFromLibrary('Parts::Part::performedActions') + + + + + + + <p>The <code>ActionUsage</code> to be performed by this <code>PerformedActionUsage</code>. It is the <code>eventOccurrence</code> of the <code>PerformActionUsage</code> considered as an <code>EventOccurrenceUsage</code>, which must be an <code>ActionUsage</code>.</p> + + + + + + + + <p>The naming <code>Feature</code> of a <code>PerformActionUsage</code> is its <code>performedAction</code>, if this is different than the <code>PerformActionUsage</code>. If the <code>PerformActionUsage</code> is its own <code>performedAction</code>, then the naming <code>Feature</code> is the same as the usual default for a <code>Usage</code>.</p> + + + + OCL2.0 + if performedAction <> self then performedAction +else self.oclAsType(Usage).namingFeature() +endif + + + + + + + + + + + + <p>A <code>ForkNode</code> is a <code>ControlNode</code> that must be followed by successor <code>Actions</code> as given by all its outgoing <code>Successions</code>.</p> + + + + <p>A <code>ForkNode</code> may have at most one incoming <code>Succession</code>.</p> + + + OCL2.0 + targetConnector->selectByKind(Succession)->size() <= 1 + + + + + <p>A <code>ForkNode</code> must directly or indirectly specialize the <code>ActionUsage</code> <em><code>Actions::Action::forks</code></em> from the Systems Model Library.</p> + + + OCL2.0 + specializesFromLibrary('Actions::Action::forks') + + + + + + + <p>A <code>JoinNode</code> is a <code>ControlNode</code> that waits for the completion of all the predecessor <code>Actions</code> given by incoming <code>Successions</code>.</p> + + + + <p>A <code>JoinNode</code> may have at most one outgoing <code>Succession</code>.</p> + + + OCL2.0 + sourceConnector->selectByKind(Succession)->size() <= 1 + + + + + <p>A <code>JoinNode</code> must directly or indirectly specialize the <code>ActionUsage</code> <em><code>Actions::Action::joins</code></em> from the Systems Model Library.</p> + + + OCL2.0 + specializesFromLibrary('Actions::Action::join') + + + + + + + <p>A <code>ControlNode</code> is an <code>ActionUsage</code> that does not have any inherent behavior but provides constraints on incoming and outgoing <code>Successions</code> that are used to control other <code>Actions</code>. A <code>ControlNode</code> must be a composite owned <code>usage</code> of an <code>ActionDefinition</code> or <code>ActionUsage</code>.</p> + + + + + <p>All outgoing <code>Successions</code> from a <code>ControlNode</code> must have a source <code>multiplicity</code> of <code>1..1</code>.</p> + + + OCL2.0 + sourceConnector->selectByKind(Succession)-> + collect(connectorEnd->at(1).multiplicity)-> + forAll(sourceMult | + multiplicityHasBounds(sourceMult, 1, 1)) + + + + + <p>The <code>owningType</code> of a <code>ControlNode</code> must be an <code>ActionDefinition</code> or <code>ActionUsage</code>.</p> + + + OCL2.0 + owningType <> null and +(owningType.oclIsKindOf(ActionDefinition) or + owningType.oclIsKindOf(ActionUsage)) + + + + + <p>All incoming <code>Successions</code> to a <code>ControlNode</code> must have a target <code>multiplicity</code> of <code>1..1</code>.</p> + + + OCL2.0 + targetConnector->selectByKind(Succession)-> + collect(connectorEnd->at(2).multiplicity)-> + forAll(targetMult | + multiplicityHasBounds(targetMult, 1, 1)) + + + + + <p>A <code>ControlNode</code> must directly or indirectly specialize the <code>ActionUsage</code> <em><code>Actions::Action::control</code></em> from the Systems Model Library.</p> + + + OCL2.0 + specializesFromLibrary('Action::Action::controls') + + + + + <p>A <code>ControlNode</code> must be composite.</p> + + + OCL2.0 + isComposite + + + + + + <p>Check that the given <code>Multiplicity</code> has <code>lowerBound</code> and <code>upperBound</code> expressions that are model-level evaluable to the given <code>lower</code> and <code>upper</code> values.</p> + + + + OCL2.0 + mult <> null and +if mult.oclIsKindOf(MultiplicityRange) then + mult.oclAsType(MultiplicityRange).hasBounds(lower, upper) +else + mult.allSuperTypes()->exists( + oclisKindOf(MultiplicityRange) and + oclAsType(MultiplicityRange).hasBounds(lower, upper) +endif + + + + + + + + + + + + + + + + + + + <p>An <code>ActionUsage</code> is a <code>Usage</code> that is also a <code>Step</code>, and, so, is typed by a <code>Behavior</code>. Nominally, if the type is an <code>ActionDefinition</code>, an <code>ActionUsage</code> is a <code>Usage</code> of that <code>ActionDefinition</code> within a system. However, other kinds of kernel <code>Behaviors</code> are also allowed, to permit use of <code>Behaviors</code> from the Kernel Model Libraries.</p> + + + + + <p>A composite <code>ActionUsage</code> that is a subaction usage must directly or indirectly specialize the <code>ActionUsage</code> <em><code>Actions::Action::subactions</code></em> from the Systems Model Library.</p> + + + OCL2.0 + isSubactionUsage() implies + specializesFromLibrary('Actions::Action::subactions') + + + + + <p>An <code>ActionUsage</code> must directly or indirectly specialize the <code>ActionUsage</code> <em><code>Actions::actions</code></em> from the Systems Model Library.</p> + + + OCL2.0 + specializesFromLibrary('Actions::actions') + + + + + <p>A composite <code>ActionUsage</code> whose <code>owningType</code> is <code>PartDefinition</code> or <code>PartUsage</code> must directly or indirectly specialize the <code>ActionUsage</code> <em><code>Parts::Part::ownedActions</code></em> from the Systems Model Library.</p> + + + OCL2.0 + isComposite and owningType <> null and +(owningType.oclIsKindOf(PartDefinition) or + owningType.oclIsKindOf(PartUsage)) implies + specializesFromLibrary('Parts::Part::ownedActions') + + + + + <p>An <code>ActionUsage</code> that is the <code><em>entry</em></code>, <code><em>do</em></code>, or <code><em>exit</em></code> <code><em>Action</em></code> of a <code>StateDefinition</code> or <code>StateUsage</code> must redefine the <code>entryAction</code>, <code>doAction</code>, or <code>exitAction</code> <code>feature</code>, respectively, of the <code>StateDefinition</code> <code><em>States::StateAction</em></code> from the Systems Model Library.</p> + + + OCL2.0 + owningFeatureMembership <> null and +owningFeatureMembership.oclIsKindOf(StateSubactionMembership) implies + let kind : StateSubactionKind = + owningFeatureMembership.oclAsType(StateSubactionMembership).kind in + if kind = StateSubactionKind::entry then + redefinesFromLibrary('States::StateAction::entryAction') + else if kind = StateSubactionKind::do then + redefinesFromLibrary('States::StateAction::doAction') + else + redefinesFromLibrary('States::StateAction::exitAction') + endif endif + + + + + + + + + <p>The <code>Behaviors</code> that are the <code>types</code> of this <code>ActionUsage</code>. Nominally, these would be <code>ActionDefinitions</code>, but other kinds of Kernel <code>Behaviors</code> are also allowed, to permit use of <code>Behaviors</code> from the Kernel Model Libraries.</p> + + + + + + + + + + + <p>Return the owned input <code>parameters</code> of this <code>ActionUsage</code>.</p> + + + + OCL2.0 + input->select(f | f.owner = self) + + + + + + + + + + + <p>Return the <code>i</code>-th owned input <code>parameter</code> of the <code>ActionUsage</code>. Return null if the <code>ActionUsage</code> has less than <code>i</code> owned input <code>parameters</code>.</p> + + + + OCL2.0 + if inputParameters()->size() < i then null +else inputParameters()->at(i) +endif + + + + + + + + + + + + + + <p>Return the <code>i</code>-th argument <code>Expression</code> of an <code>ActionUsage</code>, defined as the <code>value</code> <code>Expression</code> of the <code>FeatureValue</code> of the <code>i</code>-th owned input <code>parameter</code> of the <code>ActionUsage</code>. Return null if the <code>ActionUsage</code> has less than <code>i</code> owned input <code>parameters</code> or the <code>i</code>-th owned input <code>parameter</code> has no <code>FeatureValue</code>.</p> + + + + OCL2.0 + if inputParameter(i) = null then null +else + let featureValue : Sequence(FeatureValue) = inputParameter(i). + ownedMembership->select(oclIsKindOf(FeatureValue)) in + if featureValue->isEmpty() then null + else featureValue->at(1).value + endif +endif + + + + + + + + + + + + + + <p>Check if this <code>ActionUsage</code> is composite and has an <code>owningType</code> that is an <code>ActionDefinition</code> or <code>ActionUsage</code> but is <em>not</em> the <code>entryAction</code> or <code>exitAction</em></code> of a <code>StateDefinition</code> or <code>StateUsage</code>. If so, then it represents an <code><em>Action</em></code> that is a <code><em>subaction</em></code> of another <code><em>Action</em></code>.</p> + + + + OCL2.0 + isComposite and owningType <> null and +(owningType.oclIsKindOf(ActionDefinition) or + owningType.oclIsKindOf(ActionUsage)) and +(owningFeatureMembership.oclIsKindOf(StateSubactionMembership) implies + owningFeatureMembership.oclAsType(StateSubactionMembership).kind = + StateSubactionKind::do) + + + + + + + + + + + <p>The Activities that feature a certain ActionUsage.</p> + + + + + + + + + + <p>A <code>DecisionNode</code> is a <code>ControlNode</code> that makes a selection from its outgoing <code>Successions</code>.</p> + + + + <p>A <code>DecisionNode</code> may have at most one incoming <code>Succession</code>.</p> + + + OCL2.0 + targetConnector->selectByKind(Succession)->size() <= 1 + + + + + <p>All outgoing <code>Successions</code> from a <code>DecisionNode</code> must have a target <code>multiplicity</code> of <code>0..1</code>.</p> + + + OCL2.0 + sourceConnector->selectAsKind(Succession)-> + collect(connectorEnd->at(2))-> + forAll(targetMult | + multiplicityHasBounds(targetMult, 0, 1)) + + + + + <p>A <code>DecisionNode</code> must directly or indirectly specialize the <code>ActionUsage</code> <em><code>Actions::Action::decisions</code></em> from the Systems Model Library.</p> + + + OCL2.0 + specializesFromLibrary('Actions::Action::decisions') + + + + + <p>All outgoing <code>Successions</code> from a <code>DecisionNode</code> must subset the inherited <em><code>outgoingHBLink</code></em> <code>feature</code> of the <code>DecisionNode</code>.</p> + + + OCL2.0 + sourceConnector->selectByKind(Succession)-> + forAll(subsetsChain(self, + resolveGlobal('ControlPerformances::DecisionPerformance::outgoingHBLink'))) + + + + + + + <p>A <code>MergeNode</code> is a <code>ControlNode</code> that asserts the merging of its incoming <code>Successions</code>. A <code>MergeNode</code> may have at most one outgoing <code>Successions</code>.</p> + + + + <p>A <code>MergeNode</code> may have at most one outgoing <code>Succession</code>.</p> + + + OCL2.0 + sourceConnector->selectAsKind(Succession)->size() <= 1 + + + + + <p>All incoming <code>Successions</code> to a <code>MergeNode</code> must have a source <code>multiplicity</code> of <code>0..1</code>.</p> + + + OCL2.0 + targetConnector->selectByKind(Succession)-> + collect(connectorEnd->at(1))-> + forAll(sourceMult | + multiplicityHasBounds(sourceMult, 0, 1)) + + + + + <p>All incoming <code>Successions</code> to a <code>MergeNode</code> must subset the inherited <em><code>incomingHBLink</code></em> <code>feature</code> of the <code>MergeNode</code>.</p> + + + OCL2.0 + targetConnector->selectByKind(Succession)-> + forAll(subsetsChain(self, + resolveGlobal('ControlPerformances::MergePerformance::incomingHBLink'))) + + + + + <p>A <code>MergeNode</code> must directly or indirectly specialize the <code>ActionUsage</code> <em><code>Actions::Action::merges</code></em> from the Systems Model Library.</p> + + + OCL2.0 + specializesFromLibrary('Actions::Action::merges') + + + + + + + + <p>The ActionUsages being typed by a certain Behavior.</p> + + + + + + + + + + <p>An <code>ActionDefinition</code> is a <code>Definition</code> that is also a <code>Behavior</code> that defines an <em><code>Action</code></em> performed by a system or part of a system.</p> + + + + <p>An <code>ActionDefinition</code> must directly or indirectly specialize the <code>ActionDefinition</code> <em><code>Actions::Action</code></em> from the Systems Model Library.</p> + + + OCL2.0 + specializesFromLibrary('Actions::Action') + + + + + <p> The <code>actions</code> of a <code>ActionDefinition</code> are those of its <code>usages</code> that are <code>ActionUsages</code>.</p> + + + OCL2.0 + action = usage->selectByKind(ActionUsage) + + + + + + + + + <p>The <code>ActionUsages</code> that are <code>steps</code> in this <code>ActionDefinition</code>, which define the actions that specify the behavior of the <code>ActionDefinition</code>.</p> + + + + + + + + + + + + <p>The <code>SendActionUsage</code> that has a certain <code>Expression</code> as its <code>itemsArgument</code>.</p> + + + + + + + + + <p>The AcceptActionUsage that has a certain Expression as its <code>receiverArgument</code>.</p> + + + + + + + + + <p>The AssignmentActionUsages that gave a certain <code>referent</code> Expression.</p> + + + + + + + + + + <p>The <code>ForLoopActionUsage</code> that has a certain <code>Expression</code> as its <code>seqArgument</code>.</p> + + + + + + + + <p>An <code>IfActionUsage</code> is an <code>ActionUsage</code> that specifies that the <code>thenAction</code> <code>ActionUsage</code> should be performed if the result of the <code>ifArgument</code> <code>Expression</code> is true. It may also optionally specify an <code>elseAction</code> <code>ActionUsage</code> that is performed if the result of the <code>ifArgument</code> is false.</p> + + + + <p>The <code>thenAction</code> of an <code>ifActionUsage</code> is its second <code>parameter</code>, which must be an <code>ActionUsage</code>.</p> + + + OCL2.0 + thenAction = + let parameter : Feature = inputParameter(2) in + if parameter <> null and parameter.oclIsKindOf(ActionUsage) then + parameter.oclAsType(ActionUsage) + else + null + endif + + + + + <p>A composite <code>IfActionUsage</code> that is a subaction usage must directly or indirectly specialize the <code>ActionUsage</code> <em><code>Actions::Action::ifSubactions</code></em> from the Systems Model Library.</p> + + + OCL2.0 + isSubactionUsage() implies + specializesFromLibrary('Actions::Action::ifSubactions') + + + + + <p>A <code>IfActionUsage</code> must directly or indirectly specialize the <code>ActionUsage</code> <em><code>Actions::ifThenActions</code></em> from the Systems Model Library. If it has an <code>elseAction</code>, then it must directly or indirectly specialize <em><code>Actions::ifThenElseActions</code></em>. + + + OCL2.0 + if elseAction = null then + specializesFromLibrary('Actions::ifThenActions') +else + specializesFromLibrary('Actions::ifThenElseActions') +endif + + + + + <p>The <code>ifArgument</code> of an <code>ifActionUsage</code> is its first <code>parameter</code>, which must be an <code>Expression</code>.</p> + + + OCL2.0 + ifArgument = + let parameter : Feature = inputParameter(1) in + if parameter <> null and parameter.oclIsKindOf(Expression) then + parameter.oclAsType(Expression) + else + null + endif + + + + + <p>The <code>elseAction</code> of an <code>ifActionUsage</code> is its third <code>parameter</code>, if there is one, which must then be an <code>ActionUsage</code>.</p> + + + OCL2.0 + elseAction = + let parameter : Feature = inputParameter(3) in + if parameter <> null and parameter.oclIsKindOf(ActionUsage) then + parameter.oclAsType(ActionUsage) + else + null + endif + + + + + <p>An <code>IfActionUsage</code> must have at least two owned <code>input</code> <code>parameters</code>.</p> + + + OCL2.0 + inputParameters()->size() >= 2 + + + + + + <p>The <code>ActionUsage</code> that is to be performed if the result of the <code>ifArgument</code> is false. It is the (optional) third <code>parameter</code> of the <code>IfActionUsage</code>.</p> + + + + + + + + <p>The <code>ActionUsage</code> that is to be performed if the result of the <code>ifArgument</code> is true. It is the second <code>parameter<code> of the <code>IfActionUsage</code>.</p> + + + + + + + + <p>The <code>Expression</code> whose result determines whether the <code>thenAction</code> or (optionally) the <code>elseAction</code> is performed. It is the first <code>parameter<code> of the <code>IfActionUsage</code>.</p> + + + + + + + + + + + <p>The AssignmentActionUsage that has a certain Expression as its <code>targetArgument</code>.</p> + + + + + + + + + <p>The <code>WhileLoopActionUsage</code> that has a certain <code>Expression</code> as its <code>untilArgument</code>.</p> + + + + + + + + + <p>The <code>WhileLoopActionUsage</code> that has a certain <code>Expression</code> as its <code>whileArgument</code>.</p> + + + + + + + + + <p>The <code>LoopActionUsage</code> that has a certain <code>ActionUsage</code> as its <code>bodyAction</code>.</p> + + + + + + + + + <p>The IfActionUsage that has a certain ActionUsage as its <code>elseAction</code>.</p> + + + + + + + + + <p>The <code>IfActionUsage</code> that has a certain <code>Expression</code> as its <code>ifArgument</code>.</p> + + + + + + + + + <p>The <code>IfActionUsage</code> that has a certain <code>ActionUsage</code> as its <code>thenAction</code>.</p> + + + + + + + + <p>A <code>LoopActionUsage</code> is an <code>ActionUsage</code> that specifies that its <code>bodyAction</code> should be performed repeatedly. Its subclasses <code>WhileLoopActionUsage</code> and <code>ForLoopActionUsage</code> provide different ways to determine how many times the <code>bodyAction</code> should be performed.</p> + + + + <p>The <code>bodyAction</code> of a <code>LoopActionUsage</code> is its second input <code>parameter</code>, which must be an <code>Action</code>.</p> + + + OCL2.0 + bodyAction = + let parameter : Feature = inputParameter(2) in + if parameter <> null and parameter.oclIsKindOf(Action) then + parameter.oclAsType(Action) + else + null + endif + + + + + + + <p>The <code>ActionUsage</code> to be performed repeatedly by the <code>LoopActionUsage</code>. It is the second <code>parameter</code> of the <code>LoopActionUsage</code>.</p> + + + + + + + + + + <p>The AssignmentActionUsage that has a certain Expression as its <code>valueArgument</code>.</p> + + + + + + + + <p>A <code>ForLoopActionUsage</code> is a <code>LoopActionUsage</code> that specifies that its <code>bodyAction</code> <code>ActionUsage</code> should be performed once for each value, in order, from the sequence of values obtained as the result of the <code>seqArgument</code> <code>Expression</code>, with the <code>loopVariable</code> set to the value for each iteration.</p> + + + + <p>The <code>seqArgument</code> of a <code>ForLoopActionUsage</code> is its first argument <code>Expression</code>.</p> + + + OCL2.0 + seqArgument = argument(1) + + + + + + <p>A composite <code>ForLoopActionUsage</code> that is a subaction usage must directly or indirectly specialize the <code>ActionUsage</code> <em><code>Actions::Action::forLoops</code></em> from the Systems Model Library.</p> + + + OCL2.0 + isSubactionUsage() implies + specializesFromLibrary('Actions::Action::forLoops') + + + + + <p>The <code>loopVariable</code> of a <code>ForLoopActionUsage</code> must redefine the <code>ActionUsage</code> <code><em>Actions::ForLoopAction::var</em></code>.</p> + + + OCL2.0 + loopVariable <> null and +loopVariable.redefinesFromLibrary('Actions::ForLoopAction::var') + + + + + <p>A <code>ForLoopActionUsage</code> must directly or indirectly specialize the <code>ActionUsage</code> <em><code>Actions::forLoopActions</code></em> from the Systems Model Library.</p> + + + OCL2.0 + specializesFromLibrary('Actions::forLoopActions') + + + + + <p>The <code>loopVariable</code> of a <code>ForLoopActionUsage</code> is its first <code>ownedFeature</code>, which must be a <code>ReferenceUsage</code>.</p> + + + OCL2.0 + loopVariable = + if ownedFeature->isEmpty() or + not ownedFeature->first().oclIsKindOf(ReferenceUsage) then + null + else + ownedFeature->first().oclAsType(ReferenceUsage) + endif + + + + + <p>The first <code>ownedFeature</code> of a <code>ForLoopActionUsage</code> must be a <code>ReferenceUsage</code>.</p> + + + OCL2.0 + ownedFeature->notEmpty() and +ownedFeature->at(1).oclIsKindOf(ReferenceUsage) + + + + + + <p>A <code>ForLoopActionUsage</code> must have two owned <code>input</code> <code>parameters</code>.</p> + + + OCL2.0 + inputParameters()->size() = 2 + + + + + + <p>The <code>Expression</code> whose result provides the sequence of values to which the <code>loopVariable</code> is set for each iterative performance of the <code>bodyAction</code>. It is the <code>Expression</code> whose <code>result</code> is bound to the <em><code>seq</code></em> <code>input</code> <code>parameter</code> of this <code>ForLoopActionUsage</code>.</p> + + + + + + + + + <p>The <code>ownedFeature</code> of this <co>ForLoopActionUsage</code> that acts as the loop variable, which is assigned the successive values of the input sequence on each iteration. It is the <code>ownedFeature</code> that redefines <em><code>ForLoopAction::var</code></em>.</p> + + + + + + + + <p>An <code>AssignmentActionUsage</code> is an <code>ActionUsage</code> that is defined, directly or indirectly, by the <code>ActionDefinition</code> <em><code>AssignmentAction</code></em> from the Systems Model Library. It specifies that the value of the <code>referent</code> <code>Feature</code>, relative to the target given by the result of the <code>targetArgument</code> <code>Expression</code>, should be set to the result of the <code>valueExpression</code>.</p> + + + + + <p>An <code>AssignmentActionUsage</code> must directly or indirectly specialize the <code>ActionUsage</code> <em><code>Actions::assignmentActions</code></em> from the Systems Model Library.</p> + + + OCL2.0 + specializesFromLibrary('Actions::assignmentActions') + + + + + <p>The first <code>ownedFeature</code> of the first <code>parameter</code> of an <code>AssignmentActionUsage</code> must redefine <code><em>AssignmentAction::target::startingAt</em></code>.</p> + + + OCL2.0 + let targetParameter : Feature = inputParameter(1) in +targetParameter <> null and +targetParameter.ownedFeature->notEmpty() and +targetParameter.ownedFeature->first(). + redefinesFromLibrary('AssignmentAction::target::startingAt') + + + + + <p>The <code>valueExpression</code> of a <code>AssignmentActionUsage</code> is its second argument <code>Expression</code>.</p> + + + OCL2.0 + valueExpression = argument(2) + + + + + <p>The <code>targetArgument</code> of a <code>AssignmentActionUsage</code> is its first argument <code>Expression</code>.</p> + + + OCL2.0 + targetArgument = argument(1) + + + + + <p>A composite <code>AssignmentActionUsage</code> that is a subaction usage must directly or indirectly specialize the <code>ActionUsage</code> <em><code>Actions::Action::assignments</code></em> from the Systems Model Library.</p> + + + OCL2.0 + isSubactionUsage() implies + specializesFromLibrary('Actions::Action::assignments') + + + + + <p>The first <code>ownedFeature</code> of the first <code>ownedFeature</code> of the first <code>parameter</code> of an <code>AssignmentActionUsage</code> must redefine <code><em>AssignmentAction::target::startingAt::accessedFeature</em></code>.</p> + + + OCL2.0 + let targetParameter : Feature = inputParameter(1) in +targetParameter <> null and +targetParameter.ownedFeature->notEmpty() and +targetParameter.ownedFeature->first().ownedFeature->notEmpty() and +targetParameter.ownedFeature->first().ownedFeature->first(). + redefinesFromLibrary('AssigmentAction::target::startingAt::accessedFeature') + + + + + <p>The first <code>ownedFeature</code> of the first <code>ownedFeature</code> of the first <code>parameter</code> of an <code>AssignmentActionUsage</code> must redefine the <code>referent</code> of the <code>AssignmentActionUsage</code>.</p> + + + OCL2.0 + let targetParameter : Feature = inputParameter(1) in +targetParameter <> null and +targetParameter.ownedFeature->notEmpty() and +targetParameter.ownedFeature->first().ownedFeature->notEmpty() and +targetParameter.ownedFeature->first().ownedFeature->first().redefines(referent) + + + + + <p>The <code>referent</code> of an <code>AssignmentActionUsage</code> is the first <code>Feature</code> that is not a <code>MetadataFeature</code> and is the <code>memberElement</code> of a <code>ownedMembership</code> that is not a <code>FeatureMembership</code>.</p> + + + OCL2.0 + referent = + let unownedFeatures : Sequence(Feature) = ownedMembership-> + reject(oclIsKindOf(FeatureMembership)).memberElement-> + select(oclIsKindOf(Feature) and + not oclIsKindOf(MetadataFeature)) in + if unownedFeatures->isEmpty() then null + else unownedFeatures->first().oclAsType(Feature) + endif + + + + + <p>An <code>AssignmentActionUsage</code> must have an <code>ownedMembership</code> that is not an <code>OwningMembership</code> and whose <code>memberElement</code> is a <code>Feature</code> but not a <code>MetadataFeature</code>.</p> + + + OCL2.0 + ownedMembership->exists( + not oclIsKindOf(OwningMembership) and + memberElement.oclIsKindOf(Feature) and + not memberElement.oclIsKindOf(MetadataFeature)) + + + + + <p>The <code>featureTarget</code> of the <code>referent</code> of an <code>AssignmentActionUsage</code> must be able to have time-varying values.</p> + + + OCL2.0 + referent <> null implies referent.featureTarget.isVariable + + + + + + <p>The <code>Expression</code> whose value is an occurrence in the domain of the <code>referent</code> <code>Feature</code>, for which the value of the <code>referent</code> will be set to the result of the <code>valueExpression</code> by this <code>AssignmentActionUsage</code>.</p> + + + + + + + + <p>The <code>Expression</code> whose result is to be assigned to the <code>referent</code> <code>Feature</code>.</p> + + + + + + + + <p>The <code>Feature</code> whose value is to be set.</p> + + + + + + + + + + <p>A <code>WhileLoopActionUsage</code> is a <code>LoopActionUsage</code> that specifies that the <code>bodyAction</code> <code>ActionUsage</code> should be performed repeatedly while the result of the <code>whileArgument</code> <code>Expression</code> is true or until the result of the <code>untilArgument</code> <code>Expression</code> (if provided) is true. The <code>whileArgument</code> <code>Expression</code> is evaluated before each (possible) performance of the <code>bodyAction</code>, and the <code>untilArgument</code> <code>Expression</code> is evaluated after each performance of the <code>bodyAction</code>.</p> + + + + <p>A composite <code>WhileLoopActionUsage</code> that is a subaction usage must directly or indirectly specialize the <code>ActionUsage</code> <em><code>Actions::Action::whileLoops</code></em> from the Systems Model Library.</p> + + + OCL2.0 + isSubactionUsage() implies + specializesFromLibrary('Actions::Action::whileLoops') + + + + + <p>The <code>whileArgument</code> of a <code>WhileLoopActionUsage</code> is its third input <code>parameter</code>, which, if it exists, must be an <code>Expression</code>.</p> + + + OCL2.0 + untilArgument = + let parameter : Feature = inputParameter(3) in + if parameter <> null and parameter.oclIsKindOf(Expression) then + parameter.oclAsType(Expression) + else + null + endif + + + + + + <p>A <code>WhileLoopActionUsage</code> must directly or indirectly specialize the <code>ActionUsage</code> <em><code>Actions::whileLoopActions</code></em> from the Systems Model Library.</p> + + + OCL2.0 + specializesFromLibrary('Actions::whileLoopActions') + + + + + <p>The <code>whileArgument</code> of a <code>WhileLoopActionUsage</code> is its first input <code>parameter</code>, which must be an <code>Expression</code>.</p> + + + OCL2.0 + whileArgument = + let parameter : Feature = inputParameter(1) in + if parameter <> null and parameter.oclIsKindOf(Expression) then + parameter.oclAsType(Expression) + else + null + endif + + + + + + <p>A <code>WhileLoopActionUsage</code> must have at least two owned <code>input</code> <code>parameters</code>.</p> + + + OCL2.0 + inputParameters()->size() >= 2 + + + + + + <p>The <code>Expression</code> whose result, if true, determines that the <code>bodyAction</code> should continue to be performed. It is the first owned <code>parameter</code> of the <code>WhileLoopActionUsage</code>.</p> + + + + + + + + + <p>The <code>Expression</code> whose result, if false, determines that the <code>bodyAction</code> should continue to be performed. It is the (optional) third owned <code>parameter</code> of the <code>WhileLoopActionUsage</code>.</p> + + + + + + + + + + + The <code>ForLoopActionUsage</code> that has a certain <code>ReferenceUsage</code> as its <code>loopVariable</code>. + + + + + + + + + <p>The AcceptActionUsage that owns the <code>payloadParameter</code>.</p> + + + + + + + + <p><code>TriggerKind</code> enumerates the kinds of triggers that can be represented by a <code>TriggerInvocationExpression</code>.</p> + + + + <p>Indicates a <em>change trigger</em>, corresponding to the <em><code>TriggerWhen</code></em> <code>Function</code> from the <em><code>Triggers</code></em> model in the Kernel Semantic Library.</p> + + + + + <p>Indicates an <em>absolute time trigger</em>, corresponding to the <em><code>TriggerAt</code></em> <code>Function</code> from the <em><code>Triggers</code></em> model in the Kernel Semantic Library.</p> + + + + + <p>Indicates a <em>relative time trigger</em>, corresponding to the <em><code>TriggerAfter</code></em> <code>Function</code> from the <em><code>Triggers</code></em> model in the <code>Kernel Semantic Library.</p> + + + + + + + + + + + + <p>A <code>TriggerInvocationExpression</code> is an <code>InvocationExpression</code> that invokes one of the trigger <code>Functions</code> from the Kernel Semantic Library <code><em>Triggers<em></code> package, as indicated by its <code>kind</code>.</p> + + + + <p>If a <code>TriggerInvocationExpression</code> has <code>kind = after</code>, then it must have an argument <code>Expression</code> with a <code>result</code> that conforms to the type <em><code>Quantities::ScalarQuantityValue</code></em> and a <code>feature</code> that directly or indirectly redefines <em><code>Quantities::TensorQuantityValue::mRef</code></em> and directly or indirectly specializes <em><code>ISQBase::DurationUnit</code></em>.</p> + + + OCL2.0 + kind = TriggerKind::after implies + argument->notEmpty() and + argument->at(1).result.specializesFromLibrary('Quantities::ScalarQuantityValue') and + let mRef : Element = + resolveGlobal('Quantities::TensorQuantityValue::mRef').ownedMemberElement in + argument->at(1).result.feature-> + select(ownedRedefinition.redefinedFeature-> + closure(ownedRedefinition.redefinedFeature)-> + includes(mRef))-> + exists(specializesFromLibrary('ISQBase::DurationUnit')) + + + + + <p>If a <code>TriggerInvocationExpression</code> has <code>kind = at</code>, then it must have an argument <code>Expression</code> with a <code>result</code> that conforms to the type <em><code>Time::TimeInstantValue</code></em>.</p> + + + OCL2.0 + kind = TriggerKind::at implies + argument->notEmpty() and + argument->at(1).result.specializesFromLibrary('Time::TimeInstantValue') + + + + + <p>If a <code>TriggerInvocationExpression</code> has <code>kind = when</code>, then it must have an <code>argument</code> that is a <code>FeatureReferenceExpression</code> whose <code>referent</code> is an <code>Expression</code> with a <code>result</code> that conforms to the type <em><code>ScalarValues::Boolean</code></em>.</p> + + + OCL2.0 + kind = TriggerKind::when implies + argument->notEmpty() and + argument->at(1).oclIsKindOf(FeatureReferenceExpression) and + let referent : Feature = + argument->at(1).oclAsType(FeatureReferenceExpression).referent in + referent.oclIsKindOf(Expression) and + referent.oclAsType(Expression).result.specializesFromLibrary('ScalarValues::Boolean') + + + + + + + + <p>Indicates which of the <code>Functions</code> from the <code><em>Triggers</em></code> model in the Kernel Semantic Library is to be invoked by this <code>TriggerInvocationExpression</code>.</p> + + + + + <p>Return one of the <code>Functions</code> <em><code>TriggerWhen</code></em>, <em><code>TriggerAt</code></em> or <em><code>TriggerAfter</code></em>, from the Kernel Semantic Library <em><code>Triggers</code></em> package, depending on whether the <code>kind</code> of this <code>TriggerInvocationExpression</code> is <code>when</code>, <code>at</code> or <code>after</code>, respectively.</p> + + + + OCL2.0 + resolveGlobal( + if kind = TriggerKind::when then + 'Triggers::TriggerWhen' + else if kind = TriggerKind::at then + 'Triggers::TriggerAt' + else + 'Triggers::TriggerAfter' + endif endif +).memberElement.oclAsType(Type) + + + + + + + + + + + + <p>The <code>SendActionUsage</code> that has a certain <code>Expression</code> as its <code>senderArgument</code>.</p> + + + + + + + + <p>A <code>TerminateActionUsage</code> is an <code>ActionUsage</code> that directly or indirectly specializes the <code>ActionDefinition</code> <em><code>TerminateAction</code></em> from the Systems Model Library, which causes a given <em><code>terminatedOccurrence</code></em> to end during its performance. By default, the <code>terminatedOccurrence</code> is the featuring instance (<em><code>that</code></em>) of the performance of the <code>TerminateActionUsage</code>, generally the performance of its immediately containing <code>ActionDefinition</code> or <code>ActionUsage</code>.</p> + + + + <p>A <code>TerminateActionUsage</code> must directly or indirectly specialize the <code>ActionUsage</code> <em><code>Actions::terminateActions</code></em> from the Systems Modeling Library.</p> + + + OCL2.0 + specializesFromLibrary('Actions::terminateActions') + + + + + <p>The <code>terminatedOccurrenceArgument</code> of a <code>TerminateActionUsage</code> is its first argument.</p> + + + OCL2.0 + terminatedOccurrenceArgument = argument(1) + + + + + <p>A composite <code>TerminateActionUsage</code> that is a subaction must must directly or indirectly specialize the <code>ActionUsage</code> <em><code>Actions::Action::terminateSubactions</code></em> from the Systems Modeling Library.</p> + + + OCL2.0 + isSubactionUsage() implies + specializesFromLibrary('Actions::Action::terminateSubactions') + + + + + + <p>The <code>Expression</code> that is the <code>featureValue</code> of the <em><code>terminateOccurrence</code></em> <code>parameter</code> of this <code>TerminateActionUsage</code>. + + + + + + + + + + <p>The <code>TerminateActionUsage</code> that has a certain <code>Expression</code> as its <code>terminatedOccurrenceArgument</code>.</p> + + + + + + + + + + + <p>The Definitions that have a certain Usage as a <code>flow</code>.</p> + + + + + + + + + + + <p>The Definitions that feature a certain Usage.</p> + + + + + + + + + + <p>The Usage in which the <code>nestedPort</code> is nested (if any).</p> + + + + + + + + <p>A <code>Definition</code> is a <code>Classifier</code> of <code>Usages</code>. The actual kinds of <code>Definition</code> that may appear in a model are given by the subclasses of <code>Definition</code> (possibly as extended with user-defined <em><code>SemanticMetadata</code></em>).</p> - <p>Normally, a <code>Definition</code> has owned Usages that model <code>features</code> of the thing being defined. A <code>Definition</code> may also have other <code>Definitions</code> nested in it, but this has no semantic significance, other than the nested scoping resulting from the <code>Definition</code> being considered as a <code>Namespace</code> for any nested <code>Definitions</code>.</p> +<p>Normally, a <code>Definition</code> has owned Usages that model <code>features</code> of the thing being defined. A <code>Definition</code> may also have other <code>Definitions</code> nested in it, but this has no semantic significance, other than the nested scoping resulting from the <code>Definition</code> being considered as a <code>Namespace</code> for any nested <code>Definitions</code>.</p> - <p>However, if a <code>Definition</code> has <code>isVariation</code> = <code>true</code>, then it represents a <em>variation point</em> <code>Definition</code>. In this case, all of its <code>members</code> must be <code>variant</code> <code>Usages</code>, related to the <code>Definition</code> by <code>VariantMembership</code> <code>Relationships</code>. Rather than being <code>features</code> of the <code>Definition</code>, <code>variant</code> <code>Usages</code> model different concrete alternatives that can be chosen to fill in for an abstract <code>Usage</code> of the variation point <code>Definition</code>.</p> - - - - - <p>If a <code>Definition</code> is a variation, then all it must not have any <code>ownedFeatureMemberships</code>.</p> - - - OCL2.0 - isVariation implies ownedFeatureMembership->isEmpty() - - - - - <p>The <code>variants</code> of a <code>Definition</code> are the <code>ownedVariantUsages</code> of its <code>variantMemberships</code>.</p> - - - OCL2.0 - variant = variantMembership.ownedVariantUsage - - - - - <p>The <code>variantMemberships</code> of a <code>Definition</code> are those <code>ownedMemberships</code> that are <code>VariantMemberships</code>.</p> - - - OCL2.0 - variantMembership = ownedMembership->selectByKind(VariantMembership) - - - - - <p>A variation <code>Definition</code> may not specialize any other variation <code>Definition</code>.</p> - - - OCL2.0 - isVariation implies - not ownedSpecialization.specific->exists( - oclIsKindOf(Definition) and - oclAsType(Definition).isVariation) - - - - - <p>The <code>usages</code> of a <code>Definition</code> are all its <code>features</code> that are <code>Usages</code>.</p> - - - OCL2.0 - usage = feature->selectByKind(Usage) - - - - - <p>The <code>directedUsages</code> of a <code>Definition</code> are all its <code>directedFeatures</code> that are <code>Usages</code>.</p> - - - OCL2.0 - directedUsage = directedFeature->selectByKind(Usage) - - - - - <p>The <code>ownedUsages</code> of a <code>Definition</code> are all its <code>ownedFeatures</code> that are <code>Usages</code>.</p> - - - OCL2.0 - ownedUsage = ownedFeature->selectByKind(Usage) - - - - - <p>The <code>ownedAttributes</code> of a <code>Definition</code> are all its <code>ownedUsages</code> that are <code>AttributeUsages</code>.</p> - - - OCL2.0 - ownedAttribute = ownedUsage->selectByKind(AttributeUsage) - - - - - <p>The <code>ownedReferences</code> of a <code>Definition</code> are all its <code>ownedUsages</code> that are <code>ReferenceUsages</code>.</p> - - - OCL2.0 - ownedReference = ownedUsage->selectByKind(ReferenceUsage) - - - - - <p>The <code>ownedEnumerations</code> of a <code>Definition</code> are all its <code>ownedUsages</code> that are <code>EnumerationUsages</code>.</p> - - - OCL2.0 - ownedEnumeration = ownedUsage->selectByKind(EnumerationUsage) - - - - - <p>The <code>ownedOccurrences</code> of a <code>Definition</code> are all its <code>ownedUsages</code> that are <code>OccurrenceUsages</code>.</p> - - - OCL2.0 - ownedOccurrence = ownedUsage->selectByKind(OccurrenceUsage) - - - - - <p>The <code>ownedItems</code> of a <code>Definition</code> are all its <code>ownedUsages</code> that are <code>ItemUsages</code>.</p> - - - OCL2.0 - ownedItem = ownedUsage->selectByKind(ItemUsage) - - - - - <p>The <code>ownedParts</code> of a <code>Definition</code> are all its <code>ownedUsages</code> that are <code>PartUsages</code>.</p> - - - OCL2.0 - ownedPart = ownedUsage->selectByKind(PartUsage) - - - - - <p>The <code>ownedPorts</code> of a <code>Definition</code> are all its <code>ownedUsages</code> that are <code>PortUsages</code>.</p> - - - OCL2.0 - ownedPort = ownedUsage->selectByKind(PortUsage) - - - - - <p>The <code>ownedConnections</code> of a <code>Definition</code> are all its <code>ownedUsages</code> that are <code>ConnectorAsUsages</code>.</p> - - - OCL2.0 - ownedConnection = ownedUsage->selectByKind(ConnectorAsUsage) - - - - - <p>The <code>ownedFlows</code> of a <code>Definition</code> are all its <code>ownedUsages</code> that are <code>FlowUsages</code>.</p> - - - OCL2.0 - ownedFlow = ownedUsage->selectByKind(FlowConnectionUsage) - - - - - <p>The <code>ownedInterfaces</code> of a <code>Definition</code> are all its <code>ownedUsages</code> that are <code>InterfaceUsages</code>.</p> - - - OCL2.0 - ownedInterface = ownedUsage->selectByKind(ReferenceUsage) - - - - - <p>The <code>ownedAllocations</code> of a <code>Definition</code> are all its <code>ownedUsages</code> that are <code>AllocationUsages</code>.</p> - - - OCL2.0 - ownedAllocation = ownedUsage->selectByKind(AllocationUsage) - - - - - <p>The <code>ownedActions</code> of a <code>Definition</code> are all its <code>ownedUsages</code> that are <code>ActionUsages</code>.</p> - - - OCL2.0 - ownedAction = ownedUsage->selectByKind(ActionUsage) - - - - - <p>The <code>ownedStates</code> of a <code>Definition</code> are all its <code>ownedUsages</code> that are <code>StateUsages</code>.</p> - - - OCL2.0 - ownedState = ownedUsage->selectByKind(StateUsage) - - - - - <p>The <code>ownedTransitions</code> of a <code>Definition</code> are all its <code>ownedUsages</code> that are <code>TransitionUsages</code>.</p> - - - OCL2.0 - ownedTransition = ownedUsage->selectByKind(TransitionUsage) - - - - - <p>The <code>ownedCalculations</code> of a <code>Definition</code> are all its <code>ownedUsages</code> that are <code>CalculationUsages</code>.</p> - - - OCL2.0 - ownedCalculation = ownedUsage->selectByKind(CalculationUsage) - - - - - <p>The <code>ownedConstraints</code> of a <code>Definition</code> are all its <code>ownedUsages</code> that are <code>ConstraintUsages</code>.</p> - - - OCL2.0 - ownedConstraint = ownedUsage->selectByKind(ConstraintUsage) - - - - - <p>The <code>ownedRequirements</code> of a <code>Definition</code> are all its <code>ownedUsages</code> that are <code>RequirementUsages</code>.</p> - - - OCL2.0 - ownedRequirement = ownedUsage->selectByKind(RequirementUsage) - - - - - <p>The <code>ownedConcerns</code> of a <code>Definition</code> are all its <code>ownedUsages</code> that are <code>ConcernUsages</code>.</p> - - - OCL2.0 - ownedConcern = ownedUsage->selectByKind(ConcernUsage) - - - - - <p>The <code>ownedCases</code> of a <code>Definition</code> are all its <code>ownedUsages</code> that are <code>CaseUsages</code>.</p> - - - OCL2.0 - ownedCase = ownedUsage->selectByKind(CaseUsage) - - - - - <p>The <code>ownedAnalysisCases</code> of a <code>Definition</code> are all its <code>ownedUsages</code> that are <code>AnalysisCaseUsages</code>.</p> - - - OCL2.0 - ownedAnalysisCase = ownedUsage->selectByKind(AnalysisCaseUsage) - - - - - <p>The <code>ownedValidationCases</code> of a <code>Definition</code> are all its <code>ownedUsages</code> that are <code>ValidationCaseUsages</code>.</p> - - - OCL2.0 - ownedVerificationCase = ownedUsage->selectByKind(VerificationCaseUsage) - - - - - <p>The <code>ownedUseCases</code> of a <code>Definition</code> are all its <code>ownedUsages</code> that are <code>UseCaseUsages</code>.</p> - - - OCL2.0 - ownedUseCase = ownedUsage->selectByKind(UseCaseUsage) - - - - - <p>The <code>ownedViews</code> of a <code>Definition</code> are all its <code>ownedUsages</code> that are <code>ViewUsages</code>.</p> - - - OCL2.0 - ownedView = ownedUsage->selectByKind(ViewUsage) - - - - - <p>The <code>ownedViewpoints</code> of a <code>Definition</code> are all its <code>ownedUsages</code> that are <code>ViewpointUsages</code>.</p> - - - OCL2.0 - ownedViewpoint = ownedUsage->selectByKind(ViewpointUsage) - - - - - <p>The <code>ownedRenderings</code> of a <code>Definition</code> are all its <code>ownedUsages</code> that are <code>RenderingUsages</code>.</p> - - - OCL2.0 - ownedRendering = ownedUsage->selectByKind(RenderingUsage) - - - - - <p>The <code>ownedMetadata</code> of a <code>Definition</code> are all its <code>ownedUsages</code> that are <code>MetadataUsages</code>.</p> - - - OCL2.0 - ownedMetadata = ownedUsage->selectByKind(MetadataUsage) - - - - - <p>If a <code>Definition</code> is a variation, then it must be abstract.</p> - - - OCL2.0 - isVariation implies isAbstract - - - - - - - - <p>Whether this <code>Definition</code> is for a variation point or not. If true, then all the <code>memberships</code> of the <code>Definition</code> must be <code>VariantMemberships</code>.</p> - - - - - - <p>The <code>Usages</code> which represent the variants of this <code>Definition</code> as a variation point <code>Definition</code>, if <code>isVariation</code> = true. If <code>isVariation = false</code>, the there must be no <code>variants</code>.</p> - - - - - - - - <p>The <code>ownedMemberships</code> of this <code>Definition</code> that are <code>VariantMemberships</code>. If <code>isVariation</code> = true, then this must be all <code>ownedMemberships</code> of the <code>Definition</code>. If <code>isVariation</code> = false, then <code>variantMembership</code>must be empty.</p> - - - - - - - - <p>The <code>Usages</code> that are <code>features</code> of this <code>Definition</code> (not necessarily owned).</p> - - - - - - - - <p>The <code>usages</code> of this <code>Definition</code> that are <code>directedFeatures</code>.</p> - - - - - - - - - - <p>The <code>Usages</code> that are <code>ownedFeatures</code> of this <code>Definition</code>.</p> - - - - - - - - - <p>The <code>ReferenceUsages</code> that are <code>ownedUsages</code> of this <code>Definition</code>.</p> - - - - - - - <p>The <code>AttributeUsages</code> that are <code>ownedUsages</code> of this <code>Definition</code>.<p> - - - - - - - <p>The <code>EnumerationUsages</code> that are <code>ownedUsages</code> of this <code>Definition</code>.<p> - - - - - - - <p>The <code>OccurrenceUsages</code> that are <code>ownedUsages</code> of this <code>Definition</code>.</p> - - - - - - - <p>The <code>ItemUsages</code> that are <code>ownedUsages</code> of this <code>Definition</code>.</p> - - - - - - - <p>The <code>PartUsages</code> that are <code>ownedUsages</code> of this <code>Definition</code>.</p> - - - - - - - <p>The <code>PortUsages</code> that are <code>ownedUsages</code> of this <code>Definition</code>.</p> - - - - - - - <p>The <code>ConnectorAsUsages</code> that are <code>ownedUsages</code> of this <code>Definition</code>. Note that this list includes <code>BindingConnectorAsUsages</code>, <code>SuccessionAsUsages</code>, and <code>FlowUsages</code> because these are <code>ConnectorAsUsages</code> even though they are not <code>ConnectionUsages</code>.</p> - - - - - - - <p>The <code>FlowUsages</code> that are <code>ownedUsages</code> of this <code>Definition</code>.</p> - - - - - - - <p>The <code>InterfaceUsages</code> that are <code>ownedUsages</code> of this <code>Definition</code>.</p> - - - - - - - <p>The <code>AllocationUsages</code> that are <code>ownedUsages</code> of this <code>Definition</code>.</p> - - - - - - - <p>The <code>ActionUsages</code> that are <code>ownedUsages</code> of this <code>Definition</code>.</p> - - - - - - - <p>The <code>StateUsages</code> that are <code>ownedUsages</code> of this <code>Definition</code>.</p> - - - - - - - <p>The <code>TransitionUsages</code> that are <code>ownedUsages</code> of this <code>Definition</code>.</p> - - - - - - - <p>The <code>CalculationUsages</code> that are <code>ownedUsages</code> of this <code>Definition</code>.</p> - - - - - - - <p>The <code>ConstraintUsages</code> that are <code>ownedUsages</code> of this <code>Definition</code>.</p> - - - - - - - - <p>The <code>RequirementUsages</code> that are <code>ownedUsages</code> of this <code>Definition</code>.</p> - - - - - - - <p>The <code>ConcernUsages</code> that are <code>ownedUsages</code> of this <code>Definition</code>.</p> - - - - - - - <p>The code>CaseUsages</code> that are <code>ownedUsages</code> of this <code>Definition</code>.</p> - - - - - - - <p>The <code>AnalysisCaseUsages</code> that are <code>ownedUsages</code> of this <code>Definition</code>.</p> - - - - - - - <p>The <code>VerificationCaseUsages</code> that are <code>ownedUsages</code> of this <code>Definition</code>.</p> - - - - - - - <p>The <code>UseCaseUsages</code> that are <code>ownedUsages</code> of this <code>Definition</code>.</p> - - - - - - - <p>The <code>ViewUsages</code> that are <code>ownedUsages</code> of this <code>Definition</code>.</p> - - - - - - - <p>The <code>ViewpointUsages</code> that are <code>ownedUsages</code> of this <code>Definition</code>.</p> - - - - - - - <p>The <code>RenderingUsages</code> that are <code>ownedUsages</code> of this <code>Definition</code>.</p> - - - - - - - <p>The <code>MetadataUsages</code> that are <code>ownedUsages</code> of this <code>Definition</code>.</p> - - - - - - - - - <p>The ItemUsages being typed by a certain Structure.</p> - - - - - - - - - <p>The Usage in which the <code>nestedAction</code> is nested.</p> - - - - - - - - - <p>The Definition that owns the <code>ownedPort</code>.</p> - - - - - - - - - - <p>A <code>Usage</code> is a usage of a <code>Definition</code>.</p> +<p>However, if a <code>Definition</code> has <code>isVariation</code> = <code>true</code>, then it represents a <em>variation point</em> <code>Definition</code>. In this case, all of its <code>members</code> must be <code>variant</code> <code>Usages</code>, related to the <code>Definition</code> by <code>VariantMembership</code> <code>Relationships</code>. Rather than being <code>features</code> of the <code>Definition</code>, <code>variant</code> <code>Usages</code> model different concrete alternatives that can be chosen to fill in for an abstract <code>Usage</code> of the variation point <code>Definition</code>.</p> + + + + + <p>If a <code>Definition</code> is a variation, then all it must not have any <code>ownedFeatureMemberships</code>.</p> + + + OCL2.0 + isVariation implies ownedFeatureMembership->isEmpty() + + + + + <p>The <code>variants</code> of a <code>Definition</code> are the <code>ownedVariantUsages</code> of its <code>variantMemberships</code>.</p> + + + OCL2.0 + variant = variantMembership.ownedVariantUsage + + + + + <p>The <code>variantMemberships</code> of a <code>Definition</code> are those <code>ownedMemberships</code> that are <code>VariantMemberships</code>.</p> + + + OCL2.0 + variantMembership = ownedMembership->selectByKind(VariantMembership) + + + + + <p>A variation <code>Definition</code> may not specialize any other variation <code>Definition</code>.</p> + + + OCL2.0 + isVariation implies + not ownedSpecialization.specific->exists( + oclIsKindOf(Definition) and + oclAsType(Definition).isVariation) + + + + + <p>The <code>usages</code> of a <code>Definition</code> are all its <code>features</code> that are <code>Usages</code>.</p> + + + OCL2.0 + usage = feature->selectByKind(Usage) + + + + + <p>The <code>directedUsages</code> of a <code>Definition</code> are all its <code>directedFeatures</code> that are <code>Usages</code>.</p> + + + OCL2.0 + directedUsage = directedFeature->selectByKind(Usage) + + + + + <p>The <code>ownedUsages</code> of a <code>Definition</code> are all its <code>ownedFeatures</code> that are <code>Usages</code>.</p> + + + OCL2.0 + ownedUsage = ownedFeature->selectByKind(Usage) + + + + + <p>The <code>ownedAttributes</code> of a <code>Definition</code> are all its <code>ownedUsages</code> that are <code>AttributeUsages</code>.</p> + + + OCL2.0 + ownedAttribute = ownedUsage->selectByKind(AttributeUsage) + + + + + <p>The <code>ownedReferences</code> of a <code>Definition</code> are all its <code>ownedUsages</code> that are <code>ReferenceUsages</code>.</p> + + + OCL2.0 + ownedReference = ownedUsage->selectByKind(ReferenceUsage) + + + + + <p>The <code>ownedEnumerations</code> of a <code>Definition</code> are all its <code>ownedUsages</code> that are <code>EnumerationUsages</code>.</p> + + + OCL2.0 + ownedEnumeration = ownedUsage->selectByKind(EnumerationUsage) + + + + + <p>The <code>ownedOccurrences</code> of a <code>Definition</code> are all its <code>ownedUsages</code> that are <code>OccurrenceUsages</code>.</p> + + + OCL2.0 + ownedOccurrence = ownedUsage->selectByKind(OccurrenceUsage) + + + + + <p>The <code>ownedItems</code> of a <code>Definition</code> are all its <code>ownedUsages</code> that are <code>ItemUsages</code>.</p> + + + OCL2.0 + ownedItem = ownedUsage->selectByKind(ItemUsage) + + + + + <p>The <code>ownedParts</code> of a <code>Definition</code> are all its <code>ownedUsages</code> that are <code>PartUsages</code>.</p> + + + OCL2.0 + ownedPart = ownedUsage->selectByKind(PartUsage) + + + + + <p>The <code>ownedPorts</code> of a <code>Definition</code> are all its <code>ownedUsages</code> that are <code>PortUsages</code>.</p> + + + OCL2.0 + ownedPort = ownedUsage->selectByKind(PortUsage) + + + + + <p>The <code>ownedConnections</code> of a <code>Definition</code> are all its <code>ownedUsages</code> that are <code>ConnectorAsUsages</code>.</p> + + + OCL2.0 + ownedConnection = ownedUsage->selectByKind(ConnectorAsUsage) + + + + + <p>The <code>ownedFlows</code> of a <code>Definition</code> are all its <code>ownedUsages</code> that are <code>FlowUsages</code>.</p> + + + OCL2.0 + ownedFlow = ownedUsage->selectByKind(FlowUsage) + + + + + <p>The <code>ownedInterfaces</code> of a <code>Definition</code> are all its <code>ownedUsages</code> that are <code>InterfaceUsages</code>.</p> + + + OCL2.0 + ownedInterface = ownedUsage->selectByKind(ReferenceUsage) + + + + + <p>The <code>ownedAllocations</code> of a <code>Definition</code> are all its <code>ownedUsages</code> that are <code>AllocationUsages</code>.</p> + + + OCL2.0 + ownedAllocation = ownedUsage->selectByKind(AllocationUsage) + + + + + <p>The <code>ownedActions</code> of a <code>Definition</code> are all its <code>ownedUsages</code> that are <code>ActionUsages</code>.</p> + + + OCL2.0 + ownedAction = ownedUsage->selectByKind(ActionUsage) + + + + + <p>The <code>ownedStates</code> of a <code>Definition</code> are all its <code>ownedUsages</code> that are <code>StateUsages</code>.</p> + + + OCL2.0 + ownedState = ownedUsage->selectByKind(StateUsage) + + + + + <p>The <code>ownedTransitions</code> of a <code>Definition</code> are all its <code>ownedUsages</code> that are <code>TransitionUsages</code>.</p> + + + OCL2.0 + ownedTransition = ownedUsage->selectByKind(TransitionUsage) + + + + + <p>The <code>ownedCalculations</code> of a <code>Definition</code> are all its <code>ownedUsages</code> that are <code>CalculationUsages</code>.</p> + + + OCL2.0 + ownedCalculation = ownedUsage->selectByKind(CalculationUsage) + + + + + <p>The <code>ownedConstraints</code> of a <code>Definition</code> are all its <code>ownedUsages</code> that are <code>ConstraintUsages</code>.</p> + + + OCL2.0 + ownedConstraint = ownedUsage->selectByKind(ConstraintUsage) + + + + + <p>The <code>ownedRequirements</code> of a <code>Definition</code> are all its <code>ownedUsages</code> that are <code>RequirementUsages</code>.</p> + + + OCL2.0 + ownedRequirement = ownedUsage->selectByKind(RequirementUsage) + + + + + <p>The <code>ownedConcerns</code> of a <code>Definition</code> are all its <code>ownedUsages</code> that are <code>ConcernUsages</code>.</p> + + + OCL2.0 + ownedConcern = ownedUsage->selectByKind(ConcernUsage) + + + + + <p>The <code>ownedCases</code> of a <code>Definition</code> are all its <code>ownedUsages</code> that are <code>CaseUsages</code>.</p> + + + OCL2.0 + ownedCase = ownedUsage->selectByKind(CaseUsage) + + + + + <p>The <code>ownedAnalysisCases</code> of a <code>Definition</code> are all its <code>ownedUsages</code> that are <code>AnalysisCaseUsages</code>.</p> + + + OCL2.0 + ownedAnalysisCase = ownedUsage->selectByKind(AnalysisCaseUsage) + + + + + <p>The <code>ownedValidationCases</code> of a <code>Definition</code> are all its <code>ownedUsages</code> that are <code>ValidationCaseUsages</code>.</p> + + + OCL2.0 + ownedVerificationCase = ownedUsage->selectByKind(VerificationCaseUsage) + + + + + <p>The <code>ownedUseCases</code> of a <code>Definition</code> are all its <code>ownedUsages</code> that are <code>UseCaseUsages</code>.</p> + + + OCL2.0 + ownedUseCase = ownedUsage->selectByKind(UseCaseUsage) + + + + + <p>The <code>ownedViews</code> of a <code>Definition</code> are all its <code>ownedUsages</code> that are <code>ViewUsages</code>.</p> + + + OCL2.0 + ownedView = ownedUsage->selectByKind(ViewUsage) + + + + + <p>The <code>ownedViewpoints</code> of a <code>Definition</code> are all its <code>ownedUsages</code> that are <code>ViewpointUsages</code>.</p> + + + OCL2.0 + ownedViewpoint = ownedUsage->selectByKind(ViewpointUsage) + + + + + <p>The <code>ownedRenderings</code> of a <code>Definition</code> are all its <code>ownedUsages</code> that are <code>RenderingUsages</code>.</p> + + + OCL2.0 + ownedRendering = ownedUsage->selectByKind(RenderingUsage) + + + + + <p>The <code>ownedMetadata</code> of a <code>Definition</code> are all its <code>ownedMembers</code> that are <code>MetadataUsages</code>.</p> + + + OCL2.0 + ownedMetadata = ownedMember->selectByKind(MetadataUsage) + + + + + <p>If a <code>Definition</code> is a variation, then it must be abstract.</p> + + + OCL2.0 + isVariation implies isAbstract + + + + + + + + <p>Whether this <code>Definition</code> is for a variation point or not. If true, then all the <code>memberships</code> of the <code>Definition</code> must be <code>VariantMemberships</code>.</p> + + + + + + <p>The <code>Usages</code> which represent the variants of this <code>Definition</code> as a variation point <code>Definition</code>, if <code>isVariation</code> = true. If <code>isVariation = false</code>, the there must be no <code>variants</code>.</p> + + + + + + + + <p>The <code>ownedMemberships</code> of this <code>Definition</code> that are <code>VariantMemberships</code>. If <code>isVariation</code> = true, then this must be all <code>ownedMemberships</code> of the <code>Definition</code>. If <code>isVariation</code> = false, then <code>variantMembership</code>must be empty.</p> + + + + + + + + <p>The <code>Usages</code> that are <code>features</code> of this <code>Definition</code> (not necessarily owned).</p> + + + + + + + + <p>The <code>usages</code> of this <code>Definition</code> that are <code>directedFeatures</code>.</p> + + + + + + + + + + <p>The <code>Usages</code> that are <code>ownedFeatures</code> of this <code>Definition</code>.</p> + + + + + + + + + <p>The <code>ReferenceUsages</code> that are <code>ownedUsages</code> of this <code>Definition</code>.</p> + + + + + + + <p>The <code>AttributeUsages</code> that are <code>ownedUsages</code> of this <code>Definition</code>.<p> + + + + + + + <p>The <code>EnumerationUsages</code> that are <code>ownedUsages</code> of this <code>Definition</code>.<p> + + + + + + + <p>The <code>OccurrenceUsages</code> that are <code>ownedUsages</code> of this <code>Definition</code>.</p> + + + + + + + <p>The <code>ItemUsages</code> that are <code>ownedUsages</code> of this <code>Definition</code>.</p> + + + + + + + <p>The <code>PartUsages</code> that are <code>ownedUsages</code> of this <code>Definition</code>.</p> + + + + + + + <p>The <code>PortUsages</code> that are <code>ownedUsages</code> of this <code>Definition</code>.</p> + + + + + + + <p>The <code>ConnectorAsUsages</code> that are <code>ownedUsages</code> of this <code>Definition</code>. Note that this list includes <code>BindingConnectorAsUsages</code>, <code>SuccessionAsUsages</code>, and <code>FlowUsages</code> because these are <code>ConnectorAsUsages</code> even though they are not <code>ConnectionUsages</code>.</p> + + + + + + + <p>The <code>FlowUsages</code> that are <code>ownedUsages</code> of this <code>Definition</code>.</p> + + + + + + + <p>The <code>InterfaceUsages</code> that are <code>ownedUsages</code> of this <code>Definition</code>.</p> + + + + + + + <p>The <code>AllocationUsages</code> that are <code>ownedUsages</code> of this <code>Definition</code>.</p> + + + + + + + <p>The <code>ActionUsages</code> that are <code>ownedUsages</code> of this <code>Definition</code>.</p> + + + + + + + <p>The <code>StateUsages</code> that are <code>ownedUsages</code> of this <code>Definition</code>.</p> + + + + + + + <p>The <code>TransitionUsages</code> that are <code>ownedUsages</code> of this <code>Definition</code>.</p> + + + + + + + <p>The <code>CalculationUsages</code> that are <code>ownedUsages</code> of this <code>Definition</code>.</p> + + + + + + + <p>The <code>ConstraintUsages</code> that are <code>ownedUsages</code> of this <code>Definition</code>.</p> + + + + + + + + <p>The <code>RequirementUsages</code> that are <code>ownedUsages</code> of this <code>Definition</code>.</p> + + + + + + + <p>The <code>ConcernUsages</code> that are <code>ownedUsages</code> of this <code>Definition</code>.</p> + + + + + + + <p>The code>CaseUsages</code> that are <code>ownedUsages</code> of this <code>Definition</code>.</p> + + + + + + + <p>The <code>AnalysisCaseUsages</code> that are <code>ownedUsages</code> of this <code>Definition</code>.</p> + + + + + + + <p>The <code>VerificationCaseUsages</code> that are <code>ownedUsages</code> of this <code>Definition</code>.</p> + + + + + + + <p>The <code>UseCaseUsages</code> that are <code>ownedUsages</code> of this <code>Definition</code>.</p> + + + + + + + <p>The <code>ViewUsages</code> that are <code>ownedUsages</code> of this <code>Definition</code>.</p> + + + + + + + <p>The <code>ViewpointUsages</code> that are <code>ownedUsages</code> of this <code>Definition</code>.</p> + + + + + + + <p>The <code>RenderingUsages</code> that are <code>ownedUsages</code> of this <code>Definition</code>.</p> + + + + + + + <p>The <code>MetadataUsages</code> that are <code>ownedMembers</code> of this <code>Definition</code>.</p> + + + + + + + + + <p>The ItemUsages being typed by a certain Structure.</p> + + + + + + + + + <p>The Usage in which the <code>nestedAction</code> is nested.</p> + + + + + + + + + <p>The Definition that owns the <code>ownedPort</code>.</p> + + + + + + + + + + <p>A <code>Usage</code> is a usage of a <code>Definition</code>.</p> - <p>A <code>Usage</code> may have <code>nestedUsages</code> that model <code>features</code> that apply in the context of the <code>owningUsage</code>. A <code>Usage</code> may also have <code>Definitions</code> nested in it, but this has no semantic significance, other than the nested scoping resulting from the <code>Usage</code> being considered as a <code>Namespace</code> for any nested <code>Definitions</code>.</p> +<p>A <code>Usage</code> may have <code>nestedUsages</code> that model <code>features</code> that apply in the context of the <code>owningUsage</code>. A <code>Usage</code> may also have <code>Definitions</code> nested in it, but this has no semantic significance, other than the nested scoping resulting from the <code>Usage</code> being considered as a <code>Namespace</code> for any nested <code>Definitions</code>.</p> - <p>However, if a <code>Usage</code> has <code>isVariation = true</code>, then it represents a <em>variation point</em> <code>Usage</code>. In this case, all of its <code>members</code> must be <code>variant</code> <code>Usages</code>, related to the <code>Usage</code> by <code>VariantMembership</code> <code>Relationships</code>. Rather than being <code>features</code> of the <code>Usage</code>, <code>variant</code> <code>Usages</code> model different concrete alternatives that can be chosen to fill in for the variation point <code>Usage</code>.</p> - - - - <p>The <code>variants</code> of a <code>Usage</code> are the <code>ownedVariantUsages</code> of its <code>variantMemberships</code>.</p> - - - OCL2.0 - variant = variantMembership.ownedVariantUsage - - - - - <p>The <code>variantMemberships</code> of a <code>Usage</code> are those <code>ownedMemberships</code> that are <code>VariantMemberships</code>.</p> - - - OCL2.0 - variantMembership = ownedMembership->selectByKind(VariantMembership) - - - - - <p>If a <code>Usage</code> is a variation, then it must not have any <code>ownedFeatureMemberships</code>.</p> - - - OCL2.0 - isVariation implies ownedFeatureMembership->isEmpty() - - - - - <p>A <code>Usage</code> is referential if it is not composite.</p> - - - OCL2.0 - isReference = not isComposite - - - - - <p>If a <code>Usage</code> has an <code>owningVariationUsage</code>, then it must directly or indirectly specialize that <code>Usage</code>.</p> - - - OCL2.0 - owningVariationUsage <> null implies - specializes(owningVariationUsage) - - - - - <p>A variation <code>Usage</code> may not specialize any variation <code>Definition</code> or <code>Usage</code>.</p> - - - OCL2.0 - isVariation implies - not ownedSpecialization.specific->exists( - oclIsKindOf(Definition) and - oclAsType(Definition).isVariation or - oclIsKindOf(Usage) and - oclAsType(Usage).isVariation) - - - - - <p>If a <code>Usage</code> has an <code>owningVariationDefinition</code>, then it must directly or indirectly specialize that <code>Definition</code>.</p> - - - OCL2.0 - owningVariationDefinition <> null implies - specializes(owningVariationDefinition) - - - - - <p>The <code>directedUsages</code> of a <code>Usage</code> are all its <code>directedFeatures</code> that are <code>Usages</code>.</p> - - - OCL2.0 - directedUsage = directedFeature->selectByKind(Usage) - - - - - <p>The <code>ownedActions</code> of a <code>Usage</code> are all its <code>ownedUsages</code> that are <code>ActionUsages</code>.</p> - - - OCL2.0 - nestedAction = nestedUsage->selectByKind(ActionUsage) - - - - - <p>The <code>ownedAllocations</code> of a <code>Usage</code> are all its <code>ownedUsages</code> that are <code>AllocationUsages</code>.</p> - - - OCL2.0 - nestedAllocation = nestedUsage->selectByKind(AllocationUsage) - - - - - <p>The <code>ownedAnalysisCases</code> of a <code>Usage</code> are all its <code>ownedUsages</code> that are <code>AnalysisCaseUsages</code>.</p> - - - OCL2.0 - nestedAnalysisCase = nestedUsage->selectByKind(AnalysisCaseUsage) - - - - - <p>The <code>ownedAttributes</code> of a <code>Usage</code> are all its <code>ownedUsages</code> that are <code>AttributeUsages</code>.</p> - - - OCL2.0 - nestedAttribute = nestedUsage->selectByKind(AttributeUsage) - - - - - <p>The <code>ownedCalculations</code> of a <code>Usage</code> are all its <code>ownedUsages</code> that are <code>CalculationUsages</code>.</p> - - - OCL2.0 - nestedCalculation = nestedUsage->selectByKind(CalculationUsage) - - - - - <p>The <code>ownedCases</code> of a <code>Usage</code> are all its <code>ownedUsages</code> that are <code>CaseUsages</code>.</p> - - - OCL2.0 - nestedCase = nestedUsage->selectByKind(CaseUsage) - - - - - <p>The <code>ownedConcerns</code> of a <code>Usage</code> are all its <code>ownedUsages</code> that are <code>ConcernUsages</code>.</p> - - - OCL2.0 - nestedConcern = nestedUsage->selectByKind(ConcernUsage) - - - - - <p>The <code>ownedConnections</code> of a <code>Usage</code> are all its <code>ownedUsages</code> that are <code>ConnectorAsUsages</code>.</p> - - - OCL2.0 - nestedConnection = nestedUsage->selectByKind(ConnectorAsUsage) - - - - - <p>The <code>ownedConstraints</code> of a <code>Usage</code> are all its <code>ownedUsages</code> that are <code>ConstraintUsages</code>.</p> - - - OCL2.0 - nestedConstraint = nestedUsage->selectByKind(ConstraintUsage) - - - - - <p>The <code>ownedEnumerations</code> of a <code>Usage</code> are all its <code>ownedUsages</code> that are <code>EnumerationUsages</code>.</p> - - - OCL2.0 - ownedNested = nestedUsage->selectByKind(EnumerationUsage) - - - - - <p>The <code>ownedFlows</code> of a <code>Usage</code> are all its <code>ownedUsages</code> that are <code>FlowConnectionUsages</code>.</p> - - - OCL2.0 - nestedFlow = nestedUsage->selectByKind(FlowConnectionUsage) - - - - - <p>The <code>ownedInterfaces</code> of a <code>Usage</code> are all its <code>ownedUsages</code> that are <code>InterfaceUsages</code>.</p> - - - OCL2.0 - nestedInterface = nestedUsage->selectByKind(ReferenceUsage) - - - - - <p>The <code>ownedItems</code> of a <code>Usage</code> are all its <code>ownedUsages</code> that are <code>ItemUsages</code>.</p> - - - OCL2.0 - nestedItem = nestedUsage->selectByKind(ItemUsage) - - - - - <p>The <code>ownedMetadata</code> of a <code>Usage</code> are all its <code>ownedUsages</code> that are <code>MetadataUsages</code>.</p> - - - OCL2.0 - nestedMetadata = nestedUsage->selectByKind(MetadataUsage) - - - - - <p>The <code>ownedOccurrences</code> of a <code>Usage</code> are all its <code>ownedUsages</code> that are <code>OccurrenceUsages</code>.</p> - - - OCL2.0 - nestedOccurrence = nestedUsage->selectByKind(OccurrenceUsage) - - - - - <p>The <code>ownedParts</code> of a <code>Usage</code> are all its <code>ownedUsages</code> that are <code>PartUsages</code>.</p> - - - OCL2.0 - nestedPart = nestedUsage->selectByKind(PartUsage) - - - - - <p>The <code>ownedPorts</code> of a <code>Usage</code> are all its <code>ownedUsages</code> that are <code>PortUsages</code>.</p> - - - OCL2.0 - nestedPort = nestedUsage->selectByKind(PortUsage) - - - - - <p>The <code>ownedReferences</code> of a <code>Usage</code> are all its <code>ownedUsages</code> that are <code>ReferenceUsages</code>.</p> - - - OCL2.0 - nestedReference = nestedUsage->selectByKind(ReferenceUsage) - - - - - <p>The <code>ownedRenderings</code> of a <code>Usage</code> are all its <code>ownedUsages</code> that are <code>RenderingUsages</code>.</p> - - - OCL2.0 - nestedRendering = nestedUsage->selectByKind(RenderingUsage) - - - - - <p>The <code>ownedRequirements</code> of a <code>Usage</code> are all its <code>ownedUsages</code> that are <code>RequirementUsages</code>.</p> - - - OCL2.0 - nestedRequirement = nestedUsage->selectByKind(RequirementUsage) - - - - - <p>The <code>ownedStates</code> of a <code>Usage</code> are all its <code>ownedUsages</code> that are <code>StateUsages</code>.</p> - - - OCL2.0 - nestedState = nestedUsage->selectByKind(StateUsage) - - - - - <p>The <code>ownedTransitions</code> of a <code>Usage</code> are all its <code>ownedUsages</code> that are <code>TransitionUsages</code>.</p> - - - OCL2.0 - nestedTransition = nestedUsage->selectByKind(TransitionUsage) - - - - - <p>The <code>ownedUsages</code> of a <code>Usage</code> are all its <code>ownedFeatures</code> that are <code>Usages</code>.</p> - - - OCL2.0 - nestedUsage = ownedFeature->selectByKind(Usage) - - - - - <p>The <code>ownedUseCases</code> of a <code>Usage</code> are all its <code>ownedUsages</code> that are <code>UseCaseUsages</code>.</p> - - - OCL2.0 - nestedUseCase = nestedUsage->selectByKind(UseCaseUsage) - - - - - <p>The <code>ownedValidationCases</code> of a <code>Usage</code> are all its <code>ownedUsages</code> that are <code>ValidationCaseUsages</code>.</p> - - - OCL2.0 - nestedVerificationCase = nestedUsage->selectByKind(VerificationCaseUsage) - - - - - <p>The <code>ownedViews</code> of a <code>Usage</code> are all its <code>ownedUsages</code> that are <code>ViewUsages</code>.</p> - - - OCL2.0 - nestedView = nestedUsage->selectByKind(ViewUsage) - - - - - <p>The <code>ownedViewpoints</code> of a <code>Usage</code> are all its <code>ownedUsages</code> that are <code>ViewpointUsages</code>.</p> - - - OCL2.0 - nestedViewpoint = nestedUsage->selectByKind(ViewpointUsage) - - - - - <p>The <code>usages</code> of a <code>Usage</code> are all its <code>features</code> that are <code>Usages</code>.</p> - - - OCL2.0 - usage = feature->selectByKind(Usage) - - - - - <p>A <code>Usage</code> that is directed, an end feature or has no <code>featuringTypes</code> must be referential.</p> - - - OCL2.0 - direction <> null or isEnd or featuringType->isEmpty() implies - isReference - - - - - <p>If a <code>Usage</code> is a variation, then it must be abstract.</p> - - - OCL2.0 - isVariation implies isAbstract - - - - - <p>A <code>Usage</code> <code>mayTimeVary</code> if and only if all of the following are true</p> - <ul> - <li>It has an <code>owningType</code> that specializes <em><code>Occurrences::Occurrence</code></em> (from the Kernel Semantic Library).</li> - <li>It is not a portion.</li> - <li>It does not specialize <em><code>Links::SelfLink</code></em> or <em><code>Occurrences::HappensLink</code></em> (from the Kernel Semantic Library).</li> - <li>If <code>isComposite = true</code>, it does not specialize <em><code>Actions::Action</code></em> (from the Systems Model Library). - </li></ul> - - - OCL2.0 - mayTimeVary = - owningType <> null and - owningType.specializesFromLibrary('Occurrences::Occurrence') and - not ( - isPortion or - specializesFromLibrary('Links::SelfLink') or - specializesFromLibrary('Occurrences::HappensLink') or - isComposite and specializesFromLibrary('Actions::Action') - ) - - - - - <p>If a <code>Usage</code> has an <code>owningVariationUsage</code>, then it must have the same <code>featuringTypes</code> as that <code>Usage</code>.</p> - - - OCL2.0 - owningVariationUsage <> null implies - featuringType->asSet() = owningVariationUsage.featuringType->asSet() - - - - - - - - <p>Whether this <code>Usage</code> may be time varying (that is, whether it is featured by the snapshots of its <code>owningType</code>, rather than being featured by the <code>owningType</code> itself). However, if <code>isConstant</code> is also true, then the value of the <code>Usage</code> is nevertheless constant over the entire duration of an instance of its <code>owningType</code> (that is, it has the same value on all snapshots).</p> +<p>However, if a <code>Usage</code> has <code>isVariation = true</code>, then it represents a <em>variation point</em> <code>Usage</code>. In this case, all of its <code>members</code> must be <code>variant</code> <code>Usages</code>, related to the <code>Usage</code> by <code>VariantMembership</code> <code>Relationships</code>. Rather than being <code>features</code> of the <code>Usage</code>, <code>variant</code> <code>Usages</code> model different concrete alternatives that can be chosen to fill in for the variation point <code>Usage</code>.</p> + + + + <p>The <code>variants</code> of a <code>Usage</code> are the <code>ownedVariantUsages</code> of its <code>variantMemberships</code>.</p> + + + OCL2.0 + variant = variantMembership.ownedVariantUsage + + + + + <p>The <code>variantMemberships</code> of a <code>Usage</code> are those <code>ownedMemberships</code> that are <code>VariantMemberships</code>.</p> + + + OCL2.0 + variantMembership = ownedMembership->selectByKind(VariantMembership) + + + + + <p>If a <code>Usage</code> is a variation, then it must not have any <code>ownedFeatureMemberships</code>.</p> + + + OCL2.0 + isVariation implies ownedFeatureMembership->isEmpty() + + + + + <p>A <code>Usage</code> is referential if it is not composite.</p> + + + OCL2.0 + isReference = not isComposite + + + + + <p>If a <code>Usage</code> has an <code>owningVariationUsage</code>, then it must directly or indirectly specialize that <code>Usage</code>.</p> + + + OCL2.0 + owningVariationUsage <> null implies + specializes(owningVariationUsage) + + + + + <p>A variation <code>Usage</code> may not specialize any variation <code>Definition</code> or <code>Usage</code>.</p> + + + OCL2.0 + isVariation implies + not ownedSpecialization.specific->exists( + oclIsKindOf(Definition) and + oclAsType(Definition).isVariation or + oclIsKindOf(Usage) and + oclAsType(Usage).isVariation) + + + + + <p>If a <code>Usage</code> has an <code>owningVariationDefinition</code>, then it must directly or indirectly specialize that <code>Definition</code>.</p> + + + OCL2.0 + owningVariationDefinition <> null implies + specializes(owningVariationDefinition) + + + + + <p>The <code>directedUsages</code> of a <code>Usage</code> are all its <code>directedFeatures</code> that are <code>Usages</code>.</p> + + + OCL2.0 + directedUsage = directedFeature->selectByKind(Usage) + + + + + <p>The <code>ownedActions</code> of a <code>Usage</code> are all its <code>ownedUsages</code> that are <code>ActionUsages</code>.</p> + + + OCL2.0 + nestedAction = nestedUsage->selectByKind(ActionUsage) + + + + + <p>The <code>ownedAllocations</code> of a <code>Usage</code> are all its <code>ownedUsages</code> that are <code>AllocationUsages</code>.</p> + + + OCL2.0 + nestedAllocation = nestedUsage->selectByKind(AllocationUsage) + + + + + <p>The <code>ownedAnalysisCases</code> of a <code>Usage</code> are all its <code>ownedUsages</code> that are <code>AnalysisCaseUsages</code>.</p> + + + OCL2.0 + nestedAnalysisCase = nestedUsage->selectByKind(AnalysisCaseUsage) + + + + + <p>The <code>ownedAttributes</code> of a <code>Usage</code> are all its <code>ownedUsages</code> that are <code>AttributeUsages</code>.</p> + + + OCL2.0 + nestedAttribute = nestedUsage->selectByKind(AttributeUsage) + + + + + <p>The <code>ownedCalculations</code> of a <code>Usage</code> are all its <code>ownedUsages</code> that are <code>CalculationUsages</code>.</p> + + + OCL2.0 + nestedCalculation = nestedUsage->selectByKind(CalculationUsage) + + + + + <p>The <code>ownedCases</code> of a <code>Usage</code> are all its <code>ownedUsages</code> that are <code>CaseUsages</code>.</p> + + + OCL2.0 + nestedCase = nestedUsage->selectByKind(CaseUsage) + + + + + <p>The <code>ownedConcerns</code> of a <code>Usage</code> are all its <code>ownedUsages</code> that are <code>ConcernUsages</code>.</p> + + + OCL2.0 + nestedConcern = nestedUsage->selectByKind(ConcernUsage) + + + + + <p>The <code>ownedConnections</code> of a <code>Usage</code> are all its <code>ownedUsages</code> that are <code>ConnectorAsUsages</code>.</p> + + + OCL2.0 + nestedConnection = nestedUsage->selectByKind(ConnectorAsUsage) + + + + + <p>The <code>ownedConstraints</code> of a <code>Usage</code> are all its <code>ownedUsages</code> that are <code>ConstraintUsages</code>.</p> + + + OCL2.0 + nestedConstraint = nestedUsage->selectByKind(ConstraintUsage) + + + + + <p>The <code>ownedEnumerations</code> of a <code>Usage</code> are all its <code>ownedUsages</code> that are <code>EnumerationUsages</code>.</p> + + + OCL2.0 + ownedNested = nestedUsage->selectByKind(EnumerationUsage) + + + + + <p>The <code>ownedFlows</code> of a <code>Usage</code> are all its <code>ownedUsages</code> that are <code>FlowConnectionUsages</code>.</p> + + + OCL2.0 + nestedFlow = nestedUsage->selectByKind(FlowUsage) + + + + + <p>The <code>ownedInterfaces</code> of a <code>Usage</code> are all its <code>ownedUsages</code> that are <code>InterfaceUsages</code>.</p> + + + OCL2.0 + nestedInterface = nestedUsage->selectByKind(ReferenceUsage) + + + + + <p>The <code>ownedItems</code> of a <code>Usage</code> are all its <code>ownedUsages</code> that are <code>ItemUsages</code>.</p> + + + OCL2.0 + nestedItem = nestedUsage->selectByKind(ItemUsage) + + + + + <p>The <code>ownedMetadata</code> of a <code>Usage</code> are all its <code>ownedMembers</code> that are <code>MetadataUsages</code>.</p> + + + OCL2.0 + nestedMetadata = nestedUsage->selectByKind(MetadataUsage) + + + + + <p>The <code>ownedOccurrences</code> of a <code>Usage</code> are all its <code>ownedUsages</code> that are <code>OccurrenceUsages</code>.</p> + + + OCL2.0 + nestedOccurrence = nestedUsage->selectByKind(OccurrenceUsage) + + + + + <p>The <code>ownedParts</code> of a <code>Usage</code> are all its <code>ownedUsages</code> that are <code>PartUsages</code>.</p> + + + OCL2.0 + nestedPart = nestedUsage->selectByKind(PartUsage) + + + + + <p>The <code>ownedPorts</code> of a <code>Usage</code> are all its <code>ownedUsages</code> that are <code>PortUsages</code>.</p> + + + OCL2.0 + nestedPort = nestedUsage->selectByKind(PortUsage) + + + + + <p>The <code>ownedReferences</code> of a <code>Usage</code> are all its <code>ownedUsages</code> that are <code>ReferenceUsages</code>.</p> + + + OCL2.0 + nestedReference = nestedUsage->selectByKind(ReferenceUsage) + + + + + <p>The <code>ownedRenderings</code> of a <code>Usage</code> are all its <code>ownedUsages</code> that are <code>RenderingUsages</code>.</p> + + + OCL2.0 + nestedRendering = nestedUsage->selectByKind(RenderingUsage) + + + + + <p>The <code>ownedRequirements</code> of a <code>Usage</code> are all its <code>ownedUsages</code> that are <code>RequirementUsages</code>.</p> + + + OCL2.0 + nestedRequirement = nestedUsage->selectByKind(RequirementUsage) + + + + + <p>The <code>ownedStates</code> of a <code>Usage</code> are all its <code>ownedUsages</code> that are <code>StateUsages</code>.</p> + + + OCL2.0 + nestedState = nestedUsage->selectByKind(StateUsage) + + + + + <p>The <code>ownedTransitions</code> of a <code>Usage</code> are all its <code>ownedUsages</code> that are <code>TransitionUsages</code>.</p> + + + OCL2.0 + nestedTransition = nestedUsage->selectByKind(TransitionUsage) + + + + + <p>The <code>ownedUsages</code> of a <code>Usage</code> are all its <code>ownedFeatures</code> that are <code>Usages</code>.</p> + + + OCL2.0 + nestedUsage = ownedFeature->selectByKind(Usage) + + + + + <p>The <code>ownedUseCases</code> of a <code>Usage</code> are all its <code>ownedUsages</code> that are <code>UseCaseUsages</code>.</p> + + + OCL2.0 + nestedUseCase = nestedUsage->selectByKind(UseCaseUsage) + + + + + <p>The <code>ownedValidationCases</code> of a <code>Usage</code> are all its <code>ownedUsages</code> that are <code>ValidationCaseUsages</code>.</p> + + + OCL2.0 + nestedVerificationCase = nestedUsage->selectByKind(VerificationCaseUsage) + + + + + <p>The <code>ownedViews</code> of a <code>Usage</code> are all its <code>ownedUsages</code> that are <code>ViewUsages</code>.</p> + + + OCL2.0 + nestedView = nestedUsage->selectByKind(ViewUsage) + + + + + <p>The <code>ownedViewpoints</code> of a <code>Usage</code> are all its <code>ownedUsages</code> that are <code>ViewpointUsages</code>.</p> + + + OCL2.0 + nestedViewpoint = nestedUsage->selectByKind(ViewpointUsage) + + + + + <p>The <code>usages</code> of a <code>Usage</code> are all its <code>features</code> that are <code>Usages</code>.</p> + + + OCL2.0 + usage = feature->selectByKind(Usage) + + + + + <p>A <code>Usage</code> that is directed, an end feature or has no <code>featuringTypes</code> must be referential.</p> + + + OCL2.0 + direction <> null or isEnd or featuringType->isEmpty() implies + isReference + + + + + <p>If a <code>Usage</code> is a variation, then it must be abstract.</p> + + + OCL2.0 + isVariation implies isAbstract + + + + + <p>A <code>Usage</code> <code>mayTimeVary</code> if and only if all of the following are true</p> +<ul> + <li>It has an <code>owningType</code> that specializes <em><code>Occurrences::Occurrence</code></em> (from the Kernel Semantic Library).</li> + <li>It is not a portion.</li> + <li>It does not specialize <em><code>Links::SelfLink</code></em> or <em><code>Occurrences::HappensLink</code></em> (from the Kernel Semantic Library).</li> + <li>If <code>isComposite = true</code>, it does not specialize <em><code>Actions::Action</code></em> (from the Systems Model Library). +</li></ul> + + + OCL2.0 + mayTimeVary = + owningType <> null and + owningType.specializesFromLibrary('Occurrences::Occurrence') and + not ( + isPortion or + specializesFromLibrary('Links::SelfLink') or + specializesFromLibrary('Occurrences::HappensLink') or + isComposite and specializesFromLibrary('Actions::Action') + ) + + + + + <p>If a <code>Usage</code> has an <code>owningVariationUsage</code>, then it must have the same <code>featuringTypes</code> as that <code>Usage</code>.</p> + + + OCL2.0 + owningVariationUsage <> null implies + featuringType->asSet() = owningVariationUsage.featuringType->asSet() + + + + + + + + <p>Whether this <code>Usage</code> may be time varying (that is, whether it is featured by the snapshots of its <code>owningType</code>, rather than being featured by the <code>owningType</code> itself). However, if <code>isConstant</code> is also true, then the value of the <code>Usage</code> is nevertheless constant over the entire duration of an instance of its <code>owningType</code> (that is, it has the same value on all snapshots).</p> - <p>The property <code>mayTimeVary</code> redefines the KerML property <code>Feature::isVariable</code>, making it derived. The property <code>isConstant</code> is inherited from <code>Feature</code>.</p> - - - - - - - <p>Whether this <code>Usage</code> is a referential <code>Usage</code>, that is, it has <code>isComposite = false</code>.<p> - - - - - - <p>The <code>Usages</code> which represent the variants of this <code>Usage</code> as a variation point <code>Usage</code>, if <code>isVariation = true</code>. If <code>isVariation = false</code>, then there must be no <code>variants</code>.</p> - - - - - - - - <p>The <code>ownedMemberships</code> of this <code>Usage</code> that are <code>VariantMemberships</code>. If <code>isVariation = true</code>, then this must be all <code>memberships</code> of the <code>Usage</code>. If <code>isVariation = false</code>, then <code>variantMembership</code>must be empty.</p> - - - - - - - - <p>The <code>Definition</code> that owns this <code>Usage</code> (if any).</p> - - - - - - - - - <p>The <code>Usage</code> in which this <code>Usage</code> is nested (if any).</p> - - - - - - - - <p>The <code>Classifiers</code> that are the types of this <code>Usage</code>. Nominally, these are <code>Definitions</code>, but other kinds of Kernel <code>Classifiers</code> are also allowed, to permit use of <code>Classifiers</code> from the Kernel Model Libraries.</p> - - - - - - - - - <p>The <code>Usages</code> that are <code>features</code> of this <code>Usage</code> (not necessarily owned).</p> - - - - - - - - - - - <p>The <code>usages</code> of this <code>Usage</code> that are <code>directedFeatures</code>.</p> - - - - - - - - - - <p>The <code>Usages</code> that are <code>ownedFeatures</code> of this <code>Usage</code>.</p> - - - - - - - - - <p>The <code>ReferenceUsages</code> that are <code>nestedUsages</code> of this <code>Usage</code>.</p> - - - - - - - - <p>The code>AttributeUsages</code> that are <code>nestedUsages</code> of this <code>Usage</code>.</p> - - - - - - - - <p>The code>EnumerationUsages</code> that are <code>nestedUsages</code> of this <code>Usage</code>.<p> - - - - - - - <p>The <code>OccurrenceUsages</code> that are <code>nestedUsages</code> of this <code>Usage</code>.</p> - - - - - - - <p>The <code>ItemUsages</code> that are <code>nestedUsages</code> of this <code>Usage</code>.</p> - - - - - - - <p>The <code>PartUsages</code> that are <code>nestedUsages</code> of this <code>Usage</code>.</p> - - - - - - - <p>The <code>PortUsages</code> that are <code>nestedUsages</code> of this <code>Usage</code>.</p> - - - - - - - <p>The <code>ConnectorAsUsages</code> that are <code>nestedUsages</code> of this <code>Usage</code>. Note that this list includes <code>BindingConnectorAsUsages</code>, <code>SuccessionAsUsages</code>, and <code>FlowConnectionUsages</code> because these are <code>ConnectorAsUsages</code> even though they are not <code>ConnectionUsages</code>.</p> - - - - - - - <p>The code>FlowUsages</code> that are <code>nestedUsages</code> of this <code>Usage</code>.</p> - - - - - - - <p>The <code>InterfaceUsages</code> that are <code>nestedUsages</code> of this <code>Usage</code>.</p> - - - - - - - <p>The <code>AllocationUsages</code> that are <code>nestedUsages</code> of this <code>Usage</code>.</p> - - - - - - - <p>The <code>ActionUsages</code> that are <code>nestedUsages</code> of this <code>Usage</code>.</p> - - - - - - - - <p>The <code>StateUsages</code> that are <code>nestedUsages</code> of this <code>Usage</code>.</p> - - - - - - - - <p>The <code>TransitionUsages</code> that are <code>nestedUsages</code> of this <code>Usage</code>.</p> - - - - - - - - <p>The <code>CalculationUsage</code> that are <code>nestedUsages</code> of this <code>Usage</code>.</p> - - - - - - - - <p>The <code>ConstraintUsages</code> that are <code>nestedUsages</code> of this <code>Usage</code>.</p> - - - - - - - - <p>The <code>RequirementUsages</code> that are <code>nestedUsages</code> of this <code>Usage</code>.</p> - - - - - - - - <p>The <code>ConcernUsages</code> that are <code>nestedUsages</code> of this <code>Usage</code>.</p> - - - - - - - - <p>The <code>CaseUsages</code> that are <code>nestedUsages</code> of this <code>Usage</code>.</p> - - - - - - - - <p>The <code>AnalysisCaseUsages</code> that are <code>nestedUsages</code> of this <code>Usage</code>.</p> - - - - - - - - <p>The <code>VerificationCaseUsages</code> that are <code>nestedUsages</code> of this <code>Usage</code>.</p> - - - - - - - - <p>The <code>UseCaseUsages</code> that are <code>nestedUsages</code> of this <code>Usage</code>.</p> - - - - - - - - <p>The <code>ViewUsages</code> that are <code>nestedUsages</code> of this <code>Usage</code>.</p> - - - - - - - - <p>The <code>ViewpointUsages</code> that are <code>nestedUsages</code> of this <code>Usage</code>.</p> - - - - - - - - <p>The <code>RenderingUsages</code> that are <code>nestedUsages</code> of this <code>Usage</code>.</p> - - - - - - - - <p>The <code>MetadataUsages</code> that are <code>nestedUsages</code> of this of this <code>Usage</code>.</p> - - - - - - - <p>Whether this <code>Usage</code> is for a variation point or not. If true, then all the <code>memberships</code> of the <code>Usage</code> must be <code>VariantMemberships</code>.</p> - - - - - - <p>If this <code>Usage</code> is a variant, then its naming <code>Feature</code> is the <code>referencedFeature</code> of its <code>ownedReferenceSubsetting</code>.</p> - - - - OCL2.0 - if not owningMembership.oclIsKindOf(VariantMembership) then - self.oclAsType(Feature).namingFeature() - else if ownedReferenceSubsetting = null then null - else ownedReferenceSubsetting.referencedFeature - endif endif - - - - - - - - - - - - <p>If <code>ownedReferenceSubsetting</code> is not null, return the <code>featureTarget</code> of the <code>referencedFeature</code> of the <code>ownedReferenceSubsetting</code>.</p> - - - - OCL2.0 - if ownedReferenceSubsetting = null then null - else ownedReferenceSubsetting.referencedFeature.featureTarget - endif - - - - - - - - - - - <p>The Definition that owns the <code>ownedState</code>.</p> - - - - - - - - - <p>The Usage in which the <code>nestedState</code> is nested.</p> - - - - - - - - - <p>The Usage in which the <code>nestedConstraint</code> is nested.</p> - - - - - - - - - <p>The Definition that owns the <code>ownedTransition</code>.</p> - - - - - - - - - <p>The Definition that owns the <code>ownedConstraint</code>.</p> - - - - - - - - - <p>The Usage in which the <code>nestedTransition</code> is nested.</p> - - - - - - - - - <p>The Definition that owns the <code>ownedRequirement</code>.</p> - - - - - - - - - <p>The Usage in which the <code>nestedRequirement</code> is nested.</p> - - - - - - - - <p>A <code>ReferenceUsage</code> is a <code>Usage</code> that specifies a non-compositional (<code>isComposite = false</code>) reference to something. The <code>definition</code> of a <code>ReferenceUsage</code> can be any kind of <code>Classifier</code>, with the default being the top-level <code>Classifier</code> <code><em>Base::Anything</em></code> from the Kernel Semantic Library. This allows the specification of a generic reference without distinguishing if the thing referenced is an attribute value, item, action, etc.</p> - - - - <p>A <code>ReferenceUsage</code> is always referential.</p> - - - OCL2.0 - isReference - - - - - - <p>Always <code>true</code> for a <code>ReferenceUsage</code>.</code> - - - - - - - <p>If this <code>ReferenceUsage</code> is the <em><code>payload</code></em> <code>parameter</code> of a <code>TransitionUsage</code>, then its naming <code>Feature</code> is the <code>payloadParameter</code> of the <code>triggerAction</code> of that <code>TransitionUsage</code> (if any).</p> - - - - OCL2.0 - if owningType <> null and owningType.oclIsKindOf(TransitionUsage) and - owningType.oclAsType(TransitionUsage).inputParameter(2) = self then - owningType.oclAsType(TransitionUsage).triggerPayloadParameter() - else self.oclAsType(Usage).namingFeature() - endif - - - - - - - - - - - - - <p>The owning Definition of this VariantMembership, which must have <code>isVariation</code> = true.</p> - - - - - - - - - - <p>The Definition that owns the <code>ownedItem</code>.</p> - - - - - - - - - <p>The Usage in which the <code>nestedInterface</code> is nested.</p> - - - - - - - - - <p>The Usage that owns the <code>nestedReference</code>.</p> - - - - - - - - - <p>The Definition that owns the <code>ownedAnalysisCase</code>.</p> - - - - - - - - - <p>The Usages that feature a certain Usage.</p> - - - - - - - - - - <p>The Definition that owns the <code>ownedPart</code>.</p> - - - - - - - - - <p>The Usages that have a certain Usage as a <code>flow</code>.</p> - - - - - - - - - - - - - - <p>The Usage in which the <code>nestedAnalysisCase</code> is nested.</p> - - - - - - - - - <p>The Definition that owns the <code>ownedInterface</code>.</p> - - - - - - - - - <p>The variation point Definition that for which this Usage represents a variant, derived as the <code>owningVariationDefinition</code> of the <code>owningVariantMembership</code> of the Usage.</p> - - - - - - - - - - <p>The Definition that owns the <code>ownedReference</code>.</p> - - - - - - - - - <p>The Usage in which the <code>nestedItem</code> is nested.</p> - - - - - - - - - <p>The Definition that owns the <code>ownedAction</code>.</p> - - - - - - - - - <p>The Usage in which the <code>nestedPart</code> is nested.</p> - - - - - - - - - <p>The Usage in which the <code>nestedUsage</code> is nested.</p> - - - - - - - - - <p>The variation point Usage that for which this Usage represents a variant, derived as the <code>owningVariationUsage</code> of the <code>owningVariantMembership</code> of the Usage.</p> - - - - - - - - - - <p>The Usage in which the <code>nestedAttribute</code> is nested.</p> - - - - - - - - - <p>The Definition that owns the <code>ownedAttribute</code>.</p> - - - - - - - - - <p>The Usages that have a certain Classifier as a <code>definition</code>.</p> - - - - - - - - - - <p>The Definition that owns the <code>ownedConnection</code>.</p> - - - - - - - - <p>The Definition that owns this CaseUsage (if any).</p> - - - - <p>The Definition that owns the <code>ownedCase</code>.</p> - - - - - - - - <p>A <code>VariantMembership</code> is a <code>Membership</code> between a variation point <code>Definition</code> or <code>Usage</code> and a <code>Usage</code> that represents a variant in the context of that variation. The <code>membershipOwningNamespace</code> for the <code>VariantMembership</code> must be either a Definition or a <code>Usage</code> with <code>isVariation = true</code>.</p> - - - - <p>The <code>membershipOwningNamespace</code> of a <code>VariantMembership</code> must be a variation-point <code>Definition</code> or <code>Usage</code>.</p> - - - OCL2.0 - membershipOwningNamespace.oclIsKindOf(Definition) and - membershipOwningNamespace.oclAsType(Definition).isVariation or - membershipOwningNamespace.oclIsKindOf(Usage) and - membershipOwningNamespace.oclAsType(Usage).isVariation - - - - - - - - - <p>The <code>Usage</code> that represents a variant in the context of the <code>owningVariationDefinition</code> or <code>owningVariationUsage</code>.</p> - - - - - - - - - - <p>The VariantMembership that owns this Usage, if the Usage represents a variant in the context of some variation point Definition or Usage.</p> - - - - - - - - - - <p>The owning Definition of this VariantMembership, which must have <code>isVariation</code> = true.</p> - - - - - - - - - - <p>The Usage that owns a certain <code>nestedVerificationCase</code>.</p> - - - - - - - - - <p>The Usage that owns a certain <code>nestedViewpoint</code>.</p> - - - - - - - - - <p>The Definition that owns a certain <code>ownedView</code>.</p> - - - - - - - - - <p>The Definition that owns a certain <code>ownedRendering</code>.</p> - - - - - - - - - <p>The Definition that owns a certain <code>ownedViewpoint</code>.</p> - - - - - - - - - <p>The Usage that owns a certain <code>nestedRendering</code>.</p> - - - - - - - - - <p>The Definition that owns a certain <code>ownedVerificationCase</code>.</p> - - - - - - - - - <p>The Usage that owns a certain <code>nestedView</code>.</p> - - - - - - - - - <p>The Definition that owns the <code>ownedEnumeration</code>.</p> - - - - - - - - - <p>The Usage that owns the <code>nestedEnumeration</code>.</p> - - - - - - - - - <p>The Definition that owns the <code>ownedAllocation</code>.</p> - - - - - - - - - <p>The Usage that owns the <code>nestedAllocation</code>.</p> - - - - - - - - - <p>The Usage that owns the <code>nestedConcern</code>.</p> - - - - - - - - - <p>The Definition that owns the <code>ownedConcern</code>.</p> - - - - - - - - - <p>The Definition that owns the <code>ownedOccurrence</code>.</p> - - - - - - - - - <p>The Usage in which the <code>nestedOccurrence</code> is nested.</p> - - - - - - - - - <p>The <code>Usage</code> that owns the <code>nestedFlow</code>.</p> - - - - - - - - - <p>The Usage in which the <code>nestedUseCase</code> is nested.</p> - - - - - - - - - <p>The <code>Definition</code> that owns the <code>ownedFlow</code>.</p> - - - - - - - - - <p>The Definition that owns the <code>ownedUseCase</code>.</p> - - - - - - - - - <p>The Usage in which the <code>nestedMetadata</code> is nested.</p> - - - - - - - - - <p>The Definition that owns the <code>ownedMetadata</code>.</p> - - - - - - - - - - <p>A <code>PartDefinition</code> is an <code>ItemDefinition</code> of a <code>Class</code> of systems or parts of systems. Note that all parts may be considered items for certain purposes, but not all items are parts that can perform actions within a system.</p> - - - - - </p>A <code>PartDefinition</code> must directly or indirectly specialize the base <code>PartDefinition</code> <em><code>Parts::Part</code></em> from the Systems Model Library.</p> - - - OCL2.0 - specializesFromLibrary('Parts::Part') - - - - - - - <p>A <code>PartUsage</code> is a usage of a <code>PartDefinition</code> to represent a system or a part of a system. At least one of the <code>itemDefinitions</code> of the <code>PartUsage</code> must be a <code>PartDefinition</code>.</p> +<p>The property <code>mayTimeVary</code> redefines the KerML property <code>Feature::isVariable</code>, making it derived. The property <code>isConstant</code> is inherited from <code>Feature</code>.</p> + + + + + + + <p>Whether this <code>Usage</code> is a referential <code>Usage</code>, that is, it has <code>isComposite = false</code>.<p> + + + + + + <p>The <code>Usages</code> which represent the variants of this <code>Usage</code> as a variation point <code>Usage</code>, if <code>isVariation = true</code>. If <code>isVariation = false</code>, then there must be no <code>variants</code>.</p> + + + + + + + + <p>The <code>ownedMemberships</code> of this <code>Usage</code> that are <code>VariantMemberships</code>. If <code>isVariation = true</code>, then this must be all <code>memberships</code> of the <code>Usage</code>. If <code>isVariation = false</code>, then <code>variantMembership</code>must be empty.</p> + + + + + + + + <p>The <code>Definition</code> that owns this <code>Usage</code> (if any).</p> + + + + + + + + + <p>The <code>Usage</code> in which this <code>Usage</code> is nested (if any).</p> + + + + + + + + <p>The <code>Classifiers</code> that are the types of this <code>Usage</code>. Nominally, these are <code>Definitions</code>, but other kinds of Kernel <code>Classifiers</code> are also allowed, to permit use of <code>Classifiers</code> from the Kernel Model Libraries.</p> + + + + + + + + + <p>The <code>Usages</code> that are <code>features</code> of this <code>Usage</code> (not necessarily owned).</p> + + + + + + + + + + + <p>The <code>usages</code> of this <code>Usage</code> that are <code>directedFeatures</code>.</p> + + + + + + + + + + <p>The <code>Usages</code> that are <code>ownedFeatures</code> of this <code>Usage</code>.</p> + + + + + + + + + <p>The <code>ReferenceUsages</code> that are <code>nestedUsages</code> of this <code>Usage</code>.</p> + + + + + + + + <p>The code>AttributeUsages</code> that are <code>nestedUsages</code> of this <code>Usage</code>.</p> + + + + + + + + <p>The code>EnumerationUsages</code> that are <code>nestedUsages</code> of this <code>Usage</code>.<p> + + + + + + + <p>The <code>OccurrenceUsages</code> that are <code>nestedUsages</code> of this <code>Usage</code>.</p> + + + + + + + <p>The <code>ItemUsages</code> that are <code>nestedUsages</code> of this <code>Usage</code>.</p> + + + + + + + <p>The <code>PartUsages</code> that are <code>nestedUsages</code> of this <code>Usage</code>.</p> + + + + + + + <p>The <code>PortUsages</code> that are <code>nestedUsages</code> of this <code>Usage</code>.</p> + + + + + + + <p>The <code>ConnectorAsUsages</code> that are <code>nestedUsages</code> of this <code>Usage</code>. Note that this list includes <code>BindingConnectorAsUsages</code>, <code>SuccessionAsUsages</code>, and <code>FlowUsages</code> because these are <code>ConnectorAsUsages</code> even though they are not <code>ConnectionUsages</code>.</p> + + + + + + + <p>The code>FlowUsages</code> that are <code>nestedUsages</code> of this <code>Usage</code>.</p> + + + + + + + <p>The <code>InterfaceUsages</code> that are <code>nestedUsages</code> of this <code>Usage</code>.</p> + + + + + + + <p>The <code>AllocationUsages</code> that are <code>nestedUsages</code> of this <code>Usage</code>.</p> + + + + + + + <p>The <code>ActionUsages</code> that are <code>nestedUsages</code> of this <code>Usage</code>.</p> + + + + + + + + <p>The <code>StateUsages</code> that are <code>nestedUsages</code> of this <code>Usage</code>.</p> + + + + + + + + <p>The <code>TransitionUsages</code> that are <code>nestedUsages</code> of this <code>Usage</code>.</p> + + + + + + + + <p>The <code>CalculationUsage</code> that are <code>nestedUsages</code> of this <code>Usage</code>.</p> + + + + + + + + <p>The <code>ConstraintUsages</code> that are <code>nestedUsages</code> of this <code>Usage</code>.</p> + + + + + + + + <p>The <code>RequirementUsages</code> that are <code>nestedUsages</code> of this <code>Usage</code>.</p> + + + + + + + + <p>The <code>ConcernUsages</code> that are <code>nestedUsages</code> of this <code>Usage</code>.</p> + + + + + + + + <p>The <code>CaseUsages</code> that are <code>nestedUsages</code> of this <code>Usage</code>.</p> + + + + + + + + <p>The <code>AnalysisCaseUsages</code> that are <code>nestedUsages</code> of this <code>Usage</code>.</p> + + + + + + + + <p>The <code>VerificationCaseUsages</code> that are <code>nestedUsages</code> of this <code>Usage</code>.</p> + + + + + + + + <p>The <code>UseCaseUsages</code> that are <code>nestedUsages</code> of this <code>Usage</code>.</p> + + + + + + + + <p>The <code>ViewUsages</code> that are <code>nestedUsages</code> of this <code>Usage</code>.</p> + + + + + + + + <p>The <code>ViewpointUsages</code> that are <code>nestedUsages</code> of this <code>Usage</code>.</p> + + + + + + + + <p>The <code>RenderingUsages</code> that are <code>nestedUsages</code> of this <code>Usage</code>.</p> + + + + + + + + <p>The <code>MetadataUsages</code> that are <code>ownedMembers</code> of this of this <code>Usage</code>.</p> + + + + + + + <p>Whether this <code>Usage</code> is for a variation point or not. If true, then all the <code>memberships</code> of the <code>Usage</code> must be <code>VariantMemberships</code>.</p> + + + + + + <p>If this <code>Usage</code> is a variant, then its naming <code>Feature</code> is the <code>referencedFeature</code> of its <code>ownedReferenceSubsetting</code>.</p> + + + + OCL2.0 + if not owningMembership.oclIsKindOf(VariantMembership) then + self.oclAsType(Feature).namingFeature() +else if ownedReferenceSubsetting = null then null +else ownedReferenceSubsetting.referencedFeature +endif endif + + + + + + + + + + + + <p>If <code>ownedReferenceSubsetting</code> is not null, return the <code>featureTarget</code> of the <code>referencedFeature</code> of the <code>ownedReferenceSubsetting</code>.</p> + + + + OCL2.0 + if ownedReferenceSubsetting = null then null +else ownedReferenceSubsetting.referencedFeature.featureTarget +endif + + + + + + + + + + + <p>The Definition that owns the <code>ownedState</code>.</p> + + + + + + + + + <p>The Usage in which the <code>nestedState</code> is nested.</p> + + + + + + + + + <p>The Usage in which the <code>nestedConstraint</code> is nested.</p> + + + + + + + + + <p>The Definition that owns the <code>ownedTransition</code>.</p> + + + + + + + + + <p>The Definition that owns the <code>ownedConstraint</code>.</p> + + + + + + + + + <p>The Usage in which the <code>nestedTransition</code> is nested.</p> + + + + + + + + + <p>The Definition that owns the <code>ownedRequirement</code>.</p> + + + + + + + + + <p>The Usage in which the <code>nestedRequirement</code> is nested.</p> + + + + + + + + <p>A <code>ReferenceUsage</code> is a <code>Usage</code> that specifies a non-compositional (<code>isComposite = false</code>) reference to something. The <code>definition</code> of a <code>ReferenceUsage</code> can be any kind of <code>Classifier</code>, with the default being the top-level <code>Classifier</code> <code><em>Base::Anything</em></code> from the Kernel Semantic Library. This allows the specification of a generic reference without distinguishing if the thing referenced is an attribute value, item, action, etc.</p> + + + + <p>A <code>ReferenceUsage</code> is always referential.</p> + + + OCL2.0 + isReference + + + + + + <p>Always <code>true</code> for a <code>ReferenceUsage</code>.</code> + + + + + + + <p>If this <code>ReferenceUsage</code> is the <em><code>payload</code></em> <code>parameter</code> of a <code>TransitionUsage</code>, then its naming <code>Feature</code> is the <code>payloadParameter</code> of the <code>triggerAction</code> of that <code>TransitionUsage</code> (if any).</p> + + + + OCL2.0 + if owningType <> null and owningType.oclIsKindOf(TransitionUsage) and + owningType.oclAsType(TransitionUsage).inputParameter(2) = self then + owningType.oclAsType(TransitionUsage).triggerPayloadParameter() +else self.oclAsType(Usage).namingFeature() +endif + + + + + + + + + + + + + <p>The owning Definition of this VariantMembership, which must have <code>isVariation</code> = true.</p> + + + + + + + + + + <p>The Definition that owns the <code>ownedItem</code>.</p> + + + + + + + + + <p>The Usage in which the <code>nestedInterface</code> is nested.</p> + + + + + + + + + <p>The Usage that owns the <code>nestedReference</code>.</p> + + + + + + + + + <p>The Definition that owns the <code>ownedAnalysisCase</code>.</p> + + + + + + + + + <p>The Usages that feature a certain Usage.</p> + + + + + + + + + + <p>The Definition that owns the <code>ownedPart</code>.</p> + + + + + + + + + <p>The Usages that have a certain Usage as a <code>flow</code>.</p> + + + + + + + + + + + + + + <p>The Usage in which the <code>nestedAnalysisCase</code> is nested.</p> + + + + + + + + + <p>The Definition that owns the <code>ownedInterface</code>.</p> + + + + + + + + + <p>The variation point Definition that for which this Usage represents a variant, derived as the <code>owningVariationDefinition</code> of the <code>owningVariantMembership</code> of the Usage.</p> + + + + + + + + + + <p>The Definition that owns the <code>ownedReference</code>.</p> + + + + + + + + + <p>The Usage in which the <code>nestedItem</code> is nested.</p> + + + + + + + + + <p>The Definition that owns the <code>ownedAction</code>.</p> + + + + + + + + + <p>The Usage in which the <code>nestedPart</code> is nested.</p> + + + + + + + + + <p>The Usage in which the <code>nestedUsage</code> is nested.</p> + + + + + + + + + <p>The variation point Usage that for which this Usage represents a variant, derived as the <code>owningVariationUsage</code> of the <code>owningVariantMembership</code> of the Usage.</p> + + + + + + + + + + <p>The Usage in which the <code>nestedAttribute</code> is nested.</p> + + + + + + + + + <p>The Definition that owns the <code>ownedAttribute</code>.</p> + + + + + + + + + <p>The Usages that have a certain Classifier as a <code>definition</code>.</p> + + + + + + + + + + <p>The Definition that owns the <code>ownedConnection</code>.</p> + + + + + + + + <p>The Definition that owns this CaseUsage (if any).</p> + + + + <p>The Definition that owns the <code>ownedCase</code>.</p> + + + + + + + + <p>A <code>VariantMembership</code> is a <code>Membership</code> between a variation point <code>Definition</code> or <code>Usage</code> and a <code>Usage</code> that represents a variant in the context of that variation. The <code>membershipOwningNamespace</code> for the <code>VariantMembership</code> must be either a Definition or a <code>Usage</code> with <code>isVariation = true</code>.</p> + + + + <p>The <code>membershipOwningNamespace</code> of a <code>VariantMembership</code> must be a variation-point <code>Definition</code> or <code>Usage</code>.</p> + + + OCL2.0 + membershipOwningNamespace.oclIsKindOf(Definition) and + membershipOwningNamespace.oclAsType(Definition).isVariation or +membershipOwningNamespace.oclIsKindOf(Usage) and + membershipOwningNamespace.oclAsType(Usage).isVariation + + + + + + + + + <p>The <code>Usage</code> that represents a variant in the context of the <code>owningVariationDefinition</code> or <code>owningVariationUsage</code>.</p> + + + + + + + + + + <p>The VariantMembership that owns this Usage, if the Usage represents a variant in the context of some variation point Definition or Usage.</p> + + + + + + + + + + <p>The owning Definition of this VariantMembership, which must have <code>isVariation</code> = true.</p> + + + + + + + + + + <p>The Usage that owns a certain <code>nestedVerificationCase</code>.</p> + + + + + + + + + <p>The Usage that owns a certain <code>nestedViewpoint</code>.</p> + + + + + + + + + <p>The Definition that owns a certain <code>ownedView</code>.</p> + + + + + + + + + <p>The Definition that owns a certain <code>ownedRendering</code>.</p> + + + + + + + + + <p>The Definition that owns a certain <code>ownedViewpoint</code>.</p> + + + + + + + + + <p>The Usage that owns a certain <code>nestedRendering</code>.</p> + + + + + + + + + <p>The Definition that owns a certain <code>ownedVerificationCase</code>.</p> + + + + + + + + + <p>The Usage that owns a certain <code>nestedView</code>.</p> + + + + + + + + + <p>The Definition that owns the <code>ownedEnumeration</code>.</p> + + + + + + + + + <p>The Usage that owns the <code>nestedEnumeration</code>.</p> + + + + + + + + + <p>The Definition that owns the <code>ownedAllocation</code>.</p> + + + + + + + + + <p>The Usage that owns the <code>nestedAllocation</code>.</p> + + + + + + + + + <p>The Usage that owns the <code>nestedConcern</code>.</p> + + + + + + + + + <p>The Definition that owns the <code>ownedConcern</code>.</p> + + + + + + + + + <p>The Definition that owns the <code>ownedOccurrence</code>.</p> + + + + + + + + + <p>The Usage in which the <code>nestedOccurrence</code> is nested.</p> + + + + + + + + + <p>The <code>Usage</code> that owns the <code>nestedFlow</code>.</p> + + + + + + + + + <p>The Usage in which the <code>nestedUseCase</code> is nested.</p> + + + + + + + + + <p>The <code>Definition</code> that owns the <code>ownedFlow</code>.</p> + + + + + + + + + <p>The Definition that owns the <code>ownedUseCase</code>.</p> + + + + + + + + + <p>The Usage in which the <code>nestedMetadata</code> is nested.</p> + + + + + + + + + <p>The Definition that owns the <code>ownedMetadata</code>.</p> + + + + + + + + + + <p>A <code>PartDefinition</code> is an <code>ItemDefinition</code> of a <code>Class</code> of systems or parts of systems. Note that all parts may be considered items for certain purposes, but not all items are parts that can perform actions within a system.</p> + + + + + </p>A <code>PartDefinition</code> must directly or indirectly specialize the base <code>PartDefinition</code> <em><code>Parts::Part</code></em> from the Systems Model Library.</p> + + + OCL2.0 + specializesFromLibrary('Parts::Part') + + + + + + + <p>A <code>PartUsage</code> is a usage of a <code>PartDefinition</code> to represent a system or a part of a system. At least one of the <code>itemDefinitions</code> of the <code>PartUsage</code> must be a <code>PartDefinition</code>.</p> - <p>A <code>PartUsage</code> must subset, directly or indirectly, the base <code>PartUsage</code> <em><code>parts</code></em> from the Systems Model Library.</p> - - - - <p>The <code>partDefinitions</code> of an <code>PartUsage</code> are those <code>itemDefinitions</code> that are <code>PartDefinitions</code>.</p> - - - OCL2.0 - itemDefinition->selectByKind(PartDefinition) - - - - - <p>At least one of the <code>itemDefinitions</code> of a <code>PartUsage</code> must be a <code>PartDefinition</code>.</p> - - - OCL2.0 - partDefinition->notEmpty() - - - - - <p>A <code>PartUsage</code> must directly or indirectly specialize the <code>PartUsage</code> <em><code>Parts::parts</code></em> from the Systems Model Library.</p> - - - OCL2.0 - specializesFromLibrary('Parts::parts') - - - - - <p>A composite <code>PartUsage</code> whose <code>owningType</code> is a <code>ItemDefinition</code> or <code>ItemUsage</code> must directly or indirectly specialize the <code>PartUsage</code> <em><code>Items::Item::subparts</code></em> from the Systems Model Library.</p> - - - OCL2.0 - isComposite and owningType <> null and - (owningType.oclIsKindOf(ItemDefinition) or - owningType.oclIsKindOf(ItemUsage)) implies - specializesFromLibrary('Items::Item::subparts') - - - - - <p>If a <code>PartUsage</code> is owned via an <code>ActorMembership</code>, then it must directly or indirectly specialize either <code><em>Requirements::RequirementCheck::actors</em></code> (if its <code>owningType</code> is a <code>RequirementDefinition</code> or <code>RequirementUsage</code> or <code><em>Cases::Case::actors</em></code> (otherwise).</p> - - - OCL2.0 - owningFeatureMembership <> null and - owningFeatureMembership.oclIsKindOf(ActorMembership) implies - if owningType.oclIsKindOf(RequirementDefinition) or - owningType.oclIsKindOf(RequirementUsage) - then specializesFromLibrary('Requirements::RequirementCheck::actors') - else specializesFromLibrary('Cases::Case::actors') - - - - - <p>If a <code>PartUsage</code> is owned via a <code>StakeholderMembership</code>, then it must directly or indirectly specialize either <code><em>Requirements::RequirementCheck::stakeholders</em></code>.</p> - - - OCL2.0 - owningFeatureMembership <> null and - owningFeatureMembership.oclIsKindOf(StakeholderMembership) implies - specializesFromLibrary('Requirements::RequirementCheck::stakeholders') - - - - - - <p>The <code>itemDefinitions</code> of this PartUsage that are PartDefinitions.</p> - - - - - - - - - <p>The PartUsages typed by a certain PartDefinition.</p> - - - - - - - - - - - <p>The InterfaceDefinitions that have a certain PortUsage as an <code>interfaceEnd</code>.</p> - - - - - - - - <p>An <code>InterfaceUsage</code> is a Usage of an <code>InterfaceDefinition</code> to represent an interface connecting parts of a system through specific ports.</p> - - - - <p>A binary <code>InterfaceUsage</code> must directly or indirectly specialize the <code>InterfaceUsage</code> <em><code>Interfaces::binaryInterfaces</code></em> from the Systems Model Library.</p> - - - OCL2.0 - ownedEndFeature->size() = 2 implies - specializesFromLibrary('Interfaces::binaryInterfaces') - - - - - <p>An <code>InterfaceUsage</code> must directly or indirectly specialize the <code>InterfaceUsage</code> <em><code>Interfaces::interfaces</code></em> from the Systems Model Library.</p> - - - OCL2.0 - specializesFromLibrary('Interfaces::interfaces') - - - - - - <p>The <code>InterfaceDefinitions</code> that type this <code>InterfaceUsage</code>.</p> - - - - - - - - - <p>The InterfaceUsages typed by a certain InterfaceDefinition.</p> - - - - - - - - <p>An <code>InterfaceDefinition</code> is a <code>ConnectionDefinition</code> all of whose ends are <code>PortUsages</code>, defining an interface between elements that interact through such ports.</p> - - - - <p>An <code>InterfaceDefinition</code> must directly or indirectly specialize the <code>InterfaceDefinition</code> <em><code>Interfaces::Interface</code></em> from the Systems Model Library.</p> - - - OCL2.0 - specializesFromLibrary('Interfaces::Interface') - - - - - <p>A binary <code>InterfaceDefinition</code> must directly or indirectly specialize the <code>InterfaceDefinition</code> <em><code>Interfaces::BinaryInterface</code></em> from the Systems Model Library.</p> - - - OCL2.0 - ownedEndFeature->size() = 2 implies - specializesFromLibrary('Interfaces::BinaryInterface') - - - - - - <p>The <code>PortUsages</code> that are the <code>connectionEnds</code> of this <code>InterfaceDefinition</code>. +<p>A <code>PartUsage</code> must subset, directly or indirectly, the base <code>PartUsage</code> <em><code>parts</code></em> from the Systems Model Library.</p> + + + + <p>The <code>partDefinitions</code> of an <code>PartUsage</code> are those <code>itemDefinitions</code> that are <code>PartDefinitions</code>.</p> + + + OCL2.0 + itemDefinition->selectByKind(PartDefinition) + + + + + <p>At least one of the <code>itemDefinitions</code> of a <code>PartUsage</code> must be a <code>PartDefinition</code>.</p> + + + OCL2.0 + partDefinition->notEmpty() + + + + + <p>A <code>PartUsage</code> must directly or indirectly specialize the <code>PartUsage</code> <em><code>Parts::parts</code></em> from the Systems Model Library.</p> + + + OCL2.0 + specializesFromLibrary('Parts::parts') + + + + + <p>A composite <code>PartUsage</code> whose <code>owningType</code> is a <code>ItemDefinition</code> or <code>ItemUsage</code> must directly or indirectly specialize the <code>PartUsage</code> <em><code>Items::Item::subparts</code></em> from the Systems Model Library.</p> + + + OCL2.0 + isComposite and owningType <> null and +(owningType.oclIsKindOf(ItemDefinition) or + owningType.oclIsKindOf(ItemUsage)) implies + specializesFromLibrary('Items::Item::subparts') + + + + + <p>If a <code>PartUsage</code> is owned via an <code>ActorMembership</code>, then it must directly or indirectly specialize either <code><em>Requirements::RequirementCheck::actors</em></code> (if its <code>owningType</code> is a <code>RequirementDefinition</code> or <code>RequirementUsage</code> or <code><em>Cases::Case::actors</em></code> (otherwise).</p> + + + OCL2.0 + owningFeatureMembership <> null and +owningFeatureMembership.oclIsKindOf(ActorMembership) implies + if owningType.oclIsKindOf(RequirementDefinition) or + owningType.oclIsKindOf(RequirementUsage) + then specializesFromLibrary('Requirements::RequirementCheck::actors') + else specializesFromLibrary('Cases::Case::actors') + + + + + <p>If a <code>PartUsage</code> is owned via a <code>StakeholderMembership</code>, then it must directly or indirectly specialize <code><em>Requirements::RequirementCheck::stakeholders</em></code>.</p> + + + OCL2.0 + owningFeatureMembership <> null and +owningFeatureMembership.oclIsKindOf(StakeholderMembership) implies + specializesFromLibrary('Requirements::RequirementCheck::stakeholders') + + + + + + <p>The <code>itemDefinitions</code> of this PartUsage that are PartDefinitions.</p> + + + + + + + + + <p>The PartUsages typed by a certain PartDefinition.</p> + + + + + + + + + + + <p>The InterfaceDefinitions that have a certain PortUsage as an <code>interfaceEnd</code>.</p> + + + + + + + + <p>An <code>InterfaceUsage</code> is a Usage of an <code>InterfaceDefinition</code> to represent an interface connecting parts of a system through specific ports.</p> + + + + <p>A binary <code>InterfaceUsage</code> must directly or indirectly specialize the <code>InterfaceUsage</code> <em><code>Interfaces::binaryInterfaces</code></em> from the Systems Model Library.</p> + + + OCL2.0 + ownedEndFeature->size() = 2 implies + specializesFromLibrary('Interfaces::binaryInterfaces') + + + + + <p>An <code>InterfaceUsage</code> must directly or indirectly specialize the <code>InterfaceUsage</code> <em><code>Interfaces::interfaces</code></em> from the Systems Model Library.</p> + + + OCL2.0 + specializesFromLibrary('Interfaces::interfaces') + + + + + + <p>The <code>InterfaceDefinitions</code> that type this <code>InterfaceUsage</code>.</p> + + + + + + + + + <p>The InterfaceUsages typed by a certain InterfaceDefinition.</p> + + + + + + + + <p>An <code>InterfaceDefinition</code> is a <code>ConnectionDefinition</code> all of whose ends are <code>PortUsages</code>, defining an interface between elements that interact through such ports.</p> + + + + <p>An <code>InterfaceDefinition</code> must directly or indirectly specialize the <code>InterfaceDefinition</code> <em><code>Interfaces::Interface</code></em> from the Systems Model Library.</p> + + + OCL2.0 + specializesFromLibrary('Interfaces::Interface') + + + + + <p>A binary <code>InterfaceDefinition</code> must directly or indirectly specialize the <code>InterfaceDefinition</code> <em><code>Interfaces::BinaryInterface</code></em> from the Systems Model Library.</p> + + + OCL2.0 + ownedEndFeature->size() = 2 implies + specializesFromLibrary('Interfaces::BinaryInterface') + + + + + + <p>The <code>PortUsages</code> that are the <code>connectionEnds</code> of this <code>InterfaceDefinition</code>. - - - - - - - - - - + + + + + + + + + + - - - - - <p>A <code>StateUsage</code> is an <code>ActionUsage</code> that is nominally the <code>Usage</code> of a <code>StateDefinition</code>. However, other kinds of kernel <code>Behaviors</code> are also allowed as <code>types</code>, to permit use of <code>Behaviors</code from the Kernel Model Libraries.</p> + + + + + <p>A <code>StateUsage</code> is an <code>ActionUsage</code> that is nominally the <code>Usage</code> of a <code>StateDefinition</code>. However, other kinds of kernel <code>Behaviors</code> are also allowed as <code>types</code>, to permit use of <code>Behaviors</code from the Kernel Model Libraries.</p> - <p>A <code>StateUsage</code> may be related to up to three of its <code>ownedFeatures</code> by <code>StateSubactionMembership</code> <code>Relationships</code>, all of different <code>kinds</code>, corresponding to the entry, do and exit actions of the <code>StateUsage</code>.</p> - - - - - <p>The <code>doAction</code> of a <code>StateUsage</code> is the <code>action</code> of the owned <code>StateSubactionMembership</code> with <code>kind = do</code>.</p> - - - OCL2.0 - doAction = - let doMemberships : Sequence(StateSubactionMembership) = - ownedMembership-> - selectByKind(StateSubactionMembership)-> - select(kind = StateSubactionKind::do) in - if doMemberships->isEmpty() then null - else doMemberships->at(1) - endif - - - - - <p>The <code>entryAction</code> of a <code>StateUsage</code> is the <code>action</code> of the owned <code>StateSubactionMembership</code> with <code>kind = entry</code>.</p> - - - OCL2.0 - entryAction = - let entryMemberships : Sequence(StateSubactionMembership) = - ownedMembership-> - selectByKind(StateSubactionMembership)-> - select(kind = StateSubactionKind::entry) in - if entryMemberships->isEmpty() then null - else entryMemberships->at(1) - endif - - - - - <p>If a <code>StateUsage</code> is parallel, then its <code>nestedActions</code> (which includes <code>nestedStates</code>) must not have any <code>incomingTransitions</code> or <code>outgoingTransitions</code>.</p> - - - OCL2.0 - isParallel implies - nestedAction.incomingTransition->isEmpty() and - nestedAction.outgoingTransition->isEmpty() - - - - - <p>A <code>StateUsage</code> that is a substate usage with a non-parallel owning <code>StateDefinition</code> or <code>StateUsage</code> must directly or indirectly specialize the <code>StateUsage</code> <em><code>States::StateAction::exclusiveStates</code></em> from the Systems Model Library.</p> - - - OCL2.0 - isSubstateUsage(false) implies - specializesFromLibrary('States::StateAction::exclusiveStates') - - - - - <p>The <code>exitAction</code> of a <code>StateUsage</code> is the <code>action</code> of the owned <code>StateSubactionMembership</code> with <code>kind = exit - </code>.</p> - - - OCL2.0 - exitAction = - let exitMemberships : Sequence(StateSubactionMembership) = - ownedMembership-> - selectByKind(StateSubactionMembership)-> - select(kind = StateSubactionKind::exit) in - if exitMemberships->isEmpty() then null - else exitMemberships->at(1) - endif - - - - - <p>A <code>StateUsage</code> must directly or indirectly specialize the <code>StateUsage</code> <em><code>States::stateActions</code></em> from the Systems Model Library.</p> - - - OCL2.0 - specializesFromLibrary('States::stateActions') - - - - - <p>A <code>StateUsage</code> must not have more than one owned <code>StateSubactionMembership</code> of each <code>kind</code>.</p> - - - OCL2.0 - ownedMembership-> - selectByKind(StateSubactionMembership)-> - isUnique(kind) - - - - - <p>A <code>StateUsage</code> that is a substate usage with a owning <code>StateDefinition</code> or <code>StateUsage</code> that is parallel must directly or indirectly specialize the <code>StateUsage</code> <em><code>States::StateAction::substates</code></em> from the Systems Model Library.</p> - - - OCL2.0 - isSubstateUsage(true) implies - specializesFromLibrary('States::StateAction::substates') - - - - - <p>A composite <code>StateUsage</code> whose <code>owningType</code> is a <code>PartDefinition</code> or <code>PartUsage</code> must directly or indirectly specialize the <code>StateUsage</code> <em><code>Parts::Part::ownedStates</code></em> from the Systems Model Library.</p> - - - OCL2.0 - isComposite and owningType <> null and - (owningType.oclIsKindOf(PartDefinition) or - owningType.oclIsKindOf(PartUsage)) implies - specializesFromLibrary('Parts::Part::ownedStates') - - - - - - <p>The <code>Behaviors</code> that are the <code>types</code> of this <code>StateUsage</code>. Nominally, these would be <code>StateDefinitions</code>, but kernel <code>Behaviors</code> are also allowed, to permit use of <code>Behaviors</code> from the Kernel Model Libraries.</p> - - - - - - - - <p>The <code>ActionUsage</code> of this <code>StateUsage</code> to be performed on entry to the state defined by the <code>StateDefinition</code>. It is the owned <code>ActionUsage</code> related to the <code>StateUsage</code> by a <code>StateSubactionMembership</code> with <code>kind = entry</code>.</p> - - - - - - - <p>The <code>ActionUsage</code> of this <code>StateUsage</code> to be performed while in the state defined by the <code>StateDefinition</code>. It is the owned <code>ActionUsage</code> related to the <code>StateUsage</code> by a <code>StateSubactionMembership</code> with <code>kind = do</code>.</p> - - - - - - - <p>The <code>ActionUsage</code> of this <code>StateUsage</code> to be performed on exit to the state defined by the <code>StateDefinition</code>. It is the owned <code>ActionUsage</code> related to the <code>StateUsage</code> by a <code>StateSubactionMembership</code> with <code>kind = exit</code>.</p> - - - - - - - <p>Whether the <code>nestedStates</code> of this <code>StateUsage</code> are to all be performed in parallel. If true, none of the <code>nestedActions</code> (which include <code>nestedStates</code>) may have any incoming or outgoing <code>Transitions</code>. If false, only one <code>nestedState</code> may be performed at a time.</p> - - - - - - - - <p>Check if this <code>StateUsage</code> is composite and has an <code>owningType</code> that is a <code>StateDefinition</code> or <code>StateUsage</code> with the given value of <code>isParallel</code>, but is <em>not</em> an <code>entryAction</code>, <code>doAction</code>, or <code>exitAction</code>. If so, then it represents a <code><em>StateAction</em></code> that is a <code><em>substate</em></code> or <code><em>exclusiveState</em></code> (for <code>isParallel = false</code>) of another <code><em>StateAction</em></code>.</p> - - - - OCL2.0 - isComposite and owningType <> null and - (owningType.oclIsKindOf(StateDefinition) and - owningType.oclAsType(StateDefinition).isParallel = isParallel or - owningType.oclIsKindOf(StateUsage) and - owningType.oclAsType(StateUsage).isParallel = isParallel) and - not owningFeatureMembership.oclIsKindOf(StateSubactionMembership) - - - - - - - - - - - - - - <p>The StateDefinitions featuring a certain StateUsage.</p> - - - - - - - - - <p>A <code>StateSubactionKind</code> indicates whether the <code>action</code> of a StateSubactionMembership is an entry, do or exit action.</p> - - - - <p>Indicates that the <code>action</code> of a <code>StateSubactionMembership</code> is an <code>entryAction</code>.</p> - - - - - <p>Indicates that the <code>action</code> of a <code>StateSubactionMembership</code> is a <code>doAction</code>.</p> - - - - - <p>Indicates that the <code>action</code> of a <code>StateSubactionMembership</code> is an <code>exitAction</code>.</p> - - - - - - <p>A <code>StateSubactionMembership</code> is a <code>FeatureMembership</code> for an entry, do or exit <code>ActionUsage<code> of a <code>StateDefinition</code> or <code>StateUsage</code>.</p> - - - - <p>The <code>owningType</code> of a <code>StateSubactionMembership</code> must be a <code>StateDefinition</code> or a <code>StateUsage</code>.</p> - - - OCL2.0 - owningType.oclIsKindOf(StateDefinition) or - owningType.oclIsKindOf(StateUsage) - - - - - - - - <p>Whether this <code>StateSubactionMembership</code> is for an <code>entry<code>, <code>do</code> or <code>exit</code> <code>ActionUsage</code>.</p> - - - - - <p>The <code>ActionUsage</code> that is the <code>ownedMemberFeature</code> of this <code>StateSubactionMembership</code>.</p> - - - - - - - - - <p>A <code>StateDefinition</code> is the <code>Definition</code> of the </code>Behavior</code> of a system or part of a system in a certain state condition.</p> +<p>A <code>StateUsage</code> may be related to up to three of its <code>ownedFeatures</code> by <code>StateSubactionMembership</code> <code>Relationships</code>, all of different <code>kinds</code>, corresponding to the entry, do and exit actions of the <code>StateUsage</code>.</p> + + + + + <p>The <code>doAction</code> of a <code>StateUsage</code> is the <code>action</code> of the owned <code>StateSubactionMembership</code> with <code>kind = do</code>.</p> + + + OCL2.0 + doAction = + let doMemberships : Sequence(StateSubactionMembership) = + ownedMembership-> + selectByKind(StateSubactionMembership)-> + select(kind = StateSubactionKind::do) in + if doMemberships->isEmpty() then null + else doMemberships->at(1) + endif + + + + + <p>The <code>entryAction</code> of a <code>StateUsage</code> is the <code>action</code> of the owned <code>StateSubactionMembership</code> with <code>kind = entry</code>.</p> + + + OCL2.0 + entryAction = + let entryMemberships : Sequence(StateSubactionMembership) = + ownedMembership-> + selectByKind(StateSubactionMembership)-> + select(kind = StateSubactionKind::entry) in + if entryMemberships->isEmpty() then null + else entryMemberships->at(1) + endif + + + + + <p>If a <code>StateUsage</code> is parallel, then its <code>nestedActions</code> (which includes <code>nestedStates</code>) must not have any <code>incomingTransitions</code> or <code>outgoingTransitions</code>.</p> + + + OCL2.0 + isParallel implies + nestedAction.incomingTransition->isEmpty() and + nestedAction.outgoingTransition->isEmpty() + + + + + <p>A <code>StateUsage</code> that is a substate usage with a non-parallel owning <code>StateDefinition</code> or <code>StateUsage</code> must directly or indirectly specialize the <code>StateUsage</code> <em><code>States::StateAction::exclusiveStates</code></em> from the Systems Model Library.</p> + + + OCL2.0 + isSubstateUsage(false) implies + specializesFromLibrary('States::StateAction::exclusiveStates') + + + + + <p>The <code>exitAction</code> of a <code>StateUsage</code> is the <code>action</code> of the owned <code>StateSubactionMembership</code> with <code>kind = exit +</code>.</p> + + + OCL2.0 + exitAction = + let exitMemberships : Sequence(StateSubactionMembership) = + ownedMembership-> + selectByKind(StateSubactionMembership)-> + select(kind = StateSubactionKind::exit) in + if exitMemberships->isEmpty() then null + else exitMemberships->at(1) + endif + + + + + <p>A <code>StateUsage</code> must directly or indirectly specialize the <code>StateUsage</code> <em><code>States::stateActions</code></em> from the Systems Model Library.</p> + + + OCL2.0 + specializesFromLibrary('States::stateActions') + + + + + <p>A <code>StateUsage</code> must not have more than one owned <code>StateSubactionMembership</code> of each <code>kind</code>.</p> + + + OCL2.0 + ownedMembership-> + selectByKind(StateSubactionMembership)-> + isUnique(kind) + + + + + <p>A <code>StateUsage</code> that is a substate usage with a owning <code>StateDefinition</code> or <code>StateUsage</code> that is parallel must directly or indirectly specialize the <code>StateUsage</code> <em><code>States::StateAction::substates</code></em> from the Systems Model Library.</p> + + + OCL2.0 + isSubstateUsage(true) implies + specializesFromLibrary('States::StateAction::substates') + + + + + <p>A composite <code>StateUsage</code> whose <code>owningType</code> is a <code>PartDefinition</code> or <code>PartUsage</code> must directly or indirectly specialize the <code>StateUsage</code> <em><code>Parts::Part::ownedStates</code></em> from the Systems Model Library.</p> + + + OCL2.0 + isComposite and owningType <> null and +(owningType.oclIsKindOf(PartDefinition) or + owningType.oclIsKindOf(PartUsage)) implies + specializesFromLibrary('Parts::Part::ownedStates') + + + + + + <p>The <code>Behaviors</code> that are the <code>types</code> of this <code>StateUsage</code>. Nominally, these would be <code>StateDefinitions</code>, but kernel <code>Behaviors</code> are also allowed, to permit use of <code>Behaviors</code> from the Kernel Model Libraries.</p> + + + + + + + + <p>The <code>ActionUsage</code> of this <code>StateUsage</code> to be performed on entry to the state defined by the <code>StateDefinition</code>. It is the owned <code>ActionUsage</code> related to the <code>StateUsage</code> by a <code>StateSubactionMembership</code> with <code>kind = entry</code>.</p> + + + + + + + <p>The <code>ActionUsage</code> of this <code>StateUsage</code> to be performed while in the state defined by the <code>StateDefinition</code>. It is the owned <code>ActionUsage</code> related to the <code>StateUsage</code> by a <code>StateSubactionMembership</code> with <code>kind = do</code>.</p> + + + + + + + <p>The <code>ActionUsage</code> of this <code>StateUsage</code> to be performed on exit to the state defined by the <code>StateDefinition</code>. It is the owned <code>ActionUsage</code> related to the <code>StateUsage</code> by a <code>StateSubactionMembership</code> with <code>kind = exit</code>.</p> + + + + + + + <p>Whether the <code>nestedStates</code> of this <code>StateUsage</code> are to all be performed in parallel. If true, none of the <code>nestedActions</code> (which include <code>nestedStates</code>) may have any incoming or outgoing <code>Transitions</code>. If false, only one <code>nestedState</code> may be performed at a time.</p> + + + + + + + + <p>Check if this <code>StateUsage</code> is composite and has an <code>owningType</code> that is a <code>StateDefinition</code> or <code>StateUsage</code> with the given value of <code>isParallel</code>, but is <em>not</em> an <code>entryAction</code>, <code>doAction</code>, or <code>exitAction</code>. If so, then it represents a <code><em>StateAction</em></code> that is a <code><em>substate</em></code> or <code><em>exclusiveState</em></code> (for <code>isParallel = false</code>) of another <code><em>StateAction</em></code>.</p> + + + + OCL2.0 + isComposite and owningType <> null and +(owningType.oclIsKindOf(StateDefinition) and + owningType.oclAsType(StateDefinition).isParallel = isParallel or + owningType.oclIsKindOf(StateUsage) and + owningType.oclAsType(StateUsage).isParallel = isParallel) and +not owningFeatureMembership.oclIsKindOf(StateSubactionMembership) + + + + + + + + + + + + + + <p>The StateDefinitions featuring a certain StateUsage.</p> + + + + + + + + + <p>A <code>StateSubactionKind</code> indicates whether the <code>action</code> of a StateSubactionMembership is an entry, do or exit action.</p> + + + + <p>Indicates that the <code>action</code> of a <code>StateSubactionMembership</code> is an <code>entryAction</code>.</p> + + + + + <p>Indicates that the <code>action</code> of a <code>StateSubactionMembership</code> is a <code>doAction</code>.</p> + + + + + <p>Indicates that the <code>action</code> of a <code>StateSubactionMembership</code> is an <code>exitAction</code>.</p> + + + + + + <p>A <code>StateSubactionMembership</code> is a <code>FeatureMembership</code> for an entry, do or exit <code>ActionUsage<code> of a <code>StateDefinition</code> or <code>StateUsage</code>.</p> + + + + <p>The <code>owningType</code> of a <code>StateSubactionMembership</code> must be a <code>StateDefinition</code> or a <code>StateUsage</code>.</p> + + + OCL2.0 + owningType.oclIsKindOf(StateDefinition) or +owningType.oclIsKindOf(StateUsage) + + + + + + + + <p>Whether this <code>StateSubactionMembership</code> is for an <code>entry<code>, <code>do</code> or <code>exit</code> <code>ActionUsage</code>.</p> + + + + + <p>The <code>ActionUsage</code> that is the <code>ownedMemberFeature</code> of this <code>StateSubactionMembership</code>.</p> + + + + + + + + + <p>A <code>StateDefinition</code> is the <code>Definition</code> of the </code>Behavior</code> of a system or part of a system in a certain state condition.</p> - <p>A <code>StateDefinition</code> may be related to up to three of its <code>ownedFeatures</code> by <code>StateBehaviorMembership</code> <code>Relationships</code>, all of different <code>kinds</code>, corresponding to the entry, do and exit actions of the <code>StateDefinition</code>.</p> - - - - <p>A <code>StateDefinition</code> must directly or indirectly specialize the <code>StateDefinition</code> <em><code>States::StateAction</code></em> from the Systems Model Library.</p> - - - OCL2.0 - specializesFromLibrary('States::StateAction') - - - - - <p>A <code>StateDefinition</code> must not have more than one owned <code>StateSubactionMembership</code> of each <code>kind</code>.</p> - - - OCL2.0 - ownedMembership-> - selectByKind(StateSubactionMembership)-> - isUnique(kind) - - - - - <p>The <code>states</code> of a <code>StateDefinition</code> are those of its <code>actions</code> that are <code>StateUsages</code>.</p> - - - OCL2.0 - state = action->selectByKind(StateUsage) - - - - - <p>The <code>doAction</code> of a <code>StateDefinition</code> is the <code>action</code> of the owned <code>StateSubactionMembership</code> with <code>kind = do</code>.</p> - - - OCL2.0 - doAction = - let doMemberships : Sequence(StateSubactionMembership) = - ownedMembership-> - selectByKind(StateSubactionMembership)-> - select(kind = StateSubactionKind::do) in - if doMemberships->isEmpty() then null - else doMemberships->at(1) - endif - - - - - <p>The <code>entryAction</code> of a <code>StateDefinition</code> is the <code>action</code> of the owned <code>StateSubactionMembership</code> with <code>kind = entry</code>.</p> - - - OCL2.0 - entryAction = - let entryMemberships : Sequence(StateSubactionMembership) = - ownedMembership-> - selectByKind(StateSubactionMembership)-> - select(kind = StateSubactionKind::entry) in - if entryMemberships->isEmpty() then null - else entryMemberships->at(1) - endif - - - - - <p>If a <code>StateDefinition</code> is parallel, then its <code>ownedActions</code> (which includes its <code>ownedStates</code>) must not have any <code>incomingTransitions</code> or <code>outgoingTransitions</code>.</p> - - - OCL2.0 - isParallel implies - ownedAction.incomingTransition->isEmpty() and - ownedAction.outgoingTransition->isEmpty() - - - - - <p>The <code>exitAction</code> of a <code>StateDefinition</code> is the <code>action</code> of the owned <code>StateSubactionMembership</code> with <code>kind = exit - </code>.</p> - - - OCL2.0 - exitAction = - let exitMemberships : Sequence(StateSubactionMembership) = - ownedMembership-> - selectByKind(StateSubactionMembership)-> - select(kind = StateSubactionKind::exit) in - if exitMemberships->isEmpty() then null - else exitMemberships->at(1) - endif - - - - - - <p>The <code>StateUsages</code>, which are <code>actions</code> in the <code>StateDefinition</code>, that specify the discrete states in the behavior defined by the <code>StateDefinition</code>.</p> - - - - - - - <p>The <code>ActionUsage</code> of this <code>StateDefinition</code> to be performed on entry to the state defined by the <code>StateDefinition</code>. It is the owned <code>ActionUsage</code> related to the <code>StateDefinition</code> by a <code>StateSubactionMembership</code> with <code>kind = entry</code>.</p> - - - - - - - <p>The <code>ActionUsage</code> of this <code>StateDefinition</code> to be performed while in the state defined by the <code>StateDefinition</code>. It is the owned <code>ActionUsage</code> related to the <code>StateDefinition</code> by a <code>StateSubactionMembership</code> with <code>kind = do</code>.</p> - - - - - - - <p>The <code>ActionUsage</code> of this <code>StateDefinition</code> to be performed on exit to the state defined by the <code>StateDefinition</code>. It is the owned <code>ActionUsage</code> related to the <code>StateDefinition</code> by a <code>StateSubactionMembership</code> with <code>kind = exit</code>.</p> - - - - - - - <p>Whether the <code>ownedStates</code> of this <code>StateDefinition</code> are to all be performed in parallel. If true, none of the <code>ownedActions</code> (which includes <code>ownedStates</code>) may have any incoming or outgoing <code>Transitions</code>. If false, only one <code>ownedState</code> may be performed at a time.</p> - - - - - - - - - - <p>The Behaviors that are the types of this StateUsage. Nominally, these would be StateDefinition, but non-StateDefinition Behaviors are also allowed, to permit use of Behaviors from the Kernel Library.</p> - - - - - - - - <p>A <code>TransitionUsage</code> is an <code>ActionUsage</code> representing a triggered transition between <code>ActionUsages</code> or <code>StateUsages</code>. When triggered by a <code>triggerAction</code>, when its <code>guardExpression</code> is true, the <code>TransitionUsage</code> asserts that its <code>source</code> is exited, then its <code>effectAction</code> (if any) is performed, and then its <code>target</code> is entered.</p> +<p>A <code>StateDefinition</code> may be related to up to three of its <code>ownedFeatures</code> by <code>StateBehaviorMembership</code> <code>Relationships</code>, all of different <code>kinds</code>, corresponding to the entry, do and exit actions of the <code>StateDefinition</code>.</p> + + + + <p>A <code>StateDefinition</code> must directly or indirectly specialize the <code>StateDefinition</code> <em><code>States::StateAction</code></em> from the Systems Model Library.</p> + + + OCL2.0 + specializesFromLibrary('States::StateAction') + + + + + <p>A <code>StateDefinition</code> must not have more than one owned <code>StateSubactionMembership</code> of each <code>kind</code>.</p> + + + OCL2.0 + ownedMembership-> + selectByKind(StateSubactionMembership)-> + isUnique(kind) + + + + + <p>The <code>states</code> of a <code>StateDefinition</code> are those of its <code>actions</code> that are <code>StateUsages</code>.</p> + + + OCL2.0 + state = action->selectByKind(StateUsage) + + + + + <p>The <code>doAction</code> of a <code>StateDefinition</code> is the <code>action</code> of the owned <code>StateSubactionMembership</code> with <code>kind = do</code>.</p> + + + OCL2.0 + doAction = + let doMemberships : Sequence(StateSubactionMembership) = + ownedMembership-> + selectByKind(StateSubactionMembership)-> + select(kind = StateSubactionKind::do) in + if doMemberships->isEmpty() then null + else doMemberships->at(1) + endif + + + + + <p>The <code>entryAction</code> of a <code>StateDefinition</code> is the <code>action</code> of the owned <code>StateSubactionMembership</code> with <code>kind = entry</code>.</p> + + + OCL2.0 + entryAction = + let entryMemberships : Sequence(StateSubactionMembership) = + ownedMembership-> + selectByKind(StateSubactionMembership)-> + select(kind = StateSubactionKind::entry) in + if entryMemberships->isEmpty() then null + else entryMemberships->at(1) + endif + + + + + <p>If a <code>StateDefinition</code> is parallel, then its <code>ownedActions</code> (which includes its <code>ownedStates</code>) must not have any <code>incomingTransitions</code> or <code>outgoingTransitions</code>.</p> + + + OCL2.0 + isParallel implies + ownedAction.incomingTransition->isEmpty() and + ownedAction.outgoingTransition->isEmpty() + + + + + <p>The <code>exitAction</code> of a <code>StateDefinition</code> is the <code>action</code> of the owned <code>StateSubactionMembership</code> with <code>kind = exit +</code>.</p> + + + OCL2.0 + exitAction = + let exitMemberships : Sequence(StateSubactionMembership) = + ownedMembership-> + selectByKind(StateSubactionMembership)-> + select(kind = StateSubactionKind::exit) in + if exitMemberships->isEmpty() then null + else exitMemberships->at(1) + endif + + + + + + <p>The <code>StateUsages</code>, which are <code>actions</code> in the <code>StateDefinition</code>, that specify the discrete states in the behavior defined by the <code>StateDefinition</code>.</p> + + + + + + + <p>The <code>ActionUsage</code> of this <code>StateDefinition</code> to be performed on entry to the state defined by the <code>StateDefinition</code>. It is the owned <code>ActionUsage</code> related to the <code>StateDefinition</code> by a <code>StateSubactionMembership</code> with <code>kind = entry</code>.</p> + + + + + + + <p>The <code>ActionUsage</code> of this <code>StateDefinition</code> to be performed while in the state defined by the <code>StateDefinition</code>. It is the owned <code>ActionUsage</code> related to the <code>StateDefinition</code> by a <code>StateSubactionMembership</code> with <code>kind = do</code>.</p> + + + + + + + <p>The <code>ActionUsage</code> of this <code>StateDefinition</code> to be performed on exit to the state defined by the <code>StateDefinition</code>. It is the owned <code>ActionUsage</code> related to the <code>StateDefinition</code> by a <code>StateSubactionMembership</code> with <code>kind = exit</code>.</p> + + + + + + + <p>Whether the <code>ownedStates</code> of this <code>StateDefinition</code> are to all be performed in parallel. If true, none of the <code>ownedActions</code> (which includes <code>ownedStates</code>) may have any incoming or outgoing <code>Transitions</code>. If false, only one <code>ownedState</code> may be performed at a time.</p> + + + + + + + + + + <p>The Behaviors that are the types of this StateUsage. Nominally, these would be StateDefinition, but non-StateDefinition Behaviors are also allowed, to permit use of Behaviors from the Kernel Library.</p> + + + + + + + + <p>A <code>TransitionUsage</code> is an <code>ActionUsage</code> representing a triggered transition between <code>ActionUsages</code> or <code>StateUsages</code>. When triggered by a <code>triggerAction</code>, when its <code>guardExpression</code> is true, the <code>TransitionUsage</code> asserts that its <code>source</code> is exited, then its <code>effectAction</code> (if any) is performed, and then its <code>target</code> is entered.</p> - <p>A <code>TransitionUsage</code> can be related to some of its <code>ownedFeatures</code> using <code>TransitionFeatureMembership</code> <code>Relationships</code>, corresponding to the <code>triggerAction</code>, <code>guardExpression</code> and <code>effectAction</code> of the <code>TransitionUsage</code>.</p> - - - - <p>A composite <code>TransitionUsage</code> whose <code>owningType</code> is an <code>ActionDefinition</code> or <code>ActionUsage</code> and whose <code>source</code> is <em>not</em> a <code>StateUsage</code> must directly or indirectly specialize the <code>ActionUsage</code> <em><code>Actions::Action::decisionTransitions</code></em> from the Systems Model Library.</p> - - - OCL2.0 - isComposite and owningType <> null and - (owningType.oclIsKindOf(ActionDefinition) or - owningType.oclIsKindOf(ActionUsage)) and - source <> null and not source.oclIsKindOf(StateUsage) implies - specializesFromLibrary('Actions::Action::decisionTransitions') - - - - - <p>A composite <code>TransitionUsage</code> whose <code>owningType</code> is a <code>StateDefinition</code> or <code>StateUsage</code> and whose <code>source</code> is a <code>StateUsage</code> must directly or indirectly specialize the <code>ActionUsage</code> <em><code>States::StateAction::stateTransitions</code></em> from the Systems Model Library</p> - - - OCL2.0 - isComposite and owningType <> null and - (owningType.oclIsKindOf(StateDefinition) or - owningType.oclIsKindOf(StateUsage)) and - source <> null and source.oclIsKindOf(StateUsage) implies - specializesFromLibrary('States::StateAction::stateTransitions') - - - - - - <p>A <code>TransitionUsage</code> must directly or indirectly specialize the <code>ActionUsage</code> <em><code>Actions::transitionActions</code></em> from the Systems Model Library.</p> - - - OCL2.0 - specializesFromLibrary('Actions::transitionActions') - - - - - <p>The <code>source</code> of a <code>TransitionUsage</code> is <code>featureTarget</code> of the result of <code>sourceFeature()</code>, which must be an <code>ActionUsage</code>.</p> - - - OCL2.0 - source = - let sourceFeature : Feature = sourceFeature() in - if sourceFeature = null then null - else sourceFeature.featureTarget.oclAsType(ActionUsage) - - - - - <p>The <code>target</code> of a <code>TransitionUsage</code> is given by the <code>featureTarget</code> of the <code>targetFeature</code> of its <code>succession</code>, which must be an <code>ActionUsage</code>.</p> - - - OCL2.0 - target = - if succession.targetFeature->isEmpty() then null - else - let targetFeature : Feature = - succession.targetFeature->first().featureTarget in - if not targetFeature.oclIsKindOf(ActionUsage) then null - else targetFeature.oclAsType(ActionUsage) - endif - endif - - - - - - <p>The <code>triggerActions</code> of a <code>TransitionUsage</code> are the <code>transitionFeatures</code> of the <code>ownedFeatureMemberships</code> of the <code>TransitionUsage</code> with <code>kind = trigger</code>, which must all be <code>AcceptActionUsages</code>.</p> - - - OCL2.0 - triggerAction = ownedFeatureMembership-> - selectByKind(TransitionFeatureMembership)-> - select(kind = TransitionFeatureKind::trigger).transitionFeature-> - selectByKind(AcceptActionUsage) - - - - - <p>A <code>TransitionUsage</code> must have an <code>ownedMember</code> that is a <code>Succession</code> with an <code>ActionUsage</code> as the <code>featureTarget</code> of its <code>targetFeature</code>.</p> - - - OCL2.0 - let successions : Sequence(Successions) = - ownedMember->selectByKind(Succession) in - successions->notEmpty() and - successions->at(1).targetFeature.featureTarget-> - forAll(oclIsKindOf(ActionUsage)) - - - - - <p>The <code>triggerActions</code> of a <code>TransitionUsage</code> are the <code>transitionFeatures</code> of the <code>ownedFeatureMemberships</code> of the <code>TransitionUsage</code> with <code>kind = trigger</code>, which must all be <code>Expressions</code>.</p> - - - OCL2.0 - guardExpression = ownedFeatureMembership-> - selectByKind(TransitionFeatureMembership)-> - select(kind = TransitionFeatureKind::trigger).transitionFeature-> - selectByKind(Expression) - - - - - <p>The <code>triggerActions</code>, <code>guardExpressions</code>, and <code>effectActions</code> of a <code>TransitionUsage</code> must specialize, respectively, the <em><code>accepter</code></em>, <em><code>guard</code></em>, and <em><code>effect</code></em> <code>features</code> of the <code>ActionUsage</code> <em><code>Actions::TransitionActions</code></em> from the Systems Model Library.</p> - - - OCL2.0 - triggerAction->forAll(specializesFromLibrary('Actions::TransitionAction::accepter') and - guardExpression->forAll(specializesFromLibrary('Actions::TransitionAction::guard') and - effectAction->forAll(specializesFromLibrary('Actions::TransitionAction::effect')) - - - - - <p>The <code>effectActions</code> of a <code>TransitionUsage</code> are the <code>transitionFeatures</code> of the <code>ownedFeatureMemberships</code> of the <code>TransitionUsage</code> with <code>kind = effect</code>, which must all be <code>ActionUsages</code>.</p> - - - OCL2.0 - triggerAction = ownedFeatureMembership-> - selectByKind(TransitionFeatureMembership)-> - select(kind = TransitionFeatureKind::trigger).transitionFeatures-> - selectByKind(AcceptActionUsage) - - - - - <p>The <code>sourceFeature</code> of the <code>succession</code> of a <code>TransitionUsage</code> must be the <code>source</code> of the <code>TransitionUsage</code> (i.e., the first <code>connectorEnd</code> of the <code>succession</code> must have a <code>ReferenceSubsetting</code> <code>Relationship</code> with the <code>source</code>).</p> - - - OCL2.0 - succession.sourceFeature = source - - - - - <p>A <code>TransitionUsage</code> must have an <code>ownedMember</code> that is a <code>BindingConnector</code> between its <code>source</code> and its first input <code>parameter</code> (which redefines <code><em>Actions::TransitionAction::transitionLinkSource</em></code>).</p> - - - OCL2.0 - ownedMember->selectByKind(BindingConnector)->exists(b | - b.relatedFeatures->includes(source) and - b.relatedFeatures->includes(inputParameter(1))) - - - - - <p>If a <code>TransitionUsage</code> has a <code>triggerAction</code>, then the <em><code>payload</code></em> <code>parameter</code> of the <code>TransitionUsage</code> subsets the <code>Feature</code> chain of the <code>triggerAction</code> and its <code>payloadParameter</code>.</p> - - - OCL2.0 - triggerAction->notEmpty() implies - let payloadParameter : Feature = inputParameter(2) in - payloadParameter <> null and - payloadParameter.subsetsChain(triggerAction->at(1), triggerPayloadParameter()) - - - - - <p>A <code>TransitionUsage</code> must have an <code>ownedMember</code> that is a <code>BindingConnector</code> between its <code>succession</code> and the inherited <code>Feature</code> <code><em>TransitionPerformances::TransitionPerformance::transitionLink</em></code>.</p> - - - OCL2.0 - ownedMember->selectByKind(BindingConnector)->exists(b | - b.relatedFeatures->includes(succession) and - b.relatedFeatures->includes(resolveGlobal( - 'TransitionPerformances::TransitionPerformance::transitionLink'))) - - - - - <p>A <code>TransitionUsage</code> must have at least one owned input <code>parameter</code> and, if it has a <code>triggerAction</code>, it must have at least two.</p> - - - OCL2.0 - if triggerAction->isEmpty() then - inputParameters()->size() >= 1 - else - inputParameters()->size() >= 2 - endif - - - - - - <p>The <code>succession</code> of a <code>TransitionUsage</code> is its first <code>ownedMember</code> that is a <code>Succession</code>.</p> - - - OCL2.0 - succession = ownedMember->selectByKind(Succession)->at(1) - - - - - <p>If the <code>source</code> of a <code>TransitionUsage</code> is <em>not</em> a <code>StateUsage</code>, then the <code>TransitionUsage</code> must not have any <code>triggerActions</code>.</p> - - - OCL2.0 - source <> null and not source.oclIsKindOf(StateUsage) implies - triggerAction->isEmpty() - - - - - - <p>The source <code>ActionUsage</code> of this <code>TransitionUsage</code>, which becomes the <code>source</code> of the <code>succession</code> for the <code>TransitionUsage</code>.</p> - - - - - - - <p>The target <code>ActionUsage</code> of this <code>TransitionUsage<code>, which is the <code>targetFeature</code> of the <code>succession</code> for the <code>TransitionUsage</code>.</p> - - - - - - - <p>The <code>AcceptActionUsages</code> that define the triggers of this <code>TransitionUsage</code>, which are the <code>ownedFeatures</code> of the <code>TransitionUsage</code> related to it by <code>TransitionFeatureMemberships</code> with <code>kind = trigger</code>, which must all be <code>AcceptActionUsages</code>.</p> - - - - - - - - <p>The <code>Expressions</code> that define the guards of this <code>TransitionUsage</code>, which are the <code>ownedFeatures</code> of the <code>TransitionUsage</code> related to it by <code>TransitionFeatureMemberships</code> with <code>kind = guard</code>, which must all be <code>Expressions</code>.</p> - - - - - - - - - <p>The <code>ActionUsages</code> that define the effects of this <code>TransitionUsage</code>, which are the <code>ownedFeatures</code> of the <code>TransitionUsage</code> related to it by <code>TransitionFeatureMemberships</code> with <code>kind = effect</code>, which must all be <code>ActionUsages</code>.</p> - - - - - - - - <p>The <code>Succession</code> that is the <code>ownedFeature</code> of this <code>TransitionUsage</code>, which, if the <code>TransitionUsage</code> is triggered, asserts the temporal ordering of the <code>source</code> and <code>target</code>.</p> - - - - - - - - - <p>Return the <code>payloadParameter</code> of the <code>triggerAction</code> of this <code>TransitionUsage</code>, if it has one.</p> - - - - OCL2.0 - if triggerAction->isEmpty() then null - else triggerAction->first().payloadParameter - endif - - - - - - - - - - <p>Return the <code>Feature</code> to be used as the <code>source</code> of the <code>succession</code> of this <code>TransitionUsage</code>, which is the first <code>member</code> of the <code>TransitionUsage</code> that is a <code>Feature</code>, that is owned by the <code>TransitionUsage</code> via a <code>Membership</code> that is <em>not</em> a <code>FeatureMembership</code>, and whose <code>featureTarget</code> is an <code>ActionUsage</code>.</p> - - - - OCL2.0 - let features : Sequence(Feature) = ownedMembership-> - reject(oclIsKindOf(FeatureMembership)).memberElement-> - selectByKind(Feature)-> - select(featureTarget.oclIsKindOf(ActionUsage)) in - if features->isEmpty() then null - else features->first() - endif - - - - - - - - - - - - <p>A <code>TransitionFeatureMembership</code> is a <code>FeatureMembership</code> for a trigger, guard or effect of a <code>TransitionUsage</code>, whose <code>transitionFeature</code> is a <code>AcceptActionUsage</code>, <em><code>Boolean</code></em>-valued <code>Expression</code> or <code>ActionUsage</code>, depending on its <code>kind</code>. </p> - - - - <p>If the <code>kind</code> of a <code>TransitionUsage</code> is <code>trigger</code>, then its <code>transitionFeature</code> must be a kind of <code>AcceptActionUsage</code>.</p> - - - OCL2.0 - kind = TransitionFeatureKind::trigger implies - transitionFeature.oclIsKindOf(AcceptActionUsage) - - - - - <p>The <code>owningType</code> of a <code>TransitionFeatureMembership</code> must be a <code>TransitionUsage</code>.</p> - - - OCL2.0 - owningType.oclIsKindOf(TransitionUsage) - - - - - <p>If the <code>kind</code> of a <code>TransitionUsage</code> is <code>guard</code>, then its <code>transitionFeature</code> must be a kind of <code>Expression</code> whose result is a <em><code>Boolean</code></em> value.</p> - - - OCL2.0 - kind = TransitionFeatureKind::guard implies - transitionFeature.oclIsKindOf(Expression) and - let guard : Expression = transitionFeature.oclIsKindOf(Expression) in - guard.result.specializesFromLibrary('ScalarValues::Boolean') and - guard.result.multiplicity <> null and - guard.result.multiplicity.hasBounds(1,1) - - - - - <p>If the <code>kind</code> of a <code>TransitionUsage</code> is <code>effect</code>, then its <code>transitionFeature</code> must be a kind of <code>ActionUsage</code>.</p> - - - OCL2.0 - kind = TransitionFeatureKind::effect implies - transitionFeature.oclIsKindOf(ActionUsage) - - - - - - - - <p>Whether this <code>TransitionFeatureMembership </code> is for a <code>trigger</code>, <code>guard</code> or <code>effect</code>.</p> - - - - - <p>The <code>Step</code> that is the <code>ownedMemberFeature</code> of this <code>TransitionFeatureMembership</code>.</p> - - - - - - - - - - <p>An <code>ExhibitStateUsage</code> is a <code>StateUsage</code> that represents the exhibiting of a <code>StateUsage</code>. Unless it is the <code>StateUsage</code> itself, the <code>StateUsage</code> to be exhibited is related to the <code>ExhibitStateUsage</code> by a <code>ReferenceSubsetting</code> <code>Relationship</code>. An <code>ExhibitStateUsage</code> is also a <code>PerformActionUsage</code>, with its <code>exhibitedState</code> as the <code>performedAction</code>.</p> - - - - - <p>If an <code>ExhibitStateUsage</code> has an <code>owningType</code> that is a <code>PartDefinition</code> or <code>PartUsage</code>, then it must directly or indirectly specialize the <code>StateUsage</code> <code><em>Parts::Part::exhibitedStates</em></code>.</p> - - - OCL2.0 - owningType <> null and - (owningType.oclIsKindOf(PartDefinition) or - owningType.oclIsKindOf(PartUsage)) implies - specializesFromLibrary('Parts::Part::exhibitedStates') - - - - - <p>If an <code>ExhibitStateUsage</code> has an <code>ownedReferenceSubsetting</code>, then the <code>featureTarget</code> of the <code>referencedFeature</code> must be a <code>StateUsage</code>.</p> - - - OCL2.0 - referencedFeatureTarget() <> null implies - referencedFeatureTarget().oclIsKindOf(StateUsage) - - - - - - - <p>The <code>StateUsage</code> to be exhibited by the <code>ExhibitStateUsage</code>. It is the <code>performedAction</code> of the <code>ExhibitStateUsage</code> considered as a <code>PerformActionUsage</code>, which must be a <code>StateUsage</code>.</p> - - - - - - - - <p>A <code>TransitionActionKind</code> indicates whether the <code>transitionFeature</code> of a <code>TransitionFeatureMembership</code> is a trigger, guard or effect.</p> - - - - <p>Indicates that the <code>transitionFeature</code> of a <code>TransitionFeatureMembership</code> is a <code>triggerAction</code>.</p> - - - - - <p>Indicates that the <code>transitionFeature</code> of a <code>TransitionFeatureMembership</code> is a <code>guardExpression</code>.</p> - - - - - <p>Indicates that the <code>transitionFeature</code> of a <code>TransitionFeatureMembership</code> is an <code>effectAction</code>.</p> - - - - - - - <p>The ExhibitStateUsages that have a certain StateUsage as their <tt>exhibitedState</tt>.</p> - - - - - - - - - <p>The Transition that owns a certain Succession.</p> - - - - - - - - - - <p>The TransitionUsage that has a certain <tt>effectAction</tt>.</p> - - - - - - - - - - <p>The TransitionUsage incoming to a certain target <tt>ActionUsage</tt>.</p> - - - - - - - - - <p>The TransitionUsage that is triggered by a certain AcceptActionUsage.</p> - - - - - - - - - - <p>The TransitionUsage that is guarded by a certain Expression.</p> - - - - - - - - - - <p>The TransitionUsage outgoing from a certain source <tt>ActionUsage</tt>.</p> - - - - - - - - - <p>The StateDefinitions with a certain <tt>exitAction</tt>.</p> - - - - - - - - - <p>The StateDefinitions with a certain <tt>doAction</tt>.</p> - - - - - - - - - <p>The StateUsages with a certain <tt>entryAction</tt>.</p> - - - - - - - - - <p>The StateDefinitions with a certain <tt>entryAction</tt>.</p> - - - - - - - - - <p>The TransitionFeatureMembership that owns a certain Step (if any).</p> - - - - - - - - - - <p>The StateUsages with a certain <tt>exitAction</tt>.</p> - - - - - - - - - <p>The StateUsages with a certain <tt>doAction</tt>.</p> - - - - - - - - - <p>The StateSubactionMembership that is the owner of a certain ActionUsage (if any).</p> - - - - - - - - - - - <p>A <code>ConstraintUsage</code> is an <code>OccurrenceUsage</code> that is also a <code>BooleanExpression</code>, and, so, is typed by a <code>Predicate</code>. Nominally, if the type is a <code>ConstraintDefinition</code>, a <code>ConstraintUsage</code> is a <code>Usage</code> of that <code>ConstraintDefinition</code>. However, other kinds of kernel <code>Predicates</code> are also allowed, to permit use of <code>Predicates</code> from the Kernel Model Libraries.</p> - - - - <p>A <code>ConstraintUsage</code> whose <code>owningFeatureMembership</code> is a <code>RequirementConstraintMembership</code> must directly or indirectly specialize on the <code>ConstraintUsages</code> <code><em>assumptions</em></code> or <code><em>constraints</em></code> from the <code>ConstraintDefinition</code> <code><em>Requirements::RequirementCheck</em></code> in the Systems Model Library, depending on whether the <code>kind</code> of the <code>RequirementConstraintMembership</code> is <code>assumption</code> or <code>requirement</code>, respectively.</p> - - - OCL2.0 - owningFeatureMembership <> null and - owningFeatureMembership.oclIsKindOf(RequirementConstraintMembership) implies - if owningFeatureMembership.oclAsType(RequirementConstraintMembership).kind = - RequirementConstraintKind::assumption then - specializesFromLibrary('Requirements::RequirementCheck::assumptions') - else - specializesFromLibrary('Requirements::RequirementCheck::constraints') - endif - - - - - <p>A <code>ConstraintUsage</code> must directly or indirectly specialize the base <code>ConstraintUsage</code> <em><code>Constraints::constraintChecks</code></em> from the Systems Model Library.</p> - - - OCL2.0 - specializesFromLibrary('Constraints::constraintChecks') - - - - - <p>A <code>ConstraintUsage</code> whose <code>owningType</code> is an <code>ItemDefinition</code> or <code>ItemUsage</code> must directly or indirectly specialize the <code>ConstraintUsage</code> <em><code>Items::Item::checkedConstraints</code></em>.</p> - - - OCL2.0 - owningType <> null and - (owningType.oclIsKindOf(ItemDefinition) or - owningType.oclIsKindOf(ItemUsage)) implies - specializesFromLibrary('Items::Item::checkedConstraints') - - - - - - - - - <p>The (single) <code>Predicate</code> that is the type of this <code>ConstraintUsage</code>. Nominally, this will be a <code>ConstraintDefinition</code>, but other kinds of <code>Predicates</code> are also allowed, to permit use of <code>Predicates</code> from the Kernel Model Libraries.</p> - - - - - - - - - <p>The naming <code>Feature</code> of a <code>ConstraintUsage</code> that is owned by a <code>RequirementConstraintMembership</code> and has an <code>ownedReferenceSubsetting</code> is the <code>featureTarget</code> of the <code>referencedFeature</code> of that <code>ownedReferenceSubsetting</code>.</p> - - - - OCL2.0 - if owningFeatureMembership <> null and - owningFeatureMembership.oclIsKindOf(RequirementConstraintMembership) and - ownedReferenceSubsetting <> null then - ownedReferenceSubsetting.referencedFeature.featureTarget - else - self.oclAsType(OccurrenceUsage).namingFeature() - endif - - - - - - - - - - - <p>A <code>ConstraintUsage</code> is not model-level evaluable.</p> - - - - OCL2.0 - false - - - - - - - - - - - - - - - - <p>A <code>ConstraintDefinition</code> is an <code>OccurrenceDefinition</code> that is also a <code>Predicate</code> that defines a constraint that may be asserted to hold on a system or part of a system.</p> +<p>A <code>TransitionUsage</code> can be related to some of its <code>ownedFeatures</code> using <code>TransitionFeatureMembership</code> <code>Relationships</code>, corresponding to the <code>triggerAction</code>, <code>guardExpression</code> and <code>effectAction</code> of the <code>TransitionUsage</code>.</p> + + + + <p>A composite <code>TransitionUsage</code> whose <code>owningType</code> is an <code>ActionDefinition</code> or <code>ActionUsage</code> and whose <code>source</code> is <em>not</em> a <code>StateUsage</code> must directly or indirectly specialize the <code>ActionUsage</code> <em><code>Actions::Action::decisionTransitions</code></em> from the Systems Model Library.</p> + + + OCL2.0 + isComposite and owningType <> null and +(owningType.oclIsKindOf(ActionDefinition) or + owningType.oclIsKindOf(ActionUsage)) and +source <> null and not source.oclIsKindOf(StateUsage) implies + specializesFromLibrary('Actions::Action::decisionTransitions') + + + + + <p>A composite <code>TransitionUsage</code> whose <code>owningType</code> is a <code>StateDefinition</code> or <code>StateUsage</code> and whose <code>source</code> is a <code>StateUsage</code> must directly or indirectly specialize the <code>ActionUsage</code> <em><code>States::StateAction::stateTransitions</code></em> from the Systems Model Library</p> + + + OCL2.0 + isComposite and owningType <> null and +(owningType.oclIsKindOf(StateDefinition) or + owningType.oclIsKindOf(StateUsage)) and +source <> null and source.oclIsKindOf(StateUsage) implies + specializesFromLibrary('States::StateAction::stateTransitions') + + + + + + <p>A <code>TransitionUsage</code> must directly or indirectly specialize the <code>ActionUsage</code> <em><code>Actions::transitionActions</code></em> from the Systems Model Library.</p> + + + OCL2.0 + specializesFromLibrary('Actions::transitionActions') + + + + + <p>The <code>source</code> of a <code>TransitionUsage</code> is <code>featureTarget</code> of the result of <code>sourceFeature()</code>, which must be an <code>ActionUsage</code>.</p> + + + OCL2.0 + source = + let sourceFeature : Feature = sourceFeature() in + if sourceFeature = null then null + else sourceFeature.featureTarget.oclAsType(ActionUsage) + + + + + <p>The <code>target</code> of a <code>TransitionUsage</code> is given by the <code>featureTarget</code> of the <code>targetFeature</code> of its <code>succession</code>, which must be an <code>ActionUsage</code>.</p> + + + OCL2.0 + target = + if succession.targetFeature->isEmpty() then null + else + let targetFeature : Feature = + succession.targetFeature->first().featureTarget in + if not targetFeature.oclIsKindOf(ActionUsage) then null + else targetFeature.oclAsType(ActionUsage) + endif + endif + + + + + + <p>The <code>triggerActions</code> of a <code>TransitionUsage</code> are the <code>transitionFeatures</code> of the <code>ownedFeatureMemberships</code> of the <code>TransitionUsage</code> with <code>kind = trigger</code>, which must all be <code>AcceptActionUsages</code>.</p> + + + OCL2.0 + triggerAction = ownedFeatureMembership-> + selectByKind(TransitionFeatureMembership)-> + select(kind = TransitionFeatureKind::trigger).transitionFeature-> + selectByKind(AcceptActionUsage) + + + + + <p>A <code>TransitionUsage</code> must have an <code>ownedMember</code> that is a <code>Succession</code> with an <code>ActionUsage</code> as the <code>featureTarget</code> of its <code>targetFeature</code>.</p> + + + OCL2.0 + let successions : Sequence(Successions) = + ownedMember->selectByKind(Succession) in +successions->notEmpty() and +successions->at(1).targetFeature.featureTarget-> + forAll(oclIsKindOf(ActionUsage)) + + + + + <p>The <code>triggerActions</code> of a <code>TransitionUsage</code> are the <code>transitionFeatures</code> of the <code>ownedFeatureMemberships</code> of the <code>TransitionUsage</code> with <code>kind = trigger</code>, which must all be <code>Expressions</code>.</p> + + + OCL2.0 + guardExpression = ownedFeatureMembership-> + selectByKind(TransitionFeatureMembership)-> + select(kind = TransitionFeatureKind::trigger).transitionFeature-> + selectByKind(Expression) + + + + + <p>The <code>triggerActions</code>, <code>guardExpressions</code>, and <code>effectActions</code> of a <code>TransitionUsage</code> must specialize, respectively, the <em><code>accepter</code></em>, <em><code>guard</code></em>, and <em><code>effect</code></em> <code>features</code> of the <code>ActionUsage</code> <em><code>Actions::TransitionActions</code></em> from the Systems Model Library.</p> + + + OCL2.0 + triggerAction->forAll(specializesFromLibrary('Actions::TransitionAction::accepter') and +guardExpression->forAll(specializesFromLibrary('Actions::TransitionAction::guard') and +effectAction->forAll(specializesFromLibrary('Actions::TransitionAction::effect')) + + + + + <p>The <code>effectActions</code> of a <code>TransitionUsage</code> are the <code>transitionFeatures</code> of the <code>ownedFeatureMemberships</code> of the <code>TransitionUsage</code> with <code>kind = effect</code>, which must all be <code>ActionUsages</code>.</p> + + + OCL2.0 + triggerAction = ownedFeatureMembership-> + selectByKind(TransitionFeatureMembership)-> + select(kind = TransitionFeatureKind::trigger).transitionFeatures-> + selectByKind(AcceptActionUsage) + + + + + <p>The <code>sourceFeature</code> of the <code>succession</code> of a <code>TransitionUsage</code> must be the <code>source</code> of the <code>TransitionUsage</code> (i.e., the first <code>connectorEnd</code> of the <code>succession</code> must have a <code>ReferenceSubsetting</code> <code>Relationship</code> with the <code>source</code>).</p> + + + OCL2.0 + succession.sourceFeature = source + + + + + <p>A <code>TransitionUsage</code> must have an <code>ownedMember</code> that is a <code>BindingConnector</code> between its <code>source</code> and its first input <code>parameter</code> (which redefines <code><em>Actions::TransitionAction::transitionLinkSource</em></code>).</p> + + + OCL2.0 + ownedMember->selectByKind(BindingConnector)->exists(b | + b.relatedFeatures->includes(source) and + b.relatedFeatures->includes(inputParameter(1))) + + + + + <p>If a <code>TransitionUsage</code> has a <code>triggerAction</code>, then the <em><code>payload</code></em> <code>parameter</code> of the <code>TransitionUsage</code> subsets the <code>Feature</code> chain of the <code>triggerAction</code> and its <code>payloadParameter</code>.</p> + + + OCL2.0 + triggerAction->notEmpty() implies + let payloadParameter : Feature = inputParameter(2) in + payloadParameter <> null and + payloadParameter.subsetsChain(triggerAction->at(1), triggerPayloadParameter()) + + + + + <p>A <code>TransitionUsage</code> must have an <code>ownedMember</code> that is a <code>BindingConnector</code> between its <code>succession</code> and the inherited <code>Feature</code> <code><em>TransitionPerformances::TransitionPerformance::transitionLink</em></code>.</p> + + + OCL2.0 + ownedMember->selectByKind(BindingConnector)->exists(b | + b.relatedFeatures->includes(succession) and + b.relatedFeatures->includes(resolveGlobal( + 'TransitionPerformances::TransitionPerformance::transitionLink'))) + + + + + <p>A <code>TransitionUsage</code> must have at least one owned input <code>parameter</code> and, if it has a <code>triggerAction</code>, it must have at least two.</p> + + + OCL2.0 + if triggerAction->isEmpty() then + inputParameters()->size() >= 1 +else + inputParameters()->size() >= 2 +endif + + + + + + <p>The <code>succession</code> of a <code>TransitionUsage</code> is its first <code>ownedMember</code> that is a <code>Succession</code>.</p> + + + OCL2.0 + succession = ownedMember->selectByKind(Succession)->at(1) + + + + + <p>If the <code>source</code> of a <code>TransitionUsage</code> is <em>not</em> a <code>StateUsage</code>, then the <code>TransitionUsage</code> must not have any <code>triggerActions</code>.</p> + + + OCL2.0 + source <> null and not source.oclIsKindOf(StateUsage) implies + triggerAction->isEmpty() + + + + + + <p>The source <code>ActionUsage</code> of this <code>TransitionUsage</code>, which becomes the <code>source</code> of the <code>succession</code> for the <code>TransitionUsage</code>.</p> + + + + + + + <p>The target <code>ActionUsage</code> of this <code>TransitionUsage<code>, which is the <code>targetFeature</code> of the <code>succession</code> for the <code>TransitionUsage</code>.</p> + + + + + + + <p>The <code>AcceptActionUsages</code> that define the triggers of this <code>TransitionUsage</code>, which are the <code>ownedFeatures</code> of the <code>TransitionUsage</code> related to it by <code>TransitionFeatureMemberships</code> with <code>kind = trigger</code>, which must all be <code>AcceptActionUsages</code>.</p> + + + + + + + + <p>The <code>Expressions</code> that define the guards of this <code>TransitionUsage</code>, which are the <code>ownedFeatures</code> of the <code>TransitionUsage</code> related to it by <code>TransitionFeatureMemberships</code> with <code>kind = guard</code>, which must all be <code>Expressions</code>.</p> + + + + + + + + + <p>The <code>ActionUsages</code> that define the effects of this <code>TransitionUsage</code>, which are the <code>ownedFeatures</code> of the <code>TransitionUsage</code> related to it by <code>TransitionFeatureMemberships</code> with <code>kind = effect</code>, which must all be <code>ActionUsages</code>.</p> + + + + + + + + <p>The <code>Succession</code> that is the <code>ownedFeature</code> of this <code>TransitionUsage</code>, which, if the <code>TransitionUsage</code> is triggered, asserts the temporal ordering of the <code>source</code> and <code>target</code>.</p> + + + + + + + + + <p>Return the <code>payloadParameter</code> of the <code>triggerAction</code> of this <code>TransitionUsage</code>, if it has one.</p> + + + + OCL2.0 + if triggerAction->isEmpty() then null +else triggerAction->first().payloadParameter +endif + + + + + + + + + + <p>Return the <code>Feature</code> to be used as the <code>source</code> of the <code>succession</code> of this <code>TransitionUsage</code>, which is the first <code>member</code> of the <code>TransitionUsage</code> that is a <code>Feature</code>, that is owned by the <code>TransitionUsage</code> via a <code>Membership</code> that is <em>not</em> a <code>FeatureMembership</code>, and whose <code>featureTarget</code> is an <code>ActionUsage</code>.</p> + + + + OCL2.0 + let features : Sequence(Feature) = ownedMembership-> + reject(oclIsKindOf(FeatureMembership)).memberElement-> + selectByKind(Feature)-> + select(featureTarget.oclIsKindOf(ActionUsage)) in +if features->isEmpty() then null +else features->first() +endif + + + + + + + + + + + + <p>A <code>TransitionFeatureMembership</code> is a <code>FeatureMembership</code> for a trigger, guard or effect of a <code>TransitionUsage</code>, whose <code>transitionFeature</code> is a <code>AcceptActionUsage</code>, <em><code>Boolean</code></em>-valued <code>Expression</code> or <code>ActionUsage</code>, depending on its <code>kind</code>. </p> + + + + <p>If the <code>kind</code> of a <code>TransitionUsage</code> is <code>trigger</code>, then its <code>transitionFeature</code> must be a kind of <code>AcceptActionUsage</code>.</p> + + + OCL2.0 + kind = TransitionFeatureKind::trigger implies + transitionFeature.oclIsKindOf(AcceptActionUsage) + + + + + <p>The <code>owningType</code> of a <code>TransitionFeatureMembership</code> must be a <code>TransitionUsage</code>.</p> + + + OCL2.0 + owningType.oclIsKindOf(TransitionUsage) + + + + + <p>If the <code>kind</code> of a <code>TransitionUsage</code> is <code>guard</code>, then its <code>transitionFeature</code> must be a kind of <code>Expression</code> whose result is a <em><code>Boolean</code></em> value.</p> + + + OCL2.0 + kind = TransitionFeatureKind::guard implies + transitionFeature.oclIsKindOf(Expression) and + let guard : Expression = transitionFeature.oclIsKindOf(Expression) in + guard.result.specializesFromLibrary('ScalarValues::Boolean') and + guard.result.multiplicity <> null and + guard.result.multiplicity.hasBounds(1,1) + + + + + <p>If the <code>kind</code> of a <code>TransitionUsage</code> is <code>effect</code>, then its <code>transitionFeature</code> must be a kind of <code>ActionUsage</code>.</p> + + + OCL2.0 + kind = TransitionFeatureKind::effect implies + transitionFeature.oclIsKindOf(ActionUsage) + + + + + + + + <p>Whether this <code>TransitionFeatureMembership </code> is for a <code>trigger</code>, <code>guard</code> or <code>effect</code>.</p> + + + + + <p>The <code>Step</code> that is the <code>ownedMemberFeature</code> of this <code>TransitionFeatureMembership</code>.</p> + + + + + + + + + + <p>An <code>ExhibitStateUsage</code> is a <code>StateUsage</code> that represents the exhibiting of a <code>StateUsage</code>. Unless it is the <code>StateUsage</code> itself, the <code>StateUsage</code> to be exhibited is related to the <code>ExhibitStateUsage</code> by a <code>ReferenceSubsetting</code> <code>Relationship</code>. An <code>ExhibitStateUsage</code> is also a <code>PerformActionUsage</code>, with its <code>exhibitedState</code> as the <code>performedAction</code>.</p> + + + + + <p>If an <code>ExhibitStateUsage</code> has an <code>owningType</code> that is a <code>PartDefinition</code> or <code>PartUsage</code>, then it must directly or indirectly specialize the <code>StateUsage</code> <code><em>Parts::Part::exhibitedStates</em></code>.</p> + + + OCL2.0 + owningType <> null and +(owningType.oclIsKindOf(PartDefinition) or + owningType.oclIsKindOf(PartUsage)) implies + specializesFromLibrary('Parts::Part::exhibitedStates') + + + + + <p>If an <code>ExhibitStateUsage</code> has an <code>ownedReferenceSubsetting</code>, then the <code>featureTarget</code> of the <code>referencedFeature</code> must be a <code>StateUsage</code>.</p> + + + OCL2.0 + referencedFeatureTarget() <> null implies + referencedFeatureTarget().oclIsKindOf(StateUsage) + + + + + + + <p>The <code>StateUsage</code> to be exhibited by the <code>ExhibitStateUsage</code>. It is the <code>performedAction</code> of the <code>ExhibitStateUsage</code> considered as a <code>PerformActionUsage</code>, which must be a <code>StateUsage</code>.</p> + + + + + + + + <p>A <code>TransitionActionKind</code> indicates whether the <code>transitionFeature</code> of a <code>TransitionFeatureMembership</code> is a trigger, guard or effect.</p> + + + + <p>Indicates that the <code>transitionFeature</code> of a <code>TransitionFeatureMembership</code> is a <code>triggerAction</code>.</p> + + + + + <p>Indicates that the <code>transitionFeature</code> of a <code>TransitionFeatureMembership</code> is a <code>guardExpression</code>.</p> + + + + + <p>Indicates that the <code>transitionFeature</code> of a <code>TransitionFeatureMembership</code> is an <code>effectAction</code>.</p> + + + + + + + <p>The ExhibitStateUsages that have a certain StateUsage as their <tt>exhibitedState</tt>.</p> + + + + + + + + + <p>The Transition that owns a certain Succession.</p> + + + + + + + + + + <p>The TransitionUsage that has a certain <tt>effectAction</tt>.</p> + + + + + + + + + + <p>The TransitionUsage incoming to a certain target <tt>ActionUsage</tt>.</p> + + + + + + + + + <p>The TransitionUsage that is triggered by a certain AcceptActionUsage.</p> + + + + + + + + + + <p>The TransitionUsage that is guarded by a certain Expression.</p> + + + + + + + + + + <p>The TransitionUsage outgoing from a certain source <tt>ActionUsage</tt>.</p> + + + + + + + + + <p>The StateDefinitions with a certain <tt>exitAction</tt>.</p> + + + + + + + + + <p>The StateDefinitions with a certain <tt>doAction</tt>.</p> + + + + + + + + + <p>The StateUsages with a certain <tt>entryAction</tt>.</p> + + + + + + + + + <p>The StateDefinitions with a certain <tt>entryAction</tt>.</p> + + + + + + + + + <p>The TransitionFeatureMembership that owns a certain Step (if any).</p> + + + + + + + + + + <p>The StateUsages with a certain <tt>exitAction</tt>.</p> + + + + + + + + + <p>The StateUsages with a certain <tt>doAction</tt>.</p> + + + + + + + + + <p>The StateSubactionMembership that is the owner of a certain ActionUsage (if any).</p> + + + + + + + + + + + <p>A <code>ConstraintUsage</code> is an <code>OccurrenceUsage</code> that is also a <code>BooleanExpression</code>, and, so, is typed by a <code>Predicate</code>. Nominally, if the type is a <code>ConstraintDefinition</code>, a <code>ConstraintUsage</code> is a <code>Usage</code> of that <code>ConstraintDefinition</code>. However, other kinds of kernel <code>Predicates</code> are also allowed, to permit use of <code>Predicates</code> from the Kernel Model Libraries.</p> + + + + <p>A composite <code>ConstraintUsage</code> whose <code>owningFeatureMembership</code> is a <code>RequirementConstraintMembership</code> must directly or indirectly specialize on the <code>ConstraintUsages</code> <code><em>assumptions</em></code> or <code><em>constraints</em></code> from the <code>ConstraintDefinition</code> <code><em>Requirements::RequirementCheck</em></code> in the Systems Model Library, depending on whether the <code>kind</code> of the <code>RequirementConstraintMembership</code> is <code>assumption</code> or <code>requirement</code>, respectively.</p> + + + OCL2.0 + isComposite and +owningFeatureMembership <> null and +owningFeatureMembership.oclIsKindOf(RequirementConstraintMembership) implies + if owningFeatureMembership.oclAsType(RequirementConstraintMembership).kind = + RequirementConstraintKind::assumption then + specializesFromLibrary('Requirements::RequirementCheck::assumptions') + else + specializesFromLibrary('Requirements::RequirementCheck::constraints') + endif + + + + + <p>A <code>ConstraintUsage</code> must directly or indirectly specialize the base <code>ConstraintUsage</code> <em><code>Constraints::constraintChecks</code></em> from the Systems Model Library.</p> + + + OCL2.0 + specializesFromLibrary('Constraints::constraintChecks') + + + + + <p>A <code>ConstraintUsage</code> whose <code>owningType</code> is an <code>ItemDefinition</code> or <code>ItemUsage</code> must directly or indirectly specialize the <code>ConstraintUsage</code> <em><code>Items::Item::checkedConstraints</code></em>.</p> + + + OCL2.0 + owningType <> null and +(owningType.oclIsKindOf(ItemDefinition) or + owningType.oclIsKindOf(ItemUsage)) implies + specializesFromLibrary('Items::Item::checkedConstraints') + + + + + + + + + <p>The (single) <code>Predicate</code> that is the type of this <code>ConstraintUsage</code>. Nominally, this will be a <code>ConstraintDefinition</code>, but other kinds of <code>Predicates</code> are also allowed, to permit use of <code>Predicates</code> from the Kernel Model Libraries.</p> + + + + + + + + + <p>The naming <code>Feature</code> of a <code>ConstraintUsage</code> that is owned by a <code>RequirementConstraintMembership</code> and has an <code>ownedReferenceSubsetting</code> is the <code>featureTarget</code> of the <code>referencedFeature</code> of that <code>ownedReferenceSubsetting</code>.</p> + + + + OCL2.0 + if owningFeatureMembership <> null and +owningFeatureMembership.oclIsKindOf(RequirementConstraintMembership) and +ownedReferenceSubsetting <> null then + ownedReferenceSubsetting.referencedFeature.featureTarget +else + self.oclAsType(OccurrenceUsage).namingFeature() +endif + + + + + + + + + + + <p>A <code>ConstraintUsage</code> is not model-level evaluable.</p> + + + + OCL2.0 + false + + + + + + + + + + + + + + + + <p>A <code>ConstraintDefinition</code> is an <code>OccurrenceDefinition</code> that is also a <code>Predicate</code> that defines a constraint that may be asserted to hold on a system or part of a system.</p> - - - - - <p>A <code>ConstraintDefinition</code> must directly or indirectly specialize the base <code>ConstraintDefinition</code> <em><code>Constraints::ConstraintCheck</code></em> from the Systems Model Library.</p> - - - OCL2.0 - specializesFromLibrary('Constraints::ConstraintCheck') - - - - - - - - - - - <p>The ConstraintUsages typed by a certain Predicate.</p> - - - - - - - - - - <p>The AssertConstraintUsages that have a certain ConstraintUsage as their <tt>assertedConstraint</tt>.</p> - - - - - - - - <p>An <code>AssertConstraintUsage</code> is a <code>ConstraintUsage</code> that is also an <code>Invariant</code> and, so, is asserted to be true (by default). Unless it is the <code>AssertConstraintUsage</code> itself, the asserted <code>ConstraintUsage</code> is related to the <code>AssertConstraintUsage</code> by a ReferenceSubsetting <code>Relationship</code>.</p> - - - - <p>If an <code>AssertConstraintUsage</code> has no <code>ownedReferenceSubsetting</code>, then its <code>assertedConstraint</code> is the <code>AssertConstraintUsage</code> itself. Otherwise, the <code>assertedConstraint</code> is the <code>featureTarget</code> of the <code>referencedFeature</code> of the <code>ownedReferenceSubsetting</code>, which must be a <code>ConstraintUsage</code>.</p> - - - OCL2.0 - assertedConstraint = - if referencedFeatureTarget() = null then self - else if referencedFeatureTarget().oclIsKindOf(ConstraintUsage) then - referencedFeatureTarget().oclAsType(ConstraintUsage) - else null - endif endif - - - - - <p>If a <code>AssertConstraintUsage</code> is negated, then it must directly or indirectly specialize the <code>ConstraintUsage</code> <code><em>Constraints::negatedConstraintChecks</em></code>. Otherwise, it must directly or indirectly specialize the <code>ConstraintUsage</code> <code><em>Constraints::assertedConstraintChecks</em></code>.</p> - - - OCL2.0 - if isNegated then - specializesFromLibrary('Constraints::negatedConstraintChecks') - else - specializesFromLibrary('Constraints::assertedConstraintChecks') - endif - - - - - <p>If an <code>AssertConstraintUsage</code> has an <code>ownedReferenceSubsetting</code>, then the <code>featureTarget</code> of its <code>referencedFeature</code> must be a </code>ConstraintUsage</code>.</p> - - - OCL2.0 - referencedFeaureTarget() <> null implies - referencedFeatureTarget().oclIsKindOf(ConstraintUsage) - - - - - - - - - <p>The <code>ConstraintUsage</code> to be performed by the <code>AssertConstraintUsage</code>. It is the <code>referenceFeature</code> of the <code>ownedReferenceSubsetting</code> for the <code>AssertConstraintUsage</code>, if there is one, and, otherwise, the <code>AssertConstraintUsage</code> itself.</p> - - - - - - - - - - - <p>The RequirementUsage that has a certain ConstraintUsage as a <code>requiredConstraint</code> (if any).</p> - - - - - - - - - - <p>The RequirementUsage that has a certain ConstraintUsage as an <cod>assumedConstraint</code> (if any).</p> - - - - - - - - - - <p>The SatifyRequirementUsages that have a certain RequirementUsage as their <tt>satisfiedRequirement</tt>.</p> - - - - - - - - <p>A <code>RequirementDefinition</code> is a <code>ConstraintDefinition</code> that defines a requirement used in the context of a specification as a constraint that a valid solution must satisfy. The specification is relative to a specified subject, possibly in collaboration with one or more external actors.</p> - - - - <p>The <code>texts</code> of a<code>RequirementDefinition</code> are the <code>bodies</code> of the <code>documentation</code> of the <code>RequirementDefinition</code>.</p> - - - OCL2.0 - text = documentation.body - - - - - <p>The <code>assumedConstraints</code> of a <code>RequirementDefinition</code> are the <code>ownedConstraints</code> of the <code>RequirementConstraintMemberships</code> of the <code>RequirementDefinition</code> with <code>kind = assumption</code>.</p> - - - OCL2.0 - assumedConstraint = ownedFeatureMembership-> - selectByKind(RequirementConstraintMembership)-> - select(kind = RequirementConstraintKind::assumption). - ownedConstraint - - - - - <p>The <code>requiredConstraints</code> of a <code>RequirementDefinition</code> are the <code>ownedConstraints</code> of the <code>RequirementConstraintMemberships</code> of the <code>RequirementDefinition</code> with <code>kind = requirement</code>.</p> - - - OCL2.0 - requiredConstraint = ownedFeatureMembership-> - selectByKind(RequirementConstraintMembership)-> - select(kind = RequirementConstraintKind::requirement). - ownedConstraint - - - - - <p>The <code>subjectParameter</code> of a <code>RequirementDefinition</code> is the <code>ownedSubjectParameter</code> of its <code>SubjectMembership</code> (if any).</p> - - - OCL2.0 - subjectParameter = - let subjects : OrderedSet(SubjectMembership) = - featureMembership->selectByKind(SubjectMembership) in - if subjects->isEmpty() then null - else subjects->first().ownedSubjectParameter - endif - - - - - <p>The <code>framedConcerns</code> of a <code>RequirementDefinition</code> are the <code>ownedConcerns</code> of the <code>FramedConcernMemberships</code> of the <code>RequirementDefinition</code>.</p> - - - OCL2.0 - framedConcern = featureMembership-> - selectByKind(FramedConcernMembership). - ownedConcern - - - - - <p>The <code>actorParameters</code> of a <code>RequirementDefinition</code> are the <code>ownedActorParameters</code> of the <code>ActorMemberships</code> of the <code>RequirementDefinition</code>.</p> - - - OCL2.0 - actorParameter = featureMembership-> - selectByKind(ActorMembership). - ownedActorParameter - - - - - <p>The <code>stakeHolderParameters</code> of a <code>RequirementDefinition</code> are the <code>ownedStakeholderParameters</code> of the <code>StakeholderMemberships</code> of the <code>RequirementDefinition</code>.</p> - - - OCL2.0 - stakeholderParameter = featureMembership-> - selectByKind(StakholderMembership). - ownedStakeholderParameter - - - - - <p>A <code>RequirementDefinition</code> must have at most one <code>featureMembership</code> that is a <code>SubjectMembership</code>.</p> - - - OCL2.0 - featureMembership-> - selectByKind(SubjectMembership)-> - size() <= 1 - - - - - <p>The <code>subjectParameter</code> of a <code>RequirementDefinition</code> must be its first <code>input</code>.</p> - - - OCL2.0 - input->notEmpty() and input->first() = subjectParameter - - - - - <p>A <code>RequirementDefinition</code> must directly or indirectly specialize the base <code>RequirementDefinition</code> <code><em>Requirements::RequirementCheck</em></code> from the Systems Model Library.</p> - - - OCL2.0 - specializesFromLibrary('Requirements::RequirementCheck') - - - - - - <p>An optional modeler-specified identifier for this <code>RequirementDefinition</code> (used, e.g., to link it to an original requirement text in some source document), which is the <code>declaredShortName</code> for the <code>RequirementDefinition</code>.</p> - - - - - - - - - <p>An optional textual statement of the requirement represented by this <code>RequirementDefinition</code>, derived from the <code>bodies</code> of the <code>documentation</code> of the <code>RequirementDefinition</code>.</p> - - - - - - - - - <p>The <code>parameter</code> of this <code>RequirementDefinition</code> that represents its subject.</p> - - - - - - - - - <p>The <code>parameters</code> of this <code>RequirementDefinition</code> that represent actors involved in the requirement.</p> - - - - - - - - - <p>The <code>parameters</code> of this <code>RequirementDefinition</code> that represent stakeholders for th requirement.</p> - - - - - - - - - <p>The owned <code>ConstraintUsages</code> that represent assumptions of this <code>RequirementDefinition</code>, which are the <code>ownedConstraints</code> of the <code>RequirementConstraintMemberships</code> of the <code>RequirementDefinition</code> with <code>kind = assumption</code>.</p> - - - - - - - - <p>The owned <code>ConstraintUsages</code> that represent requirements of this <code>RequirementDefinition</code>, derived as the <code>ownedConstraints</code> of the <code>RequirementConstraintMemberships</code> of the <code>RequirementDefinition</code> with <code>kind</code> = <code>requirement</code>.</p> - - - - - - - - <p>The <code>ConcernUsages</code> framed by this <code>RequirementDefinition</code>, which are the <code>ownedConcerns</code> of all <code>FramedConcernMemberships</code> of the <code>RequirementDefinition</code>.</p> - - - - - - - - - <p>The SatisfyRequirementUsages that have a certain Feature as their <tt>satisfyingFeature</tt>.</p> - - - - - - - - - <p>The RequirementUsages typed by a certain RequirementDefinition.</p> - - - - - - - - - <p>The RequirementDefinition that has a certain ConstraintUsage as an <code>assumedConstraint</code> (if any).</p> - - - - - - - - - <p>A <code>SatisfyRequirementUsage</code> is an <code>AssertConstraintUsage</code> that asserts, by default, that a satisfied <code>RequirementUsage</code> is true for a specific <code>satisfyingFeature</code>, or, if <code>isNegated = true</code>, that the <code>RequirementUsage</code> is false. The satisfied <code>RequirementUsage</code> is related to the <code>SatisfyRequirementUsage</code> by a <code>ReferenceSubsetting</code> <code>Relationship</code>.</p> - - - - <p>The <code>satisfyingFeature</code> of a <code>SatisfyRequirementUsage</code> is the <code>Feature</code> to which the <code>subjectParameter</code> is bound.</p> - - - OCL2.0 - satisfyingFeature = - let bindings: BindingConnector = ownedMember-> - selectByKind(BindingConnector)-> - select(b | b.relatedElement->includes(subjectParameter)) in - if bindings->isEmpty() or - bindings->first().relatedElement->exits(r | r <> subjectParameter) - then null - else bindings->first().relatedElement->any(r | r <> subjectParameter) - endif - - - - - <p>A <code>SatisfyRequirementUsage</code> must have exactly one <code>ownedMember</code> that is a <code>BindingConnector</code> between its <code>subjectParameter</code> and some <code>Feature</code> other than the <code>subjectParameter</code>.</p> - - - OCL2.0 - ownedMember->selectByKind(BindingConnector)-> - select(b | - b.relatedElement->includes(subjectParameter) and - b.relatedElement->exists(r | r <> subjectParameter))-> - size() = 1 - - - - - <p>If a <code>SatisfyRequirementUsage</code> has an <code>ownedReferenceSubsetting</code>, then the <code>featureTarget</code> of its <code>referencedFeature</code> must be a <code>RequirementUsage</code>.</p> - - - OCL2.0 - referencedFeatureTarget() <> null implies - referencedFeatureTarget().oclIsKindOf(RequirementUsage) - - - - - <p>If a <code>SatisfyRequirementUsage</code> is negated, then it must directly or indirectly specialize the <code>RequirementUsage</code> <em><code>Requirements::notSatisfiedRequirementChecks</code></em>. Otherwise, it must directly or indirectly specialize the <code>RequirementUsage</code> <em><code>Requirements::satisfiedRequirementChecks</code></em>.</p> - - - OCL2.0 - if isNegated then - specializesFromLibrary('Requirements::notSatisfiedRequirementChecks') - else - specializesFromLibrary('Requirements::satisfiedRequirementChecks') - endif - - - - - - - <p>The <code>RequirementUsage</code> that is satisfied by the <code>satisfyingSubject</code> of this <code>SatisfyRequirementUsage</code>. It is the <code>assertedConstraint</code> of the <code>SatisfyRequirementUsage</code> considered as an <code>AssertConstraintUsage</code>, which must be a <code>RequirementUsage</code>.</p> - - - - - - - <p>The <code>Feature</code> that represents the actual subject that is asserted to satisfy the <code>satisfiedRequirement</code>. The <code>satisfyingFeature</code> is bound to the <code>subjectParameter</code> of the <code>SatisfyRequirementUsage</code>.</p> - - - - - - - - - <p>A <code>RequirementUsage</code> is a <code>Usage</code> of a <code>RequirementDefinition</code>.</p> - - - - <p>The <code>actorParameters</code> of a <code>RequirementUsage</code> are the <code>ownedActorParameters</code> of the <code>ActorMemberships</code> of the <code>RequirementUsage</code>.</p> - - - OCL2.0 - actorParameter = featureMembership-> - selectByKind(ActorMembership). - ownedActorParameter - - - - - <p>The <code>assumedConstraints</code> of a <code>RequirementUsage</code> are the <code>ownedConstraints</code> of the <code>RequirementConstraintMemberships</code> of the <code>RequirementDefinition</code> with <code>kind = assumption</code>.</p> - - - OCL2.0 - assumedConstraint = ownedFeatureMembership-> - selectByKind(RequirementConstraintMembership)-> - select(kind = RequirementConstraintKind::assumption). - ownedConstraint - - - - - <p>The <code>framedConcerns</code> of a <code>RequirementUsage</code> are the <code>ownedConcerns</code> of the <code>FramedConcernMemberships</code> of the <code>RequirementUsage</code>.</p> - - - OCL2.0 - framedConcern = featureMembership-> - selectByKind(FramedConcernMembership). - ownedConcern - - - - - <p>The <code>requiredConstraints</code> of a <code>RequirementUsage</code> are the <code>ownedConstraints</code> of the <code>RequirementConstraintMemberships</code> of the <code>RequirementUsage</code> with <code>kind = requirement</code>.</p> - - - OCL2.0 - requiredConstraint = ownedFeatureMembership-> - selectByKind(RequirementConstraintMembership)-> - select(kind = RequirementConstraintKind::requirement). - ownedConstraint - - - - - <p>The <code>stakeHolderParameters</code> of a <code>RequirementUsage</code> are the <code>ownedStakeholderParameters</code> of the <code>StakeholderMemberships</code> of the <code>RequirementUsage</code>.</p> - - - OCL2.0 - stakeholderParameter = featureMembership-> - selectByKind(AStakholderMembership). - ownedStakeholderParameter - - - - - <p>The <code>subjectParameter</code> of a <code>RequirementUsage</code> is the <code>ownedSubjectParameter</code> of its <code>SubjectMembership</code> (if any).</p> - - - OCL2.0 - subjectParameter = - let subjects : OrderedSet(SubjectMembership) = - featureMembership->selectByKind(SubjectMembership) in - if subjects->isEmpty() then null - else subjects->first().ownedSubjectParameter - endif - - - - - <p>The <code>texts</code> of a<code>RequirementUsage</code> are the <code>bodies</code> of the <code>documentation</code> of the <code>RequirementUsage</code>.</p> - - - OCL2.0 - text = documentation.body - - - - - <p>A <code>RequirementDefinition</code> must have at most one <code>featureMembership</code> that is a <code>SubjectMembership</code>.</p> - - - OCL2.0 - featureMembership-> - selectByKind(SubjectMembership)-> - size() <= 1 - - - - - <p>The <code>subjectParameter</code> of a <code>RequirementUsage</code> must be its first <code>input</code>.</p> - - - OCL2.0 - input->notEmpty() and input->first() = subjectParameter - - - - - <p>A <code>RequirementUsage</code> must directly or indirectly specialize the base <code>RequirementUsage</code> <em><code>Requirements::requirementChecks</code></em> from the Systems Model Library.</p> - - - OCL2.0 - specializesFromLibrary('Requirements::requirementChecks') - - - - - <p>A composite <code>RequirementUsage</code> whose <code>owningType</code> is a <code>RequirementDefinition</code> or ,code>RequirementUsage</code> must directly or indirectly specialize the <code>RequirementUsage</code> <em><code>Requirements::RequirementCheck::subrequirements</code></em> from the Systems Model Library.</p> - - - OCL2.0 - isComposite and owningType <> null and - (owningType.oclIsKindOf(RequirementDefinition) or - owningType.oclIsKindOf(RequirementUsage)) implies - specializesFromLibrary('Requirements::RequirementCheck::subrequirements') - - - - - <p>A <code>RequirementUsage</code> whose <code>owningFeatureMembership</code> is a <code>ObjectiveMembership</code> must redefine the <code>objectiveRequirement</code> of each <code>CaseDefinition</code> or <code>CaseUsage</code> that is specialized by the <code>owningType</code> of the <code>RequirementUsage</code>.</p> - - - OCL2.0 - owningfeatureMembership <> null and - owningfeatureMembership.oclIsKindOf(ObjectiveMembership) implies - owningType.ownedSpecialization.general->forAll(gen | - (gen.oclIsKindOf(CaseDefinition) implies - redefines(gen.oclAsType(CaseDefinition).objectiveRequirement)) and - (gen.oclIsKindOf(CaseUsage) implies - redefines(gen.oclAsType(CaseUsage).objectiveRequirement)) - - - - - <p>A <code>RequirementUsage</code> whose <code>owningFeatureMembership</code> is a <code>RequirementVerificationMembership</code> must directly or indirectly specialize the <code>RequirementUsage</code> <code><em>VerificationCases::VerificationCase::obj::requirementVerifications</em></code>.</p> - - - OCL2.0 - owningFeatureMembership <> null and - owningFeatureMembership.oclIsKindOf(RequirementVerificationMembership) implies - specializesFromLibrary('VerificationCases::VerificationCase::obj::requirementVerifications') - - - - - - <p>The <code>RequirementDefinition</code> that is the single <code>definition</code> of this <code>RequirementUsage</code>.</p> - - - - - - - <p>An optional modeler-specified identifier for this <code>RequirementUsage</code> (used, e.g., to link it to an original requirement text in some source document), which is the <code>declaredShortName</code> for the <code>RequirementUsage</code>.</p> - - - - - - - - - <p>An optional textual statement of the requirement represented by this <code>RequirementUsage</code>, derived from the <code>bodies<code> of the <code>documentation</code> of the <code>RequirementUsage</code>.</p> - - - - - - - - <p>The owned <code>ConstraintUsages</code> that represent requirements of this <code>RequirementUsage</code>, which are the <code>ownedConstraints</code> of the <code>RequirementConstraintMemberships</code> of the <code>RequirementUsage</code> with <code>kind</code> = <code>requirement</code>.</p> - - - - - - - - <p>The owned <code>ConstraintUsages</code> that represent assumptions of this <code>RequirementUsage</code>, derived as the <code>ownedConstraints</code> of the <code>RequirementConstraintMemberships</code> of the <code>RequirementUsage</code> with <code>kind</code> = <code>assumption</code>.</p> - - - - - - - - <p>The <code>parameter</code> of this <code>RequirementUsage</code> that represents its subject.</p> - - - - - - - - - <p>The <code>ConcernUsages</code> framed by this <code>RequirementUsage</code>, which are the <code>ownedConcerns</code> of all <code>FramedConcernMemberships</code> of the <code>RequirementUsage</code>.</p> - - - - - - - <p>The <code>parameters</code> of this <code>RequirementUsage</code> that represent actors involved in the requirement.</p> - - - - - - - - - <p>The <code>parameters</code> of this <code>RequirementUsage</code> that represent stakeholders for the requirement.</p> - - - - - - - - - - - <p>The RequirementDefinition that has a certain ConstraintUsage as a <code>requiredConstraint</code> (if any).</p> - - - - - - - - - - <p>The RequirementConstraintMembership that owns a certain ConstraintUsage as its <code>ownedConstraint</code>.</p> - - - - - - - - - <p>A <code>RequirementConstraintMembership</code> is a <code>FeatureMembership</code> for an assumed or required <code>ConstraintUsage</code> of a <code>RequirementDefinition</code> or <code>RequirementUsage<code>.</p> - - - - <p>The <code>referencedConstraint</code> of a <code>RequirementConstraintMembership</code> is the <code>featureTarget</code> of the <code>referencedFeature</code> of the <code>ownedReferenceSubsetting</code> of the <code>ownedConstraint</code>, if there is one, and, otherwise, the <code>ownedConstraint</code> itself.</p> - - - OCL2.0 - referencedConstraint = - let referencedFeature : Feature = - ownedConstraint.referencedFeatureTarget() in - if referencedFeature = null then ownedConstraint - else if referencedFeature.oclIsKindOf(ConstraintUsage) then - refrencedFeature.oclAsType(ConstraintUsage) - else null - endif endif - - - - - <p>The <code>owningType</code> of a <code>RequirementConstraintMembership</code> must be a <code>RequirementDefinition</code> or a <code>RequirementUsage</code>.</p> - - - OCL2.0 - owningType.oclIsKindOf(RequirementDefinition) or - owningType.oclIsKindOf(RequirementUsage) - - - - - <p>The <code>ownedConstraint</code> of a <code>RequirementConstraintMembership</code> must be composite.</p> - - - OCL2.0 - ownedConstraint.isComposite - - - - - - - - <p>Whether the <code>RequirementConstraintMembership</code> is for an assumed or required <code>ConstraintUsage</code>.</p> - - - - - <p>The <code>ConstraintUsage</code> that is the <code>ownedMemberFeature</code> of this <code>RequirementConstraintMembership</code>.</p> - - - - - - - - <p> The <code>ConstraintUsage</code> that is referenced through this <code>RequirementConstraintMembership</code>. It is the <code>referencedFeature</code> of the <code>ownedReferenceSubsetting</code> of the <code>ownedConstraint</code>, if there is one, and, otherwise, the <code>ownedConstraint</code> itself.</p> - - - - - - - - <p>A <code>RequirementConstraintKind</code> indicates whether a <code>ConstraintUsage</code> is an assumption or a requirement in a <code>RequirementDefinition</code> or <code>RequirementUsage</code>.</p> - - - - <p>Indicates that a member <code>ConstraintUsage</code> of a <code>RequirementDefinition</code> or <code>RequirementUsage</code> represents an assumption.</p> - - - - - <p>Indicates that a member <code>ConstraintUsage</code> of a <code>RequirementDefinition</code> or <code>RequirementUsage</code>represents an requirement.</p> - - - - - - - <p>The RequirementDefinitions that have a certain Usage as their <code>subjectParameter</code>.</p> - - - - - - - - - - - <p>The RequirementUsages that have a certain Usage as their <code>subjectParameter</code>.</p> - - - - - - - - - - <p>A <code>SubjectMembership</code> is a <code>ParameterMembership</code> that indicates that its <code>ownedSubjectParameter</code> is the subject of its <code>owningType</code>. The <code>owningType</code> of a <code>SubjectMembership</code> must be a <code>RequirementDefinition</code>, <code>RequirementUsage</code>, <code>CaseDefinition</code>, or <code>CaseUsage</code>.</p> - - - - <p>The <code>owningType</code> of a <code>SubjectMembership</code> must be a <code>RequirementDefinition</code>, <code>RequirementUsage</code>, <code>CaseDefinition</code>, or <code>CaseUsage</code>.</p> - - - OCL2.0 - owningType.oclIsType(RequirementDefinition) or - owningType.oclIsType(RequiremenCaseRequirementDefinition) or - owningType.oclIsType(CaseDefinition) or - owningType.oclIsType(CaseUsage) - - - - - - - - - <p>The <code>Usage</code< that is the <code>ownedMemberParameter</code> of this <code>SubjectMembership</code>.</p> - - - - - - - - - - <p>The SubjectMembership that owns a particular Parameter as its <code>ownedSubjectParameter</code>.</p> - - - - - - - - - - <p>The RequirementDefinition that addresses a certain <code>addressedConcern</code>.</p> - - - - - - - - - <p>The ConcernUsages that are typed by a certain <code>concernDefinition</code>.</p> - - - - - - - - - <p>The AddressedConcernMembership that has a certain ConcernUsage as its <code>addressedConcern</code>.</p> - - - - - - - - <p>A <code>FramedConcernMembership</code> is a <code>RequirementConstraintMembership</code> for a framed <code>ConcernUsage</code> of a <code>RequirementDefinition</code> or <code>RequirementUsage</code>.</p> - - - - <p>A <code>FramedConcernMembership</code> must have <code>kind = requirement</code>.</p> - - - OCL2.0 - kind = RequirementConstraintKind::requirement - - - - - - <p>The <code>kind</code> of an <code>FramedConcernMembership</code> must be <code>requirement</code>.</p> - - - - - - <p>The <code>ConcernUsage</code> that is the <code>ownedConstraint</code> of this <code>FramedConcernMembership</code>.</p> - - - - - - - <p> The <code>ConcernUsage</code> that is referenced through this <code>FramedConcernMembership</code>. It is the <code>referencedConstraint</code> of the <code>FramedConcernMembership</code> considered as a <code>RequirementConstraintMembership</code>, which must be a <code>ConcernUsage</code>.</p> - - - - - - - - <p>A <code>ConcernDefinition</code> is a <code>RequirementDefinition</code> that one or more stakeholders may be interested in having addressed. These stakeholders are identified by the <code>ownedStakeholders</code>of the <code>ConcernDefinition</code>.</p> - - - - - <p>A <code>ConcernDefinition</code> must directly or indirectly specialize the base <code>ConcernDefinition</code> <em><code>Requirements::ConcernCheck</code></em> from the Systems Model Library.</p> - - - OCL2.0 - specializesFromLibrary('Requirements::ConcernCheck') - - - - - - - - <p>The RequirementConstraintMembership that has a certain ConstraintUsage as its <code>referencedConstraint</code>.</p> - - - - - - - - - <p>The AddressedConcernMembership that owns a certain ConcernUsage as its <code>ownedConcern</code>.</p> - - - - - - - - <p>A <code>ConcernUsage</code> is a <code>Usage</code> of a <code>ConcernDefinition</code>.</p> + + + + + <p>A <code>ConstraintDefinition</code> must directly or indirectly specialize the base <code>ConstraintDefinition</code> <em><code>Constraints::ConstraintCheck</code></em> from the Systems Model Library.</p> + + + OCL2.0 + specializesFromLibrary('Constraints::ConstraintCheck') + + + + + + + + + + + <p>The ConstraintUsages typed by a certain Predicate.</p> + + + + + + + + + + <p>The AssertConstraintUsages that have a certain ConstraintUsage as their <tt>assertedConstraint</tt>.</p> + + + + + + + + <p>An <code>AssertConstraintUsage</code> is a <code>ConstraintUsage</code> that is also an <code>Invariant</code> and, so, is asserted to be true (by default). Unless it is the <code>AssertConstraintUsage</code> itself, the asserted <code>ConstraintUsage</code> is related to the <code>AssertConstraintUsage</code> by a ReferenceSubsetting <code>Relationship</code>.</p> + + + + <p>If an <code>AssertConstraintUsage</code> has no <code>ownedReferenceSubsetting</code>, then its <code>assertedConstraint</code> is the <code>AssertConstraintUsage</code> itself. Otherwise, the <code>assertedConstraint</code> is the <code>featureTarget</code> of the <code>referencedFeature</code> of the <code>ownedReferenceSubsetting</code>, which must be a <code>ConstraintUsage</code>.</p> + + + OCL2.0 + assertedConstraint = + if referencedFeatureTarget() = null then self + else if referencedFeatureTarget().oclIsKindOf(ConstraintUsage) then + referencedFeatureTarget().oclAsType(ConstraintUsage) + else null + endif endif + + + + + <p>If a <code>AssertConstraintUsage</code> is negated, then it must directly or indirectly specialize the <code>ConstraintUsage</code> <code><em>Constraints::negatedConstraintChecks</em></code>. Otherwise, it must directly or indirectly specialize the <code>ConstraintUsage</code> <code><em>Constraints::assertedConstraintChecks</em></code>.</p> + + + OCL2.0 + if isNegated then + specializesFromLibrary('Constraints::negatedConstraintChecks') +else + specializesFromLibrary('Constraints::assertedConstraintChecks') +endif + + + + + <p>If an <code>AssertConstraintUsage</code> has an <code>ownedReferenceSubsetting</code>, then the <code>featureTarget</code> of its <code>referencedFeature</code> must be a </code>ConstraintUsage</code>.</p> + + + OCL2.0 + referencedFeatureTarget() <> null implies + referencedFeatureTarget().oclIsKindOf(ConstraintUsage) + + + + + + + + + <p>The <code>ConstraintUsage</code> to be performed by the <code>AssertConstraintUsage</code>. It is the <code>referenceFeature</code> of the <code>ownedReferenceSubsetting</code> for the <code>AssertConstraintUsage</code>, if there is one, and, otherwise, the <code>AssertConstraintUsage</code> itself.</p> + + + + + + + + + + + <p>The RequirementUsage that has a certain ConstraintUsage as a <code>requiredConstraint</code> (if any).</p> + + + + + + + + + + <p>The RequirementUsage that has a certain ConstraintUsage as an <cod>assumedConstraint</code> (if any).</p> + + + + + + + + + + <p>The SatifyRequirementUsages that have a certain RequirementUsage as their <tt>satisfiedRequirement</tt>.</p> + + + + + + + + <p>A <code>RequirementDefinition</code> is a <code>ConstraintDefinition</code> that defines a requirement used in the context of a specification as a constraint that a valid solution must satisfy. The specification is relative to a specified subject, possibly in collaboration with one or more external actors.</p> + + + + <p>The <code>texts</code> of a<code>RequirementDefinition</code> are the <code>bodies</code> of the <code>documentation</code> of the <code>RequirementDefinition</code>.</p> + + + OCL2.0 + text = documentation.body + + + + + <p>The <code>assumedConstraints</code> of a <code>RequirementDefinition</code> are the <code>ownedConstraints</code> of the <code>RequirementConstraintMemberships</code> of the <code>RequirementDefinition</code> with <code>kind = assumption</code>.</p> + + + OCL2.0 + assumedConstraint = ownedFeatureMembership-> + selectByKind(RequirementConstraintMembership)-> + select(kind = RequirementConstraintKind::assumption). + ownedConstraint + + + + + <p>The <code>requiredConstraints</code> of a <code>RequirementDefinition</code> are the <code>ownedConstraints</code> of the <code>RequirementConstraintMemberships</code> of the <code>RequirementDefinition</code> with <code>kind = requirement</code>.</p> + + + OCL2.0 + requiredConstraint = ownedFeatureMembership-> + selectByKind(RequirementConstraintMembership)-> + select(kind = RequirementConstraintKind::requirement). + ownedConstraint + + + + + <p>The <code>subjectParameter</code> of a <code>RequirementDefinition</code> is the <code>ownedSubjectParameter</code> of its <code>SubjectMembership</code> (if any).</p> + + + OCL2.0 + subjectParameter = + let subjects : OrderedSet(SubjectMembership) = + featureMembership->selectByKind(SubjectMembership) in + if subjects->isEmpty() then null + else subjects->first().ownedSubjectParameter + endif + + + + + <p>The <code>framedConcerns</code> of a <code>RequirementDefinition</code> are the <code>ownedConcerns</code> of the <code>FramedConcernMemberships</code> of the <code>RequirementDefinition</code>.</p> + + + OCL2.0 + framedConcern = featureMembership-> + selectByKind(FramedConcernMembership). + ownedConcern + + + + + <p>The <code>actorParameters</code> of a <code>RequirementDefinition</code> are the <code>ownedActorParameters</code> of the <code>ActorMemberships</code> of the <code>RequirementDefinition</code>.</p> + + + OCL2.0 + actorParameter = featureMembership-> + selectByKind(ActorMembership). + ownedActorParameter + + + + + <p>The <code>stakeHolderParameters</code> of a <code>RequirementDefinition</code> are the <code>ownedStakeholderParameters</code> of the <code>StakeholderMemberships</code> of the <code>RequirementDefinition</code>.</p> + + + OCL2.0 + stakeholderParameter = featureMembership-> + selectByKind(StakholderMembership). + ownedStakeholderParameter + + + + + <p>A <code>RequirementDefinition</code> must have at most one <code>featureMembership</code> that is a <code>SubjectMembership</code>.</p> + + + OCL2.0 + featureMembership-> + selectByKind(SubjectMembership)-> + size() <= 1 + + + + + <p>The <code>subjectParameter</code> of a <code>RequirementDefinition</code> must be its first <code>input</code>.</p> + + + OCL2.0 + input->notEmpty() and input->first() = subjectParameter + + + + + <p>A <code>RequirementDefinition</code> must directly or indirectly specialize the base <code>RequirementDefinition</code> <code><em>Requirements::RequirementCheck</em></code> from the Systems Model Library.</p> + + + OCL2.0 + specializesFromLibrary('Requirements::RequirementCheck') + + + + + + <p>An optional modeler-specified identifier for this <code>RequirementDefinition</code> (used, e.g., to link it to an original requirement text in some source document), which is the <code>declaredShortName</code> for the <code>RequirementDefinition</code>.</p> + + + + + + + + + <p>An optional textual statement of the requirement represented by this <code>RequirementDefinition</code>, derived from the <code>bodies</code> of the <code>documentation</code> of the <code>RequirementDefinition</code>.</p> + + + + + + + + + <p>The <code>parameter</code> of this <code>RequirementDefinition</code> that represents its subject.</p> + + + + + + + + + <p>The <code>parameters</code> of this <code>RequirementDefinition</code> that represent actors involved in the requirement.</p> + + + + + + + + + <p>The <code>parameters</code> of this <code>RequirementDefinition</code> that represent stakeholders for the requirement.</p> + + + + + + + + + <p>The owned <code>ConstraintUsages</code> that represent assumptions of this <code>RequirementDefinition</code>, which are the <code>ownedConstraints</code> of the <code>RequirementConstraintMemberships</code> of the <code>RequirementDefinition</code> with <code>kind = assumption</code>.</p> + + + + + + + + <p>The owned <code>ConstraintUsages</code> that represent requirements of this <code>RequirementDefinition</code>, derived as the <code>ownedConstraints</code> of the <code>RequirementConstraintMemberships</code> of the <code>RequirementDefinition</code> with <code>kind</code> = <code>requirement</code>.</p> + + + + + + + + <p>The <code>ConcernUsages</code> framed by this <code>RequirementDefinition</code>, which are the <code>ownedConcerns</code> of all <code>FramedConcernMemberships</code> of the <code>RequirementDefinition</code>.</p> + + + + + + + + + <p>The SatisfyRequirementUsages that have a certain Feature as their <tt>satisfyingFeature</tt>.</p> + + + + + + + + + <p>The RequirementUsages typed by a certain RequirementDefinition.</p> + + + + + + + + + <p>The RequirementDefinition that has a certain ConstraintUsage as an <code>assumedConstraint</code> (if any).</p> + + + + + + + + + <p>A <code>SatisfyRequirementUsage</code> is an <code>AssertConstraintUsage</code> that asserts, by default, that a satisfied <code>RequirementUsage</code> is true for a specific <code>satisfyingFeature</code>, or, if <code>isNegated = true</code>, that the <code>RequirementUsage</code> is false. The satisfied <code>RequirementUsage</code> is related to the <code>SatisfyRequirementUsage</code> by a <code>ReferenceSubsetting</code> <code>Relationship</code>.</p> + + + + <p>The <code>satisfyingFeature</code> of a <code>SatisfyRequirementUsage</code> is the <code>Feature</code> to which the <code>subjectParameter</code> is bound.</p> + + + OCL2.0 + satisfyingFeature = + let bindings: BindingConnector = ownedMember-> + selectByKind(BindingConnector)-> + select(b | b.relatedElement->includes(subjectParameter)) in + if bindings->isEmpty() or + not bindings->first().relatedElement->exits(r | r <> subjectParameter) + then null + else bindings->first().relatedElement->any(r | r <> subjectParameter) + endif + + + + + <p>A <code>SatisfyRequirementUsage</code> must have exactly one <code>ownedMember</code> that is a <code>BindingConnector</code> between its <code>subjectParameter</code> and some <code>Feature</code> other than the <code>subjectParameter</code>.</p> + + + OCL2.0 + ownedMember->selectByKind(BindingConnector)-> + select(b | + b.relatedElement->includes(subjectParameter) and + b.relatedElement->exists(r | r <> subjectParameter))-> + size() = 1 + + + + + <p>If a <code>SatisfyRequirementUsage</code> has an <code>ownedReferenceSubsetting</code>, then the <code>featureTarget</code> of its <code>referencedFeature</code> must be a <code>RequirementUsage</code>.</p> + + + OCL2.0 + referencedFeatureTarget() <> null implies + referencedFeatureTarget().oclIsKindOf(RequirementUsage) + + + + + <p>If a <code>SatisfyRequirementUsage</code> is negated, then it must directly or indirectly specialize the <code>RequirementUsage</code> <em><code>Requirements::notSatisfiedRequirementChecks</code></em>. Otherwise, it must directly or indirectly specialize the <code>RequirementUsage</code> <em><code>Requirements::satisfiedRequirementChecks</code></em>.</p> + + + OCL2.0 + if isNegated then + specializesFromLibrary('Requirements::notSatisfiedRequirementChecks') +else + specializesFromLibrary('Requirements::satisfiedRequirementChecks') +endif + + + + + + + <p>The <code>RequirementUsage</code> that is satisfied by the <code>satisfyingSubject</code> of this <code>SatisfyRequirementUsage</code>. It is the <code>assertedConstraint</code> of the <code>SatisfyRequirementUsage</code> considered as an <code>AssertConstraintUsage</code>, which must be a <code>RequirementUsage</code>.</p> + + + + + + + <p>The <code>Feature</code> that represents the actual subject that is asserted to satisfy the <code>satisfiedRequirement</code>. The <code>satisfyingFeature</code> is bound to the <code>subjectParameter</code> of the <code>SatisfyRequirementUsage</code>.</p> + + + + + + + + + <p>A <code>RequirementUsage</code> is a <code>Usage</code> of a <code>RequirementDefinition</code>.</p> + + + + <p>The <code>actorParameters</code> of a <code>RequirementUsage</code> are the <code>ownedActorParameters</code> of the <code>ActorMemberships</code> of the <code>RequirementUsage</code>.</p> + + + OCL2.0 + actorParameter = featureMembership-> + selectByKind(ActorMembership). + ownedActorParameter + + + + + <p>The <code>assumedConstraints</code> of a <code>RequirementUsage</code> are the <code>ownedConstraints</code> of the <code>RequirementConstraintMemberships</code> of the <code>RequirementDefinition</code> with <code>kind = assumption</code>.</p> + + + OCL2.0 + assumedConstraint = ownedFeatureMembership-> + selectByKind(RequirementConstraintMembership)-> + select(kind = RequirementConstraintKind::assumption). + ownedConstraint + + + + + <p>The <code>framedConcerns</code> of a <code>RequirementUsage</code> are the <code>ownedConcerns</code> of the <code>FramedConcernMemberships</code> of the <code>RequirementUsage</code>.</p> + + + OCL2.0 + framedConcern = featureMembership-> + selectByKind(FramedConcernMembership). + ownedConcern + + + + + <p>The <code>requiredConstraints</code> of a <code>RequirementUsage</code> are the <code>ownedConstraints</code> of the <code>RequirementConstraintMemberships</code> of the <code>RequirementUsage</code> with <code>kind = requirement</code>.</p> + + + OCL2.0 + requiredConstraint = ownedFeatureMembership-> + selectByKind(RequirementConstraintMembership)-> + select(kind = RequirementConstraintKind::requirement). + ownedConstraint + + + + + <p>The <code>stakeHolderParameters</code> of a <code>RequirementUsage</code> are the <code>ownedStakeholderParameters</code> of the <code>StakeholderMemberships</code> of the <code>RequirementUsage</code>.</p> + + + OCL2.0 + stakeholderParameter = featureMembership-> + selectByKind(AStakholderMembership). + ownedStakeholderParameter + + + + + <p>The <code>subjectParameter</code> of a <code>RequirementUsage</code> is the <code>ownedSubjectParameter</code> of its <code>SubjectMembership</code> (if any).</p> + + + OCL2.0 + subjectParameter = + let subjects : OrderedSet(SubjectMembership) = + featureMembership->selectByKind(SubjectMembership) in + if subjects->isEmpty() then null + else subjects->first().ownedSubjectParameter + endif + + + + + <p>The <code>texts</code> of a<code>RequirementUsage</code> are the <code>bodies</code> of the <code>documentation</code> of the <code>RequirementUsage</code>.</p> + + + OCL2.0 + text = documentation.body + + + + + <p>A <code>RequirementDefinition</code> must have at most one <code>featureMembership</code> that is a <code>SubjectMembership</code>.</p> + + + OCL2.0 + featureMembership-> + selectByKind(SubjectMembership)-> + size() <= 1 + + + + + <p>The <code>subjectParameter</code> of a <code>RequirementUsage</code> must be its first <code>input</code>.</p> + + + OCL2.0 + input->notEmpty() and input->first() = subjectParameter + + + + + <p>A <code>RequirementUsage</code> must directly or indirectly specialize the base <code>RequirementUsage</code> <em><code>Requirements::requirementChecks</code></em> from the Systems Model Library.</p> + + + OCL2.0 + specializesFromLibrary('Requirements::requirementChecks') + + + + + <p>A composite <code>RequirementUsage</code> whose <code>owningType</code> is a <code>RequirementDefinition</code> or <code>RequirementUsage</code> must directly or indirectly specialize the <code>RequirementUsage</code> <em><code>Requirements::RequirementCheck::subrequirements</code></em> from the Systems Model Library.</p> + + + OCL2.0 + isComposite and owningType <> null and + (owningType.oclIsKindOf(RequirementDefinition) or + owningType.oclIsKindOf(RequirementUsage)) implies + specializesFromLibrary('Requirements::RequirementCheck::subrequirements') + + + + + <p>A <code>RequirementUsage</code> whose <code>owningFeatureMembership</code> is a <code>ObjectiveMembership</code> must redefine the <code>objectiveRequirement</code> of each <code>CaseDefinition</code> or <code>CaseUsage</code> that is specialized by the <code>owningType</code> of the <code>RequirementUsage</code>.</p> + + + OCL2.0 + owningfeatureMembership <> null and +owningfeatureMembership.oclIsKindOf(ObjectiveMembership) implies + owningType.ownedSpecialization.general->forAll(gen | + (gen.oclIsKindOf(CaseDefinition) implies + redefines(gen.oclAsType(CaseDefinition).objectiveRequirement)) and + (gen.oclIsKindOf(Feature) and + gen.oclAsType(Feature).featureTarget.oclIsKindOf(CaseUsage) implies + redefines(gen.oclAsType(Feature).featureTarget. + oclAsType(CaseUsage).objectiveRequirement)) + + + + + <p>A <code>RequirementUsage</code> whose <code>owningFeatureMembership</code> is a <code>RequirementVerificationMembership</code> must directly or indirectly specialize the <code>RequirementUsage</code> <code><em>VerificationCases::VerificationCase::obj::requirementVerifications</em></code>.</p> + + + OCL2.0 + owningFeatureMembership <> null and +owningFeatureMembership.oclIsKindOf(RequirementVerificationMembership) implies + specializesFromLibrary('VerificationCases::VerificationCase::obj::requirementVerifications') + + + + + + <p>The <code>RequirementDefinition</code> that is the single <code>definition</code> of this <code>RequirementUsage</code>.</p> + + + + + + + <p>An optional modeler-specified identifier for this <code>RequirementUsage</code> (used, e.g., to link it to an original requirement text in some source document), which is the <code>declaredShortName</code> for the <code>RequirementUsage</code>.</p> + + + + + + + + + <p>An optional textual statement of the requirement represented by this <code>RequirementUsage</code>, derived from the <code>bodies<code> of the <code>documentation</code> of the <code>RequirementUsage</code>.</p> + + + + + + + + <p>The owned <code>ConstraintUsages</code> that represent requirements of this <code>RequirementUsage</code>, which are the <code>ownedConstraints</code> of the <code>RequirementConstraintMemberships</code> of the <code>RequirementUsage</code> with <code>kind</code> = <code>requirement</code>.</p> + + + + + + + + <p>The owned <code>ConstraintUsages</code> that represent assumptions of this <code>RequirementUsage</code>, derived as the <code>ownedConstraints</code> of the <code>RequirementConstraintMemberships</code> of the <code>RequirementUsage</code> with <code>kind</code> = <code>assumption</code>.</p> + + + + + + + + <p>The <code>parameter</code> of this <code>RequirementUsage</code> that represents its subject.</p> + + + + + + + + + <p>The <code>ConcernUsages</code> framed by this <code>RequirementUsage</code>, which are the <code>ownedConcerns</code> of all <code>FramedConcernMemberships</code> of the <code>RequirementUsage</code>.</p> + + + + + + + <p>The <code>parameters</code> of this <code>RequirementUsage</code> that represent actors involved in the requirement.</p> + + + + + + + + + <p>The <code>parameters</code> of this <code>RequirementUsage</code> that represent stakeholders for the requirement.</p> + + + + + + + + + + + <p>The RequirementDefinition that has a certain ConstraintUsage as a <code>requiredConstraint</code> (if any).</p> + + + + + + + + + + <p>The RequirementConstraintMembership that owns a certain ConstraintUsage as its <code>ownedConstraint</code>.</p> + + + + + + + + + <p>A <code>RequirementConstraintMembership</code> is a <code>FeatureMembership</code> for an assumed or required <code>ConstraintUsage</code> of a <code>RequirementDefinition</code> or <code>RequirementUsage<code>.</p> + + + + <p>The <code>referencedConstraint</code> of a <code>RequirementConstraintMembership</code> is the <code>featureTarget</code> of the <code>referencedFeature</code> of the <code>ownedReferenceSubsetting</code> of the <code>ownedConstraint</code>, if there is one, and, otherwise, the <code>ownedConstraint</code> itself.</p> + + + OCL2.0 + referencedConstraint = + let referencedFeature : Feature = + ownedConstraint.referencedFeatureTarget() in + if referencedFeature = null then ownedConstraint + else if referencedFeature.oclIsKindOf(ConstraintUsage) then + refrencedFeature.oclAsType(ConstraintUsage) + else null + endif endif + + + + + <p>The <code>owningType</code> of a <code>RequirementConstraintMembership</code> must be a <code>RequirementDefinition</code> or a <code>RequirementUsage</code>.</p> + + + OCL2.0 + owningType.oclIsKindOf(RequirementDefinition) or +owningType.oclIsKindOf(RequirementUsage) + + + + + <p>The <code>ownedConstraint</code> of a <code>RequirementConstraintMembership</code> must be composite.</p> + + + OCL2.0 + ownedConstraint.isComposite + + + + + + + + <p>Whether the <code>RequirementConstraintMembership</code> is for an assumed or required <code>ConstraintUsage</code>.</p> + + + + + <p>The <code>ConstraintUsage</code> that is the <code>ownedMemberFeature</code> of this <code>RequirementConstraintMembership</code>.</p> + + + + + + + + <p> The <code>ConstraintUsage</code> that is referenced through this <code>RequirementConstraintMembership</code>. It is the <code>referencedFeature</code> of the <code>ownedReferenceSubsetting</code> of the <code>ownedConstraint</code>, if there is one, and, otherwise, the <code>ownedConstraint</code> itself.</p> + + + + + + + + <p>A <code>RequirementConstraintKind</code> indicates whether a <code>ConstraintUsage</code> is an assumption or a requirement in a <code>RequirementDefinition</code> or <code>RequirementUsage</code>.</p> + + + + <p>Indicates that a member <code>ConstraintUsage</code> of a <code>RequirementDefinition</code> or <code>RequirementUsage</code> represents an assumption.</p> + + + + + <p>Indicates that a member <code>ConstraintUsage</code> of a <code>RequirementDefinition</code> or <code>RequirementUsage</code>represents an requirement.</p> + + + + + + + <p>The RequirementDefinitions that have a certain Usage as their <code>subjectParameter</code>.</p> + + + + + + + + + + + <p>The RequirementUsages that have a certain Usage as their <code>subjectParameter</code>.</p> + + + + + + + + + + <p>A <code>SubjectMembership</code> is a <code>ParameterMembership</code> that indicates that its <code>ownedSubjectParameter</code> is the subject of its <code>owningType</code>. The <code>owningType</code> of a <code>SubjectMembership</code> must be a <code>RequirementDefinition</code>, <code>RequirementUsage</code>, <code>CaseDefinition</code>, or <code>CaseUsage</code>.</p> + + + + <p>The <code>owningType</code> of a <code>SubjectMembership</code> must be a <code>RequirementDefinition</code>, <code>RequirementUsage</code>, <code>CaseDefinition</code>, or <code>CaseUsage</code>.</p> + + + OCL2.0 + owningType.oclIsType(RequirementDefinition) or +owningType.oclIsType(RequiremenCaseRequirementDefinition) or +owningType.oclIsType(CaseDefinition) or +owningType.oclIsType(CaseUsage) + + + + + + + + + <p>The <code>Usage</code< that is the <code>ownedMemberParameter</code> of this <code>SubjectMembership</code>.</p> + + + + + + + + + + <p>The SubjectMembership that owns a particular Parameter as its <code>ownedSubjectParameter</code>.</p> + + + + + + + + + + <p>The RequirementDefinition that addresses a certain <code>addressedConcern</code>.</p> + + + + + + + + + <p>The ConcernUsages that are typed by a certain <code>concernDefinition</code>.</p> + + + + + + + + + <p>The AddressedConcernMembership that has a certain ConcernUsage as its <code>addressedConcern</code>.</p> + + + + + + + + <p>A <code>FramedConcernMembership</code> is a <code>RequirementConstraintMembership</code> for a framed <code>ConcernUsage</code> of a <code>RequirementDefinition</code> or <code>RequirementUsage</code>.</p> + + + + <p>A <code>FramedConcernMembership</code> must have <code>kind = requirement</code>.</p> + + + OCL2.0 + kind = RequirementConstraintKind::requirement + + + + + + <p>The <code>kind</code> of an <code>FramedConcernMembership</code> must be <code>requirement</code>.</p> + + + + + + <p>The <code>ConcernUsage</code> that is the <code>ownedConstraint</code> of this <code>FramedConcernMembership</code>.</p> + + + + + + + <p> The <code>ConcernUsage</code> that is referenced through this <code>FramedConcernMembership</code>. It is the <code>referencedConstraint</code> of the <code>FramedConcernMembership</code> considered as a <code>RequirementConstraintMembership</code>, which must be a <code>ConcernUsage</code>.</p> + + + + + + + + <p>A <code>ConcernDefinition</code> is a <code>RequirementDefinition</code> that one or more stakeholders may be interested in having addressed. These stakeholders are identified by the <code>ownedStakeholders</code>of the <code>ConcernDefinition</code>.</p> + + + + + <p>A <code>ConcernDefinition</code> must directly or indirectly specialize the base <code>ConcernDefinition</code> <em><code>Requirements::ConcernCheck</code></em> from the Systems Model Library.</p> + + + OCL2.0 + specializesFromLibrary('Requirements::ConcernCheck') + + + + + + + + <p>The RequirementConstraintMembership that has a certain ConstraintUsage as its <code>referencedConstraint</code>.</p> + + + + + + + + + <p>The AddressedConcernMembership that owns a certain ConcernUsage as its <code>ownedConcern</code>.</p> + + + + + + + + <p>A <code>ConcernUsage</code> is a <code>Usage</code> of a <code>ConcernDefinition</code>.</p> - The <code>ownedStakeholder</code> features of the ConcernUsage shall all subset the <em><code>ConcernCheck::concernedStakeholders</code> </em>feature. If the ConcernUsage is an <code>ownedFeature</code> of a StakeholderDefinition or StakeholderUsage, then the ConcernUsage shall have an <code>ownedStakeholder</code> feature that is bound to the <em><code>self</code></em> feature of its owner.</p> - - - - - <p>A <code>ConcernUsage</code> must directly or indirectly specialize the base <code>ConcernUsage</code> <em><code>Requirements::concernChecks</code></em> from the Systems Model Library.</p> - - - OCL2.0 - specializesFromLibrary('Requirements::concernChecks') - - - - - <p>If a <code>ConcernUsage</code> is owned via a <code>FramedConcernMembership</code>, then it must directly or indirectly specialize the <code>ConcernUsage</code> <code><em>Requirements::RequirementCheck::concerns</em></code> from the Systems Model Library.</p> - - - OCL2.0 - owningFeatureMembership <> null and - owningFeatureMembership.oclIsKindOf(FramedConcernMembership) implies - specializesFromLibrary('Requirements::RequirementCheck::concerns') - - - - - - <p>The ConcernDefinition that is the single type of this ConcernUsage.</p> - - - - - - - - - <p>The RequirementUsage that addresses a certain <code>addressedConcern</code>.</p> - - - - - - - - - - - - - - - - - <p>The RequirementUsages that have a certain PartUsage as an <code>actorParameter</code>.</p> - - - - - - - - - - - <p>The RequirementDefinitions that have a certain PartUsage as an <code>actorParameter</code>.</p> - - - - - - - - - - - <p>TheStakehplderMembership that has a certain PartUsage as its <code>ownedStakeholderParameter</code>.</p> - - - - - - - - - <p>A <code>StakeholderMembership</code> is a <code>ParameterMembership</code> that identifies a <code>PartUsage</code> as a <code>stakeholderParameter</code> of a <code>RequirementDefinition</code> or <code>RequirementUsage</code>, which specifies a role played by an entity with concerns framed by the <code>owningType</code>.</p> - - - - <p>The <code>owningType</code> of a <code>StakeholderMembership</code> must be a <code>RequirementDefinition</code> or <code>RequirementUsage</code>.</p> - - - OCL2.0 - owningType.oclIsKindOf(RequirementUsage) or - owningType.oclIsKindOf(RequirementDefinition) - - - - - - - - <p>The <code>PartUsage</code> specifying the stakeholder.</p> - - - - - - - - - - - - - - - - - - <p>The ActorMembership that has a certain PartUsage as its <code>ownedActorParameter</code>.</p> - - - - - - - - - <p>An <code>ActorMembership</code> is a <code>ParameterMembership</code> that identifies a <code>PartUsage</code> as an <em>actor</em> <code>parameter</code>, which specifies a role played by an external entity in interaction with the <code>owningType</code> of the <code>ActorMembership</code>.</p> - - - - <p>The <code>owningType</code> of an <code>ActorMembership</code> must be a <code>RequirementDefinition</code>, <code>RequirementUsage</code>, <code>CaseDefinition</code>, or <code>CaseUsage</code>.</p> - - - OCL2.0 - owningType.oclIsKindOf(RequirementUsage) or - owningType.oclIsKindOf(RequirementDefinition) or - owningType.oclIsKindOf(CaseDefinition) or - owningType.oclIsKindOf(CaseUsage) - - - - - - - - - <p>The <code>PartUsage</code> specifying the actor.</p> - - - - - - - - - - - <p>A <code>CalculationDefinition</code> is an <coed>ActionDefinition</code> that also defines a <code>Function</code> producing a <code>result</code>.</p> - - - - <p>A <code>CalculationDefinition</code> must directly or indirectly specialize the <code>CalculationDefinition</code> <em><code>Calculations::Calculation</code></em> from the Systems Model Library.</p> - - - OCL2.0 - specializesFromLibrary('Calculations::Calculation') - - - - - <p>The <code>calculations</code> of a <code>CalculationDefinition</code> are those of its <code>actions</code> that are <code>CalculationUsages</code>.</p> - - - OCL2.0 - calculation = action->selectByKind(CalculationUsage) - - - - - - - - - <p>The <code>actions</code> of this <code>CalculationDefinition</code> that are <code>CalculationUsages</code>.</p> - - - - - - - - - - - <p>The CalculationUsage being typed by a certain Function.</p> - - - - - - - - - - <p>A <code>CalculationUsage</code> is an <code>ActionUsage</code> that is also an <code>Expression</code>, and, so, is typed by a <code>Function</code>. Nominally, if the <code>type</code> is a <code>CalculationDefinition</code>, a <code>CalculationUsage</code> is a <code>Usage</code> of that <code>CalculationDefinition</code> within a system. However, other kinds of kernel <code>Functions</code> are also allowed, to permit use of <code>Functions</code> from the Kernel Model Libraries.</p> - - - - <p>A <code>CalculationUsage</code> must specialize directly or indirectly the <code>CalculationUsage</code> <em><code>Calculations::calculations</code></em> from the Systems Model Library.</p> - - - OCL2.0 - specializesFromLibrary('Calculations::calculations') - - - - - OCL2.0 - owningType <> null and - (owningType.oclIsKindOf(CalculationDefinition) or - owningType.oclIsKindOf(CalculationUsage)) implies - specializesFromLibrary('Calculations::Calculation::subcalculations') - - - - - - - - - <p>The <ode>Function</code> that is the <code>type</code> of this <code>CalculationUsage</code>. Nominally, this would be a <code>CalculationDefinition</code>, but a kernel <code>Function</code> is also allowed, to permit use of <code>Functions</code> from the Kernel Model Libraries.</p> - - - - - - - - - - <p>A <code>CalculationUsage</code> is not model-level evaluable.</p> - - - - OCL2.0 - false - - - - - - - - - - - - - - - - - <p>The CalculationDefinitions that feature a certain CalculationUsage.</p> - - - - - - - - - - - <p>The Definition that owns the <code>ownedCalculation</code>.</p> - - - - - - - - - <p>The Usage in which the <code>nestedCalculation<code> is nested.</p> - - - - - - - - - - - <p>The ConnectionDefinitions that have a certain Usage as an <code>connectionEnd</code>.</p> - - - - - - - - - <p>A <code>ConnectionDefinition</code> is a <code>PartDefinition</code> that is also an <code>AssociationStructure</code>. The end <code>Features</code> of a <code>ConnectionDefinition</code> must be <code>Usages</code>.</p> - - - - <p>A <code>ConnectionDefinition</code> must directly or indirectly specialize the <code>ConnectionDefinition</code> <em><code>Connections::Connection</code></em> from the Systems Model Library.</p> - - - OCL2.0 - specializesFromLibrary('Connections::Connection') - - - - - <p>A binary <code>ConnectionDefinition</code> must directly or indirectly specialize the <code>ConnectionDefinition</code> <em><code>Connections::BinaryConnection</code></em> from the Systems Model Library.</p> - - - OCL2.0 - ownedEndFeature->size() = 2 implies - specializesFromLibrary('Connections::BinaryConnections') - - - - - <p>A <code>ConnectionDefinition</code> must have <code>isSufficient = true</code>.</p> - - - OCL2.0 - isSufficient - - - - - - - - - <p>The <code>Usages</code> that define the things related by the <code>ConnectionDefinition</code>.</p> - - - - - - - - <p>A <code>ConnectionDefinition</code> always has <code>isSufficient = true</code>.</p> - - - - - - - - - <p>A <code>ConnectionUsage</code> is a <code>ConnectorAsUsage</code> that is also a <code>PartUsage</code>. Nominally, if its type is a <code>ConnectionDefinition</code>, then a <code>ConnectionUsage</code> is a Usage of that <code>ConnectionDefinition</code>, representing a connection between parts of a system. However, other kinds of kernel <code>AssociationStructures</code> are also allowed, to permit use of <code>AssociationStructures</code> from the Kernel Model Libraries.</p> - - - - <p>A <code>ConnectionUsage</code> must directly or indirectly specialize the <code>ConnectionUsage</code> <em><code>Connections::connections</code></em> from the Systems Model Library.</p> - - - OCL2.0 - specializesFromLibrary('Connections::connections') - - - - - <p>A binary <code>ConnectionUsage</code> must directly or indirectly specialize the <code>ConnectionUsage</code> <em><code>Connections::binaryConnections</code></em> from the Systems Model Library.</p> - - - OCL2.0 - ownedEndFeature->size() = 2 implies - specializesFromLibrary('Connections::binaryConnections') - - - - - - - <p>The <code>AssociationStructures</code> that are the types of this <code>ConnectionUsage</code>. Nominally, these are , but other kinds of Kernel <code>AssociationStructures</code> are also allowed, to permit use of <code>AssociationStructures</code> from the Kernel Model Libraries</p> - - - - - - - - - - - <p>The ConnectionUsages that have a certain AssociationStructure as their <code>connectionDefinition</code>.</p> - - - - - - - - - <p>A <code>SuccessionAsUsage</code> is both a <code>ConnectorAsUsage</code> and a <code>Succession</code>.<p> - - - - - - - - - <p>A <code>ConnectorAsUsage</code> is both a <code>Connector</code> and a <code>Usage</code>. <code>ConnectorAsUsage</code> cannot itself be instantiated in a SysML model, but it is a base class for the concrete classes <code>BindingConnectorAsUsage</code>, <code>SuccessionAsUsage</code>, <code>ConnectionUsage</code> and <code>FlowConnectionUsage</code>.</p> - - - - - - - - - <p>A <code>BindingConnectorAsUsage</code> is both a <code>BindingConnector</code> and a <code>ConnectorAsUsage</code>.</p> - - - - - - - - - - - <p>A <code>CaseUsage</code> is a <code>Usage</code> of a <code>CaseDefinition</code>.</p> - - - - <p>The <code>objectiveRequirement</code> of a <code>CaseUsage</code> is the <code>RequirementUsage</code> it owns via an <case>ObjectiveMembership</code>, if any.</p> - - - OCL2.0 - objectiveRequirement = - let objectives: OrderedSet(RequirementUsage) = - featureMembership-> - selectByKind(ObjectiveMembership). - ownedRequirement in - if objectives->isEmpty() then null - else objectives->first().ownedObjectiveRequirement - endif - - - - - <p>A <code>CaseUsage</code> must have at most one <code>featureMembership</code> that is a <code>ObjectiveMembership</code>.</p> - - - OCL2.0 - featureMembership-> - selectByKind(ObjectiveMembership)-> - size() <= 1 - - - - - <p>A <code>CaseUsage</code> must have at most one <code>featureMembership</code> that is a <code>SubjectMembership</code>.</p> - - - OCL2.0 - featureMembership-> - selectByKind(SubjectMembership)-> - size() <= 1 - - - - - <p>The <code>actorParameters</code> of a <code>CaseUsage</code> are the <code>ownedActorParameters</code> of the <code>ActorMemberships</code> of the <code>CaseUsage</code>.</p> - - - OCL2.0 - actorParameter = featureMembership-> - selectByKind(ActorMembership). - ownedActorParameter - - - - - <p>The <code>subjectParameter</code> of a <code>CaseUsage</code> is the <code>ownedSubjectParameter</code> of its <code>SubjectMembership</code> (if any).</p> - - - OCL2.0 - subjectParameter = - let subjects : OrderedSet(SubjectMembership) = - featureMembership->selectByKind(SubjectMembership) in - if subjects->isEmpty() then null - else subjects->first().ownedSubjectParameter - endif - - - - - <p>The <code>subjectParameter</code> of a <code>CaseUsage</code> must be its first <code>input</code>.</p> - - - OCL2.0 - input->notEmpty() and input->first() = subjectParameter - - - - - <p>A <code>CaseUsage</code> must directly or indirectly specialize the base <code>CaseUsage</code> <em><code>Cases::cases</code></em> from the Systems Model Library.</p> - - - OCL2.0 - specializesFromLibrary('Cases::cases') - - - - - <p>A composite <code>CaseUsage</code> whose <code>owningType</code> is a <code>CaseDefinition</code> or <code>CaseUsage</code> must directly or indirectly specialize the <code>CaseUsage</code> <em><code>Cases::Case::subcases</code></em>.</p> - - - OCL2.0 - isComposite and owningType <> null and - (owningType.oclIsKindOf(CaseDefinition) or - owningType.oclIsKindOf(CaseUsage)) implies - specializesFromLibrary('Cases::Case::subcases') - - - - - - <p>The <code>RequirementUsage</code> representing the objective of this <code>CaseUsage</code>.</p> - - - - - - - - <p>The CaseDefinition that is the type of this CaseUsage.</p> - - - - - - - <p>The <code>parameter</code> of this <code>CaseUsage</code> that represents its subject.</p> - - - - - - - - - - <p>The <code>parameters</code> of this <code>CaseUsage</code> that represent actors involved in the case.</p> - - - - - - - - - - - <p>The Usage in which the <code>nestedCase</code> is nested.</p> - - - - - - - - - <p>The CaseUsages being typed by a certain CaseDefinition.</p> - - - - - - - - <p>A <code>CaseDefinition</code> is a <code>CalculationDefinition</code> for a process, often involving collecting evidence or data, relative to a subject, possibly involving the collaboration of one or more other actors, producing a result that meets an objective.</p> - - - - <p>The <code>objectiveRequirement</code> of a <code>CaseDefinition</code> is the <code>ownedObjectiveRequirement</code> of its <case>ObjectiveMembership</code>, if any.</p> - - - OCL2.0 - objectiveRequirement = - let objectives: OrderedSet(RequirementUsage) = - featureMembership-> - selectByKind(ObjectiveMembership). - ownedRequirement in - if objectives->isEmpty() then null - else objectives->first().ownedObjectiveRequirement - endif - - - - - <p>A <code>CaseDefinition</code> must have at most one <code>featureMembership</code> that is a <code>ObjectiveMembership</code>.</p> - - - OCL2.0 - featureMembership-> - selectByKind(ObjectiveMembership)-> - size() <= 1 - - - - - <p>The <code>subjectParameter</code> of a <code>CaseDefinition</code> is the <code>ownedSubjectParameter</code> of its <code>SubjectMembership</code> (if any).</p> - - - OCL2.0 - subjectParameter = - let subjectMems : OrderedSet(SubjectMembership) = - featureMembership->selectByKind(SubjectMembership) in - if subjectMems->isEmpty() then null - else subjectMems->first().ownedSubjectParameter - endif - - - - - <p>The <code>actorParameters</code> of a <code>CaseDefinition</code> are the <code>ownedActorParameters</code> of the <code>ActorMemberships</code> of the <code>CaseDefinition</code>.</p> - - - OCL2.0 - actorParameter = featureMembership-> - selectByKind(ActorMembership). - ownedActorParameter - - - - - <p>A <code>CaseDefinition</code> must have at most one <code>featureMembership</code> that is a <code>SubjectMembership</code>.</p> - - - English - featureMembership->selectByKind(SubjectMembership)->size() <= 1 - - - - - <p>The <code>subjectParameter</code> of a <code>CaaseDefinition</code> must be its first <code>input</code>.</p> - - - OCL2.0 - input->notEmpty() and input->first() = subjectParameter - - - - - <p>A <code>CaseDefinition</code> must directly or indirectly specialize the base <code>CaseDefinition</code> <em><code>Cases::Case></code></em> from the Systems Model Library.</p> - - - OCL2.0 - specializesFromLibrary('Cases::Case') - - - - - - <p>The <code>RequirementUsage</code> representing the objective of this <code>CaseDefinition</code>.</p> - - - - - - - - <p>The <code>parameter</code> of this <code>CaseDefinition</code> that represents its subject.</p> - - - - - - - - - <p>The <code>parameters</code> of this <code>CaseDefinition</code> that represent actors involved in the case.</p> - - - - - - - - - - <p>An <code>ObjectiveMembership</code> is a <code>FeatureMembership</code> that indicates that its <code>ownedObjectiveRequirement</code> is the objective <code>RequirementUsage</code> for its <code>owningType</code>, which must be a <code>CaseDefinition</code> or <code>CaseUsage</code>.</p> - - - - <p>The <code>owningType</code> of an <code>ObjectiveMembership</code> must be a <code>CaseDefinition</code> or <code>CaseUsage</code>.</p> - - - OCL2.0 - owningType.oclIsType(CaseDefinition) or - owningType.oclIsType(CaseUsage) - - - - - - <p>The <code>ownedObjectiveRequirement</code> of an <code>ObjectiveMembership</code> must be composite.</p> - - - OCL2.0 - ownedObjectiveRequirement.isComposite - - - - - - - - <p>The RequirementUsage that is the <code>ownedMemberFeature</code> of this RequirementUsage.</p> - - - - - - - - - - - - - - - - - <p>The CaseDefinitions that have a certain RequirementUsage as their <code>objectiveRequirement</code>.</p> - - - - - - - - - - <p>The ObjectMembership that owns a particular RequirementUsage as its <code>ownedObjectiveRequirement</code>.</p> - - - - - - - - - - <p>The CaseDefinitions that have a certain Usage as their <code>subjectParameter</code>.</p> - - - - - - - - - - - <p>The CaseUsages that have a certain Usage as their <code>subjectParameter</code>.</p> - - - - - - - - - - - <p>The CaseDefinitions that have a certain PartUsage as an <code>actorParameter</code>.</p> - - - - - - - - - - - <p>The CaseUsages that have a certain PartUsage as an <code>actorParameter</code>.</p> - - - - - - - - - - - - - <p>The AnalysisCaseDefinitions that have a certain Expression as their <code>resultExpression</code>.</p> - - - - - - - - - - - <p>The AnalysisCaseUsages being typed by a certain AnalysisCaseDefinition.</p> - - - - - - - - <p>An <code>AnalysisCaseUsage</code> is a <code>Usage</code> of an <code>AnalysisCaseDefinition</code>.</p> - - - - <p>The <code>resultExpression</code> of a <code>AnalysisCaseUsage</code> is the <code>ownedResultExpression</code> of its <code>ResultExpressionMembership</code>, if any.</p> - - - OCL2.0 - resultExpression = - let results : OrderedSet(ResultExpressionMembership) = - featureMembersip-> - selectByKind(ResultExpressionMembership) in - if results->isEmpty() then null - else results->first().ownedResultExpression - endif - - - - - <p>An <code>AnalysisCaseUsage</code> must directly or indirectly specialize the base <code>AnalysisCaseUsage</code> <code><em>AnalysisCases::analysisCases</em></code> from the Systems Model Library.</p> - - - OCL2.0 - specializesFromLibrary('AnalysisCases::analysisCases') - - - - - <p>A composite <code>AnalysisCaseUsage</code> whose <code>owningType</code> is an <code>AnalysisCaseDefinition</code> or <code>AnalysisCaseUsage</code> must specialize the <code>AnalysisCaseUsage</code> <code><em>AnalysisCases::AnalysisCase::subAnalysisCases</code> from the Systems Model Library.</p> - - - OCL2.0 - isComposite and owningType <> null and - (owningType.oclIsKindOf(AnalysisCaseDefinition) or - owningType.oclIsKindOf(AnalysisCaseUsage)) implies - specializesFromLibrary('AnalysisCases::AnalysisCase::subAnalysisCases') - - - - - - <p>The <code>AnalysisCaseDefinition</code> that is the <code>definition</code> of this <code>AnalysisCaseUsage</code>.</p> - - - - - - - <p>An <code>Expression</code> used to compute the <code>result</code> of the <code>AnalysisCaseUsage</code>, owned via a <code>ResultExpressionMembership</code>.</p> - - - - - - - - - - - <p>The AnalysisCaseUsages that have a certain Expression as their <code>resultExpression</code>.</p> - - - - - - - - - <p>An <code>AnalysisCaseDefinition</code> is a <code>CaseDefinition</code> for the case of carrying out an analysis.</p> - - - - <p>The <code>resultExpression</code> of a <code>AnalysisCaseDefinition</code> is the <code>ownedResultExpression</code> of its <code>ResultExpressionMembership</code>, if any.</p> - - - OCL2.0 - resultExpression = - let results : OrderedSet(ResultExpressionMembership) = - featureMembersip-> - selectByKind(ResultExpressionMembership) in - if results->isEmpty() then null - else results->first().ownedResultExpression - endif - - - - - <p>An <code>AnalysisCaseDefinition</code> must directly or indirectly specialize the base <code>AnalysisCaseDefinition</code> <code><em>AnalysisCases::AnalysisCase</em></code> from the Systems Model Library.</p> - - - OCL2.0 - specializesFromLibrary('AnalysisCases::AnalysisCase') - - - - - - <p>An <code>Expression</code> used to compute the <code>result</code> of the <code>AnalysisCaseDefinition</code>, owned via a <code>ResultExpressionMembership</code>.</p> - - - - - - - - - - - - - - <p>An <code>ItemUsage</code> is a <code>ItemUsage</code> whose <code>definition</code> is a <code>Structure</code>. Nominally, if the <code>definition</code> is an <code>ItemDefinition</code>, an <code>ItemUsage</code> is a <code>ItemUsage</code> of that <code>ItemDefinition</code> within a system. However, other kinds of Kernel <code>Structures</code> are also allowed, to permit use of <code>Structures</code> from the Kernel Model Libraries.</p> - - - - <p>The <code>itemDefinitions</code> of an <code>ItemUsage</code> are those <code>occurrenceDefinitions</code> that are <code>Structures</code>.</p> - - - OCL2.0 - itemDefinition = occurrenceDefinition->selectByKind(Structure) - - - - - <p>An <code>ItemUsage</code> must directly or indirectly specialize the Systems Model Library <code>ItemUsage</code> <em><code>items</code></em>.</p> - - - OCL2.0 - specializesFromLibrary('Items::items') - - - - - OCL2.0 - isComposite and owningType <> null and - (owningType.oclIsKindOf(ItemDefinition) or - owningType.oclIsKindOf(ItemUsage)) implies - specializesFromLibrary('Items::Item::subitem') - - - - - - <p>The Structures that are the <code>definitions</code> of this ItemUsage. Nominally, these are ItemDefinitions, but other kinds of Kernel Structures are also allowed, to permit use of Structures from the Kernel Library.</p> - - - - - - - - - <p>An <code>ItemDefinition</code> is an <code>OccurrenceDefinition</code> of the <code>Structure</code> of things that may themselves be systems or parts of systems, but may also be things that are acted on by a system or parts of a system, but which do not necessarily perform actions themselves. This includes items that can be exchanged between parts of a system, such as water or electrical signals.</p> - - - - - <p>An <code>ItemDefinition</code> must directly or indirectly specialize the Systems Library Model <code>ItemDefinition</code> <em><code>Items::Item</code>.</p> - - - OCL2.0 - specializesFromLibrary('Items::Item') - - - - - - - - - - - - <p>A <code>ViewpointDefinition</code> is a <code>RequirementDefinition</code> that specifies one or more stakeholder concerns that are to be satisfied by creating a view of a model.</p> - - - - <p>The <code>viewpointStakeholders</code> of a <code>ViewpointDefinition</code> are the <code>ownedStakeholderParameters</code> of all <code>featureMemberships</code> that are <code>StakeholderMemberships</code>.</p> - - - OCL2.0 - viewpointStakeholder = framedConcern.featureMemberhsip-> - selectByKind(StakeholderMembership). - ownedStakeholderParameter - - - - - <p>A <code>ViewpointDefinition</code> must directly or indirectly specialize the base <code>ViewpointDefinition</code> <code><em>Views::Viewpoint</em></code> from the Systems Model Library.</p> - - - OCL2.0 - specializesFromLibrary('Views::Viewpoint') - - - - - - <p>The <code>PartUsages</code> that identify the stakeholders with concerns framed by this <code>ViewpointDefinition</code>, which are the owned and inherited <code>stakeholderParameters</code> of the <code>framedConcerns</code> of this <code>ViewpointDefinition</code>.</p> - - - - - - - - - <p>A ViewUsage exposing a certain <code>exposedElement</code>.</p> - - - - - - - - - - <p>The RenderingUsages defined by a certain <code>renderingDefinition</code>.</p> - - - - - - - - <p>A <code>ViewUsage</code> is a usage of a <code>ViewDefinition</code> to specify the generation of a view of the <code>members</code> of a collection of <code>exposedNamespaces</code>. The <code>ViewUsage</code> can satisfy more <code>viewpoints</code> than its definition, and it can specialize the <code>viewRendering</code> specified by its definition.<p> - - - - <p>The <code>exposedElements</code> of a <code>ViewUsage</code> are those <code>memberElements</code> of the imported <code>Memberships</code> from all the <code>Expose</code> <code>Relationships</code> for which the <code>includeAsExposed</code> operation returns true.</p> - - - OCL2.0 - exposedElement = ownedImport->selectByKind(Expose). - importedMemberships(Set{}).memberElement-> - select(elm | includeAsExposed(elm))-> - asOrderedSet() - - - - - <p>The <code>satisfiedViewpoints</code> of a <code>ViewUsage</code> are its <code>ownedRequirements</code> that are composite <code>ViewpointUsages</code>. - - - OCL2.0 - satisfiedViewpoint = ownedRequirement-> - selectByKind(ViewpointUsage)-> - select(isComposite) - - - - - <p>The <code>viewConditions</code> of a <code>ViewUsage</code> are the <code>conditions</code> of its owned <code>ElementFilterMemberships</code>.</p> - - - OCL2.0 - viewCondition = ownedMembership-> - selectByKind(ElementFilterMembership). - condition - - - - - <p>The <code>viewRendering</code> of a <code>ViewUsage</code> is the <code>referencedRendering</code> of its owned <code>ViewRenderingMembership<code>, if any.</p> - - - OCL2.0 - viewRendering = - let renderings: OrderedSet(ViewRenderingMembership) = - featureMembership->selectByKind(ViewRenderingMembership) in - if renderings->isEmpty() then null - else renderings->first().referencedRendering - endif - - - - - <p>A <code>ViewUsage</code> must have at most one <code>ViewRenderingMembership</code>.</p> - - - OCL2.0 - featureMembership-> - selectByKind(ViewRenderingMembership)-> - size() <= 1 - - - - - <p>A <code>ViewUsage</code> must directly or indirectly specialize the base <code>ViewUsage</code> <code><em>Views::views</em></code> from the Systems Model Library.</p> - - - OCL2.0 - specializesFromLibrary('Views::views') - - - - - <p>A <code>ViewUsage</code> whose <code>owningType</code> is a <code>ViewDefinition</code> or <code>ViewUsage</code> must specialize the <code>ViewUsage</code> <code><em>Views::View::subviews</em></code> from the Systems Library Model.</p> - - - OCL2.0 - owningType <> null and - (owningType.oclIsKindOf(ViewDefinition) or - owningType.oclIsKindOf(ViewUsage)) implies - specializesFromLibrary('Views::View::subviews') - - - - - - <p>The <code>ViewDefinition</code> that is the <code>definition</code> of this <code>ViewUsage</code>.</p> - - - - - - - <p>The <code>nestedRequirements</code> of this <code>ViewUsage</code> that are <code>ViewpointUsages</code> for (additional) viewpoints satisfied by the <code>ViewUsage</code>.</p> - - - - - - - <p>The <code>Elements</code> that are exposed by this <code>ViewUsage</code>, which are those <code>memberElements</code> of the imported <code>Memberships</code> from all the <code>Expose</code> <code>Relationships</code> that meet all the owned and inherited <code>viewConditions</code>.</p> - - - - - - - - - <p>The <code>RenderingUsage</code> to be used to render views defined by this <code>ViewUsage</code>, which is the <code>referencedRendering</code> of the <code>ViewRenderingMembership</code> of the <code>ViewUsage</code>.<p> - - - - - - - <p>The <code>Expressions</code> related to this <code>ViewUsage</code> by <code>ElementFilterMemberships</code>, which specify conditions on <code>Elements</code> to be rendered in a view.</p> - - - - - - - - - <p>Determine whether the given <code>element</code> meets all the owned and inherited <code>viewConditions</code>.</p> - - - - OCL2.0 - let metadataFeatures: Sequence(AnnotatingElement) = - element.ownedAnnotation.annotatingElement-> - select(oclIsKindOf(MetadataFeature)) in - self.membership->selectByKind(ElementFilterMembership). - condition->forAll(cond | - metadataFeatures->exists(elem | - cond.checkCondition(elem))) - - - - - - - - - - - - - - <p>The ViewUsage that owns a certain <code>rendering</code>.</p> - - - - - - - - - <p>The ViewDefinition that owns a certain <code>rendering</code>.</p> - - - - - - - - - p>The ViewUsage that owns a certain <code>satisfiedViewpoint</code>.</p> - - - - - - - - - <p>The ViewDefinition that owns a certain <code>satisfiedViewpoint</code>.</p> - - - - - - - - - <p>The ViewDefinitions that feature a certain ViewUsage.</p> - - - - - - - - <p>A <code>RenderingDefinition</code> is a <code>PartDefinition</code> that defines a specific rendering of the content of a model view (e.g., symbols, style, layout, etc.).</p> - - - - <p>The <code>renderings</code> of a <code>RenderingDefinition</code> are all its <code>usages</code> that are <code>RenderingUsages</code>.</p> - - - OCL2.0 - rendering = usages->selectByKind(RenderingUsage) - - - - - <p>A <code>RenderingDefinition</code> must directly or indirectly specialize the base <code>RenderingDefinition</code> <code><em>Views::Rendering</em></code> from the Systems Model Library.</p> - - - OCL2.0 - specializesFromLibrary('Views::Rendering') - - - - - - <p>The <code>usages</code> of a <code>RenderingDefinition</code> that are <code>RenderingUsages</code>.</p> - - - - - - - - <p>A <code>ViewpointUsage</code> is a <code>Usage</code> of a <code>ViewpointDefinition</code>.</p> + The <code>ownedStakeholder</code> features of the ConcernUsage shall all subset the <em><code>ConcernCheck::concernedStakeholders</code> </em>feature. If the ConcernUsage is an <code>ownedFeature</code> of a StakeholderDefinition or StakeholderUsage, then the ConcernUsage shall have an <code>ownedStakeholder</code> feature that is bound to the <em><code>self</code></em> feature of its owner.</p> + + + + + <p>A <code>ConcernUsage</code> must directly or indirectly specialize the base <code>ConcernUsage</code> <em><code>Requirements::concernChecks</code></em> from the Systems Model Library.</p> + + + OCL2.0 + specializesFromLibrary('Requirements::concernChecks') + + + + + <p>If a <code>ConcernUsage</code> is owned via a <code>FramedConcernMembership</code>, then it must directly or indirectly specialize the <code>ConcernUsage</code> <code><em>Requirements::RequirementCheck::concerns</em></code> from the Systems Model Library.</p> + + + OCL2.0 + owningFeatureMembership <> null and +owningFeatureMembership.oclIsKindOf(FramedConcernMembership) implies + specializesFromLibrary('Requirements::RequirementCheck::concerns') + + + + + + <p>The ConcernDefinition that is the single type of this ConcernUsage.</p> + + + + + + + + + <p>The RequirementUsage that addresses a certain <code>addressedConcern</code>.</p> + + + + + + + + + + + + + + + + + <p>The RequirementUsages that have a certain PartUsage as an <code>actorParameter</code>.</p> + + + + + + + + + + + <p>The RequirementDefinitions that have a certain PartUsage as an <code>actorParameter</code>.</p> + + + + + + + + + + + <p>TheStakehplderMembership that has a certain PartUsage as its <code>ownedStakeholderParameter</code>.</p> + + + + + + + + + <p>A <code>StakeholderMembership</code> is a <code>ParameterMembership</code> that identifies a <code>PartUsage</code> as a <code>stakeholderParameter</code> of a <code>RequirementDefinition</code> or <code>RequirementUsage</code>, which specifies a role played by an entity with concerns framed by the <code>owningType</code>.</p> + + + + <p>The <code>owningType</code> of a <code>StakeholderMembership</code> must be a <code>RequirementDefinition</code> or <code>RequirementUsage</code>.</p> + + + OCL2.0 + owningType.oclIsKindOf(RequirementUsage) or +owningType.oclIsKindOf(RequirementDefinition) + + + + + + + + <p>The <code>PartUsage</code> specifying the stakeholder.</p> + + + + + + + + + + + + + + + + + + <p>The ActorMembership that has a certain PartUsage as its <code>ownedActorParameter</code>.</p> + + + + + + + + + <p>An <code>ActorMembership</code> is a <code>ParameterMembership</code> that identifies a <code>PartUsage</code> as an <em>actor</em> <code>parameter</code>, which specifies a role played by an external entity in interaction with the <code>owningType</code> of the <code>ActorMembership</code>.</p> + + + + <p>The <code>owningType</code> of an <code>ActorMembership</code> must be a <code>RequirementDefinition</code>, <code>RequirementUsage</code>, <code>CaseDefinition</code>, or <code>CaseUsage</code>.</p> + + + OCL2.0 + owningType.oclIsKindOf(RequirementUsage) or +owningType.oclIsKindOf(RequirementDefinition) or +owningType.oclIsKindOf(CaseDefinition) or +owningType.oclIsKindOf(CaseUsage) + + + + + + + + + <p>The <code>PartUsage</code> specifying the actor.</p> + + + + + + + + + + + <p>A <code>CalculationDefinition</code> is an <coed>ActionDefinition</code> that also defines a <code>Function</code> producing a <code>result</code>.</p> + + + + <p>A <code>CalculationDefinition</code> must directly or indirectly specialize the <code>CalculationDefinition</code> <em><code>Calculations::Calculation</code></em> from the Systems Model Library.</p> + + + OCL2.0 + specializesFromLibrary('Calculations::Calculation') + + + + + <p>The <code>calculations</code> of a <code>CalculationDefinition</code> are those of its <code>actions</code> that are <code>CalculationUsages</code>.</p> + + + OCL2.0 + calculation = action->selectByKind(CalculationUsage) + + + + + + + + + <p>The <code>actions</code> of this <code>CalculationDefinition</code> that are <code>CalculationUsages</code>.</p> + + + + + + + + + + + <p>The CalculationUsage being typed by a certain Function.</p> + + + + + + + + + + <p>A <code>CalculationUsage</code> is an <code>ActionUsage</code> that is also an <code>Expression</code>, and, so, is typed by a <code>Function</code>. Nominally, if the <code>type</code> is a <code>CalculationDefinition</code>, a <code>CalculationUsage</code> is a <code>Usage</code> of that <code>CalculationDefinition</code> within a system. However, other kinds of kernel <code>Functions</code> are also allowed, to permit use of <code>Functions</code> from the Kernel Model Libraries.</p> + + + + <p>A <code>CalculationUsage</code> must specialize directly or indirectly the <code>CalculationUsage</code> <em><code>Calculations::calculations</code></em> from the Systems Model Library.</p> + + + OCL2.0 + specializesFromLibrary('Calculations::calculations') + + + + + OCL2.0 + owningType <> null and +(owningType.oclIsKindOf(CalculationDefinition) or + owningType.oclIsKindOf(CalculationUsage)) implies + specializesFromLibrary('Calculations::Calculation::subcalculations') + + + + + + + + + <p>The <ode>Function</code> that is the <code>type</code> of this <code>CalculationUsage</code>. Nominally, this would be a <code>CalculationDefinition</code>, but a kernel <code>Function</code> is also allowed, to permit use of <code>Functions</code> from the Kernel Model Libraries.</p> + + + + + + + + + + <p>A <code>CalculationUsage</code> is not model-level evaluable.</p> + + + + OCL2.0 + false + + + + + + + + + + + + + + + + + <p>The CalculationDefinitions that feature a certain CalculationUsage.</p> + + + + + + + + + + + <p>The Definition that owns the <code>ownedCalculation</code>.</p> + + + + + + + + + <p>The Usage in which the <code>nestedCalculation<code> is nested.</p> + + + + + + + + + + + <p>The ConnectionDefinitions that have a certain Usage as an <code>connectionEnd</code>.</p> + + + + + + + + + <p>A <code>ConnectionDefinition</code> is a <code>PartDefinition</code> that is also an <code>AssociationStructure</code>. The end <code>Features</code> of a <code>ConnectionDefinition</code> must be <code>Usages</code>.</p> + + + + <p>A <code>ConnectionDefinition</code> must directly or indirectly specialize the <code>ConnectionDefinition</code> <em><code>Connections::Connection</code></em> from the Systems Model Library.</p> + + + OCL2.0 + specializesFromLibrary('Connections::Connection') + + + + + <p>A binary <code>ConnectionDefinition</code> must directly or indirectly specialize the <code>ConnectionDefinition</code> <em><code>Connections::BinaryConnection</code></em> from the Systems Model Library.</p> + + + OCL2.0 + ownedEndFeature->size() = 2 implies + specializesFromLibrary('Connections::BinaryConnection') + + + + + <p>A <code>ConnectionDefinition</code> must have <code>isSufficient = true</code>.</p> + + + OCL2.0 + isSufficient + + + + + + + + + <p>The <code>Usages</code> that define the things related by the <code>ConnectionDefinition</code>.</p> + + + + + + + + <p>A <code>ConnectionDefinition</code> always has <code>isSufficient = true</code>.</p> + + + + + + + + + <p>A <code>ConnectionUsage</code> is a <code>ConnectorAsUsage</code> that is also a <code>PartUsage</code>. Nominally, if its type is a <code>ConnectionDefinition</code>, then a <code>ConnectionUsage</code> is a Usage of that <code>ConnectionDefinition</code>, representing a connection between parts of a system. However, other kinds of kernel <code>AssociationStructures</code> are also allowed, to permit use of <code>AssociationStructures</code> from the Kernel Model Libraries.</p> + + + + <p>A <code>ConnectionUsage</code> must directly or indirectly specialize the <code>ConnectionUsage</code> <em><code>Connections::connections</code></em> from the Systems Model Library.</p> + + + OCL2.0 + specializesFromLibrary('Connections::connections') + + + + + <p>A binary <code>ConnectionUsage</code> must directly or indirectly specialize the <code>ConnectionUsage</code> <em><code>Connections::binaryConnections</code></em> from the Systems Model Library.</p> + + + OCL2.0 + ownedEndFeature->size() = 2 implies + specializesFromLibrary('Connections::binaryConnections') + + + + + + + <p>The <code>AssociationStructures</code> that are the types of this <code>ConnectionUsage</code>. Nominally, these are , but other kinds of Kernel <code>AssociationStructures</code> are also allowed, to permit use of <code>AssociationStructures</code> from the Kernel Model Libraries</p> + + + + + + + + + + + <p>The ConnectionUsages that have a certain AssociationStructure as their <code>connectionDefinition</code>.</p> + + + + + + + + + <p>A <code>SuccessionAsUsage</code> is both a <code>ConnectorAsUsage</code> and a <code>Succession</code>.<p> + + + + + + + + + <p>A <code>ConnectorAsUsage</code> is both a <code>Connector</code> and a <code>Usage</code>. <code>ConnectorAsUsage</code> cannot itself be instantiated in a SysML model, but it is a base class for the concrete classes <code>BindingConnectorAsUsage</code>, <code>SuccessionAsUsage</code>, <code>ConnectionUsage</code> and <code>FlowUsage</code>.</p> + + + + + + + + + <p>A <code>BindingConnectorAsUsage</code> is both a <code>BindingConnector</code> and a <code>ConnectorAsUsage</code>.</p> + + + + + + + + + + + <p>A <code>CaseUsage</code> is a <code>Usage</code> of a <code>CaseDefinition</code>.</p> + + + + <p>The <code>objectiveRequirement</code> of a <code>CaseUsage</code> is the <code>RequirementUsage</code> it owns via an <case>ObjectiveMembership</code>, if any.</p> + + + OCL2.0 + objectiveRequirement = + let objectives: OrderedSet(RequirementUsage) = + featureMembership-> + selectByKind(ObjectiveMembership). + ownedRequirement in + if objectives->isEmpty() then null + else objectives->first().ownedObjectiveRequirement + endif + + + + + <p>A <code>CaseUsage</code> must have at most one <code>featureMembership</code> that is a <code>ObjectiveMembership</code>.</p> + + + OCL2.0 + featureMembership-> + selectByKind(ObjectiveMembership)-> + size() <= 1 + + + + + <p>A <code>CaseUsage</code> must have at most one <code>featureMembership</code> that is a <code>SubjectMembership</code>.</p> + + + OCL2.0 + featureMembership-> + selectByKind(SubjectMembership)-> + size() <= 1 + + + + + <p>The <code>actorParameters</code> of a <code>CaseUsage</code> are the <code>ownedActorParameters</code> of the <code>ActorMemberships</code> of the <code>CaseUsage</code>.</p> + + + OCL2.0 + actorParameter = featureMembership-> + selectByKind(ActorMembership). + ownedActorParameter + + + + + <p>The <code>subjectParameter</code> of a <code>CaseUsage</code> is the <code>ownedSubjectParameter</code> of its <code>SubjectMembership</code> (if any).</p> + + + OCL2.0 + subjectParameter = + let subjects : OrderedSet(SubjectMembership) = + featureMembership->selectByKind(SubjectMembership) in + if subjects->isEmpty() then null + else subjects->first().ownedSubjectParameter + endif + + + + + <p>The <code>subjectParameter</code> of a <code>CaseUsage</code> must be its first <code>input</code>.</p> + + + OCL2.0 + input->notEmpty() and input->first() = subjectParameter + + + + + <p>A <code>CaseUsage</code> must directly or indirectly specialize the base <code>CaseUsage</code> <em><code>Cases::cases</code></em> from the Systems Model Library.</p> + + + OCL2.0 + specializesFromLibrary('Cases::cases') + + + + + <p>A composite <code>CaseUsage</code> whose <code>owningType</code> is a <code>CaseDefinition</code> or <code>CaseUsage</code> must directly or indirectly specialize the <code>CaseUsage</code> <em><code>Cases::Case::subcases</code></em>.</p> + + + OCL2.0 + isComposite and owningType <> null and + (owningType.oclIsKindOf(CaseDefinition) or + owningType.oclIsKindOf(CaseUsage)) implies + specializesFromLibrary('Cases::Case::subcases') + + + + + + <p>The <code>RequirementUsage</code> representing the objective of this <code>CaseUsage</code>.</p> + + + + + + + + <p>The CaseDefinition that is the type of this CaseUsage.</p> + + + + + + + <p>The <code>parameter</code> of this <code>CaseUsage</code> that represents its subject.</p> + + + + + + + + + + <p>The <code>parameters</code> of this <code>CaseUsage</code> that represent actors involved in the case.</p> + + + + + + + + + + + <p>The Usage in which the <code>nestedCase</code> is nested.</p> + + + + + + + + + <p>The CaseUsages being typed by a certain CaseDefinition.</p> + + + + + + + + <p>A <code>CaseDefinition</code> is a <code>CalculationDefinition</code> for a process, often involving collecting evidence or data, relative to a subject, possibly involving the collaboration of one or more other actors, producing a result that meets an objective.</p> + + + + <p>The <code>objectiveRequirement</code> of a <code>CaseDefinition</code> is the <code>ownedObjectiveRequirement</code> of its <case>ObjectiveMembership</code>, if any.</p> + + + OCL2.0 + objectiveRequirement = + let objectives: OrderedSet(RequirementUsage) = + featureMembership-> + selectByKind(ObjectiveMembership). + ownedRequirement in + if objectives->isEmpty() then null + else objectives->first().ownedObjectiveRequirement + endif + + + + + <p>A <code>CaseDefinition</code> must have at most one <code>featureMembership</code> that is a <code>ObjectiveMembership</code>.</p> + + + OCL2.0 + featureMembership-> + selectByKind(ObjectiveMembership)-> + size() <= 1 + + + + + <p>The <code>subjectParameter</code> of a <code>CaseDefinition</code> is the <code>ownedSubjectParameter</code> of its <code>SubjectMembership</code> (if any).</p> + + + OCL2.0 + subjectParameter = + let subjectMems : OrderedSet(SubjectMembership) = + featureMembership->selectByKind(SubjectMembership) in + if subjectMems->isEmpty() then null + else subjectMems->first().ownedSubjectParameter + endif + + + + + <p>The <code>actorParameters</code> of a <code>CaseDefinition</code> are the <code>ownedActorParameters</code> of the <code>ActorMemberships</code> of the <code>CaseDefinition</code>.</p> + + + OCL2.0 + actorParameter = featureMembership-> + selectByKind(ActorMembership). + ownedActorParameter + + + + + <p>A <code>CaseDefinition</code> must have at most one <code>featureMembership</code> that is a <code>SubjectMembership</code>.</p> + + + English + featureMembership->selectByKind(SubjectMembership)->size() <= 1 + + + + + <p>The <code>subjectParameter</code> of a <code>CaaseDefinition</code> must be its first <code>input</code>.</p> + + + OCL2.0 + input->notEmpty() and input->first() = subjectParameter + + + + + <p>A <code>CaseDefinition</code> must directly or indirectly specialize the base <code>CaseDefinition</code> <em><code>Cases::Case></code></em> from the Systems Model Library.</p> + + + OCL2.0 + specializesFromLibrary('Cases::Case') + + + + + + <p>The <code>RequirementUsage</code> representing the objective of this <code>CaseDefinition</code>.</p> + + + + + + + + <p>The <code>parameter</code> of this <code>CaseDefinition</code> that represents its subject.</p> + + + + + + + + + <p>The <code>parameters</code> of this <code>CaseDefinition</code> that represent actors involved in the case.</p> + + + + + + + + + + <p>An <code>ObjectiveMembership</code> is a <code>FeatureMembership</code> that indicates that its <code>ownedObjectiveRequirement</code> is the objective <code>RequirementUsage</code> for its <code>owningType</code>, which must be a <code>CaseDefinition</code> or <code>CaseUsage</code>.</p> + + + + <p>The <code>owningType</code> of an <code>ObjectiveMembership</code> must be a <code>CaseDefinition</code> or <code>CaseUsage</code>.</p> + + + OCL2.0 + owningType.oclIsType(CaseDefinition) or +owningType.oclIsType(CaseUsage) + + + + + + <p>The <code>ownedObjectiveRequirement</code> of an <code>ObjectiveMembership</code> must be composite.</p> + + + OCL2.0 + ownedObjectiveRequirement.isComposite + + + + + + + + <p>The RequirementUsage that is the <code>ownedMemberFeature</code> of this RequirementUsage.</p> + + + + + + + + + + + + + + + + + <p>The CaseDefinitions that have a certain RequirementUsage as their <code>objectiveRequirement</code>.</p> + + + + + + + + + + <p>The ObjectMembership that owns a particular RequirementUsage as its <code>ownedObjectiveRequirement</code>.</p> + + + + + + + + + + <p>The CaseDefinitions that have a certain Usage as their <code>subjectParameter</code>.</p> + + + + + + + + + + + <p>The CaseUsages that have a certain Usage as their <code>subjectParameter</code>.</p> + + + + + + + + + + + <p>The CaseDefinitions that have a certain PartUsage as an <code>actorParameter</code>.</p> + + + + + + + + + + + <p>The CaseUsages that have a certain PartUsage as an <code>actorParameter</code>.</p> + + + + + + + + + + + + + <p>The AnalysisCaseDefinitions that have a certain Expression as their <code>resultExpression</code>.</p> + + + + + + + + + + + <p>The AnalysisCaseUsages being typed by a certain AnalysisCaseDefinition.</p> + + + + + + + + <p>An <code>AnalysisCaseUsage</code> is a <code>Usage</code> of an <code>AnalysisCaseDefinition</code>.</p> + + + + <p>The <code>resultExpression</code> of a <code>AnalysisCaseUsage</code> is the <code>ownedResultExpression</code> of its <code>ResultExpressionMembership</code>, if any.</p> + + + OCL2.0 + resultExpression = + let results : OrderedSet(ResultExpressionMembership) = + featureMembersip-> + selectByKind(ResultExpressionMembership) in + if results->isEmpty() then null + else results->first().ownedResultExpression + endif + + + + + <p>An <code>AnalysisCaseUsage</code> must directly or indirectly specialize the base <code>AnalysisCaseUsage</code> <code><em>AnalysisCases::analysisCases</em></code> from the Systems Model Library.</p> + + + OCL2.0 + specializesFromLibrary('AnalysisCases::analysisCases') + + + + + <p>A composite <code>AnalysisCaseUsage</code> whose <code>owningType</code> is an <code>AnalysisCaseDefinition</code> or <code>AnalysisCaseUsage</code> must specialize the <code>AnalysisCaseUsage</code> <code><em>AnalysisCases::AnalysisCase::subAnalysisCases</code> from the Systems Model Library.</p> + + + OCL2.0 + isComposite and owningType <> null and + (owningType.oclIsKindOf(AnalysisCaseDefinition) or + owningType.oclIsKindOf(AnalysisCaseUsage)) implies + specializesFromLibrary('AnalysisCases::AnalysisCase::subAnalysisCases') + + + + + + <p>The <code>AnalysisCaseDefinition</code> that is the <code>definition</code> of this <code>AnalysisCaseUsage</code>.</p> + + + + + + + <p>An <code>Expression</code> used to compute the <code>result</code> of the <code>AnalysisCaseUsage</code>, owned via a <code>ResultExpressionMembership</code>.</p> + + + + + + + + + + + <p>The AnalysisCaseUsages that have a certain Expression as their <code>resultExpression</code>.</p> + + + + + + + + + <p>An <code>AnalysisCaseDefinition</code> is a <code>CaseDefinition</code> for the case of carrying out an analysis.</p> + + + + <p>The <code>resultExpression</code> of a <code>AnalysisCaseDefinition</code> is the <code>ownedResultExpression</code> of its <code>ResultExpressionMembership</code>, if any.</p> + + + OCL2.0 + resultExpression = + let results : OrderedSet(ResultExpressionMembership) = + featureMembersip-> + selectByKind(ResultExpressionMembership) in + if results->isEmpty() then null + else results->first().ownedResultExpression + endif + + + + + <p>An <code>AnalysisCaseDefinition</code> must directly or indirectly specialize the base <code>AnalysisCaseDefinition</code> <code><em>AnalysisCases::AnalysisCase</em></code> from the Systems Model Library.</p> + + + OCL2.0 + specializesFromLibrary('AnalysisCases::AnalysisCase') + + + + + + <p>An <code>Expression</code> used to compute the <code>result</code> of the <code>AnalysisCaseDefinition</code>, owned via a <code>ResultExpressionMembership</code>.</p> + + + + + + + + + + + + + + <p>An <code>ItemUsage</code> is an <code>OccurrenceUsage</code> whose <code>definition</code> is a <code>Structure</code>. Nominally, if the <code>definition</code> is an <code>ItemDefinition</code>, an <code>ItemUsage</code> is a <code>ItemUsage</code> of that <code>ItemDefinition</code> within a system. However, other kinds of Kernel <code>Structures</code> are also allowed, to permit use of <code>Structures</code> from the Kernel Model Libraries.</p> + + + + <p>The <code>itemDefinitions</code> of an <code>ItemUsage</code> are those <code>occurrenceDefinitions</code> that are <code>Structures</code>.</p> + + + OCL2.0 + itemDefinition = occurrenceDefinition->selectByKind(Structure) + + + + + <p>An <code>ItemUsage</code> must directly or indirectly specialize the Systems Model Library <code>ItemUsage</code> <em><code>items</code></em>.</p> + + + OCL2.0 + specializesFromLibrary('Items::items') + + + + + <p>A composite <code>ItemUsage</code> whose <code>owningType</code> is an <code>ItemDefinition</code> or <code>ItemUsage</code> must directly or indirectly specialize the Systems Model Library <code>ItemUsage</code> <em><code>Items::Item::subitems</code></em>.</p> + + + OCL2.0 + isComposite and owningType <> null and +(owningType.oclIsKindOf(ItemDefinition) or + owningType.oclIsKindOf(ItemUsage)) implies + specializesFromLibrary('Items::Item::subitem') + + + + + + <p>The Structures that are the <code>definitions</code> of this ItemUsage. Nominally, these are ItemDefinitions, but other kinds of Kernel Structures are also allowed, to permit use of Structures from the Kernel Library.</p> + + + + + + + + + <p>An <code>ItemDefinition</code> is an <code>OccurrenceDefinition</code> of the <code>Structure</code> of things that may themselves be systems or parts of systems, but may also be things that are acted on by a system or parts of a system, but which do not necessarily perform actions themselves. This includes items that can be exchanged between parts of a system, such as water or electrical signals.</p> + + + + + <p>An <code>ItemDefinition</code> must directly or indirectly specialize the Systems Library Model <code>ItemDefinition</code> <em><code>Items::Item</code>.</p> + + + OCL2.0 + specializesFromLibrary('Items::Item') + + + + + + + + + + + + <p>A <code>ViewpointDefinition</code> is a <code>RequirementDefinition</code> that specifies one or more stakeholder concerns that are to be satisfied by creating a view of a model.</p> + + + + <p>The <code>viewpointStakeholders</code> of a <code>ViewpointDefinition</code> are the <code>ownedStakeholderParameters</code> of all <code>featureMemberships</code> that are <code>StakeholderMemberships</code>.</p> + + + OCL2.0 + viewpointStakeholder = framedConcern.featureMemberhsip-> + selectByKind(StakeholderMembership). + ownedStakeholderParameter + + + + + <p>A <code>ViewpointDefinition</code> must directly or indirectly specialize the base <code>ViewpointDefinition</code> <code><em>Views::ViewpointCheck</em></code> from the Systems Model Library.</p> + + + OCL2.0 + specializesFromLibrary('Views::ViewpointCheck') + + + + + + <p>The <code>PartUsages</code> that identify the stakeholders with concerns framed by this <code>ViewpointDefinition</code>, which are the owned and inherited <code>stakeholderParameters</code> of the <code>framedConcerns</code> of this <code>ViewpointDefinition</code>.</p> + + + + + + + + + <p>A ViewUsage exposing a certain <code>exposedElement</code>.</p> + + + + + + + + + + <p>The RenderingUsages defined by a certain <code>renderingDefinition</code>.</p> + + + + + + + + <p>A <code>ViewUsage</code> is a usage of a <code>ViewDefinition</code> to specify the generation of a view of the <code>members</code> of a collection of <code>exposedNamespaces</code>. The <code>ViewUsage</code> can satisfy more <code>viewpoints</code> than its definition, and it can specialize the <code>viewRendering</code> specified by its definition.<p> + + + + <p>The <code>exposedElements</code> of a <code>ViewUsage</code> are those <code>memberElements</code> of the imported <code>Memberships</code> from all the <code>Expose</code> <code>Relationships</code> for which the <code>includeAsExposed</code> operation returns true.</p> + + + OCL2.0 + exposedElement = ownedImport->selectByKind(Expose). + importedMemberships(Set{}).memberElement-> + select(elm | includeAsExposed(elm))-> + asOrderedSet() + + + + + <p>The <code>satisfiedViewpoints</code> of a <code>ViewUsage</code> are its <code>ownedRequirements</code> that are composite <code>ViewpointUsages</code>. + + + OCL2.0 + satisfiedViewpoint = ownedRequirement-> + selectByKind(ViewpointUsage)-> + select(isComposite) + + + + + <p>The <code>viewConditions</code> of a <code>ViewUsage</code> are the <code>conditions</code> of its owned <code>ElementFilterMemberships</code>.</p> + + + OCL2.0 + viewCondition = ownedMembership-> + selectByKind(ElementFilterMembership). + condition + + + + + <p>The <code>viewRendering</code> of a <code>ViewUsage</code> is the <code>referencedRendering</code> of its owned <code>ViewRenderingMembership<code>, if any.</p> + + + OCL2.0 + viewRendering = + let renderings: OrderedSet(ViewRenderingMembership) = + featureMembership->selectByKind(ViewRenderingMembership) in + if renderings->isEmpty() then null + else renderings->first().referencedRendering + endif + + + + + <p>A <code>ViewUsage</code> must have at most one <code>ViewRenderingMembership</code>.</p> + + + OCL2.0 + featureMembership-> + selectByKind(ViewRenderingMembership)-> + size() <= 1 + + + + + <p>A <code>ViewUsage</code> must directly or indirectly specialize the base <code>ViewUsage</code> <code><em>Views::views</em></code> from the Systems Model Library.</p> + + + OCL2.0 + specializesFromLibrary('Views::views') + + + + + <p>A <code>ViewUsage</code> whose <code>owningType</code> is a <code>ViewDefinition</code> or <code>ViewUsage</code> must specialize the <code>ViewUsage</code> <code><em>Views::View::subviews</em></code> from the Systems Library Model.</p> + + + OCL2.0 + owningType <> null and +(owningType.oclIsKindOf(ViewDefinition) or + owningType.oclIsKindOf(ViewUsage)) implies + specializesFromLibrary('Views::View::subviews') + + + + + + <p>The <code>ViewDefinition</code> that is the <code>definition</code> of this <code>ViewUsage</code>.</p> + + + + + + + <p>The <code>nestedRequirements</code> of this <code>ViewUsage</code> that are <code>ViewpointUsages</code> for (additional) viewpoints satisfied by the <code>ViewUsage</code>.</p> + + + + + + + <p>The <code>Elements</code> that are exposed by this <code>ViewUsage</code>, which are those <code>memberElements</code> of the imported <code>Memberships</code> from all the <code>Expose</code> <code>Relationships</code> that meet all the owned and inherited <code>viewConditions</code>.</p> + + + + + + + + + <p>The <code>RenderingUsage</code> to be used to render views defined by this <code>ViewUsage</code>, which is the <code>referencedRendering</code> of the <code>ViewRenderingMembership</code> of the <code>ViewUsage</code>.<p> + + + + + + + <p>The <code>Expressions</code> related to this <code>ViewUsage</code> by <code>ElementFilterMemberships</code>, which specify conditions on <code>Elements</code> to be rendered in a view.</p> + + + + + + + + + <p>Determine whether the given <code>element</code> meets all the owned and inherited <code>viewConditions</code>.</p> + + + + OCL2.0 + let metadataFeatures: Sequence(AnnotatingElement) = + element.ownedAnnotation.annotatingElement-> + select(oclIsKindOf(MetadataFeature)) in +self.membership->selectByKind(ElementFilterMembership). + condition->forAll(cond | + metadataFeatures->exists(elem | + cond.checkCondition(elem))) + + + + + + + + + + + + + + <p>The ViewUsage that owns a certain <code>rendering</code>.</p> + + + + + + + + + <p>The ViewDefinition that owns a certain <code>rendering</code>.</p> + + + + + + + + + p>The ViewUsage that owns a certain <code>satisfiedViewpoint</code>.</p> + + + + + + + + + <p>The ViewDefinition that owns a certain <code>satisfiedViewpoint</code>.</p> + + + + + + + + + <p>The ViewDefinitions that feature a certain ViewUsage.</p> + + + + + + + + <p>A <code>RenderingDefinition</code> is a <code>PartDefinition</code> that defines a specific rendering of the content of a model view (e.g., symbols, style, layout, etc.).</p> + + + + <p>The <code>renderings</code> of a <code>RenderingDefinition</code> are all its <code>usages</code> that are <code>RenderingUsages</code>.</p> + + + OCL2.0 + rendering = usages->selectByKind(RenderingUsage) + + + + + <p>A <code>RenderingDefinition</code> must directly or indirectly specialize the base <code>RenderingDefinition</code> <code><em>Views::Rendering</em></code> from the Systems Model Library.</p> + + + OCL2.0 + specializesFromLibrary('Views::Rendering') + + + + + + <p>The <code>usages</code> of a <code>RenderingDefinition</code> that are <code>RenderingUsages</code>.</p> + + + + + + + + <p>A <code>ViewpointUsage</code> is a <code>Usage</code> of a <code>ViewpointDefinition</code>.</p> - - - - - <p>The <code>viewpointStakeholders</code> of a <code>ViewpointUsage</code> are the <code>ownedStakeholderParameters</code> of all <code>featureMemberships</code> that are <code>StakeholderMemberships</code>.</p> - - - OCL2.0 - viewpointStakeholder = framedConcern.featureMemberhsip-> - selectByKind(StakeholderMembership). - ownedStakeholderParameter - - - - - <p>A <code>ViewpointUsage</code> must directly or indirectly specialize the base <code>ViewpointUsage</code> <code><em>Views::viewpoints</em></code> from the Systems Model Library.</p> - - - OCL2.0 - specializesFromLibrary('Views::viewpoints') - - - - - <p>A composite <code>ViewpointUsage</code> whose <code>owningType</code> is a <code>ViewDefinition</code> or <code>ViewUsage</code> must directly or indirectly specialize the <code>ViewpointUsage</code> <code><em>Views::View::viewpointSatisfactions</em></code> from the Systems Model Library.</p> - - - OCL2.0 - isComposite and owningType <> null and - (owningType.oclIsKindOf(ViewDefinition) or - owningType.oclIsKindOf(ViewUsage)) implies - specializesFromLibrary('Views::View::viewpointSatisfactions') - - - - - - <p>The <code>ViewpointDefinition</code> that is the <code>definition</code> of this <code>ViewpointUsage<code>.</p> - - - - - - - <p>The <code>PartUsages</code> that identify the stakeholders with concerns framed by this <code>ViewpointUsage</code>, which are the owned and inherited <code>stakeholderParameters</code> of the <code>framedConcerns</code> of this <code>ViewpointUsage</code>.</p> - - - - - - - - - <p>The ViewUsages that have a certain <code>ViewDefinition</code>.</p> - - - - - - - - - - - - - - <p>A <code>ViewDefinition</code> is a <code>PartDefinition</code> that specifies how a view artifact is constructed to satisfy a <code>viewpoint</code>. It specifies a <code>viewConditions</code> to define the model content to be presented and a <code>viewRendering</code> to define how the model content is presented.</p> - - - - <p>The <code>views</code> of a <code>ViewDefinition</code> are all its <code>usages</code> that are <code>ViewUsages</code>.</p> - - - OCL2.0 - view = usage->selectByKind(ViewUsage) - - - - - <p>The <code>satisfiedViewpoints</code> of a <code>ViewDefinition</code> are its <code>ownedRequirements</code> that are composite <code>ViewpointUsages</code>. - - - OCL2.0 - satisfiedViewpoint = ownedRequirement-> - selectByKind(ViewpointUsage)-> - select(isComposite) - - - - - <p>The <code>viewRendering</code> of a <code>ViewDefinition</code> is the <code>referencedRendering</code> of its owned <code>ViewRenderingMembership<code>, if any.</p> - - - OCL2.0 - viewRendering = - let renderings: OrderedSet(ViewRenderingMembership) = - featureMembership->selectByKind(ViewRenderingMembership) in - if renderings->isEmpty() then null - else renderings->first().referencedRendering - endif - - - - - <p>The <code>viewConditions</code> of a <code>ViewDefinition</code> are the <code>conditions</code> of its owned <code>ElementFilterMemberships</code>.</p> - - - OCL2.0 - viewCondition = ownedMembership-> - selectByKind(ElementFilterMembership). - condition - - - - - <p>A <code>ViewDefinition</code> must have at most one <code>ViewRenderingMembership</code>.</p> - - - OCL2.0 - featureMembership-> - selectByKind(ViewRenderingMembership)-> - size() <= 1 - - - - - </p>A <code>ViewDefinition</code> must directly or indirectly specialize the base <code>ViewDefinition</code> <code><em>Views::View</em></code> from the Systems Model Library.</p> - - - OCL2.0 - specializesFromLibrary('Views::View') - - - - - - <p>The <code>usages</code> of this <code>ViewDefinition</code> that are <code>ViewUsages</code>.</p> - - - - - - - <p>The composite <code>ownedRequirements</code> of this <code>ViewDefinition</code> that are <code>ViewpointUsages</code> for viewpoints satisfied by the <code>ViewDefinition</code>.</p> - - - - - - - <p>The <code>RenderingUsage</code> to be used to render views defined by this <code>ViewDefinition</code>, which is the <code>referencedRendering</code> of the <code>ViewRenderingMembership</code> of the <code>ViewDefinition</code>.<p> - - - - - - - <p>The <code>Expressions</code> related to this <code>ViewDefinition</code> by <code>ElementFilterMemberships</code>, which specify conditions on <code>Elements</code> to be rendered in a view.</p> - - - - - - - - - - <p>An <code>Expose</code> is an <code>Import</code> of <code>Memberships</code> into a <code>ViewUsage</code> that provide the <code>Elements</code> to be included in a view. Visibility is always ignored for an <code>Expose</code> (i.e., <code>isImportAll = true</code>).</p> - - - - <p>An <code>Expose</code> always imports all <code>Elements</code>, regardless of visibility.</p> - - - OCL2.0 - isImportAll - - - - - <p>The <code>importOwningNamespace</code> of an <code>Expose</code> must be a <code>ViewUsage</code>.</p> - - - OCL2.0 - importOwningNamespace.oclIsType(ViewUsage) - - - - - <p>An <code>Expose</code> always has <code>protected</code> visibility.</p> - - - OCL2.0 - visibility = VisibilityKind::protected - - - - - - - - <p>An <code>Expose</code> always has <code>protected</code> visibility.</p> - - - - - - - - - - <p>An <code>Expose</code> always imports all <code>Elements</code>, regardless of visibility (<code>isImportAll = true</code>).</p> - - - - - - - - - - <p>The RenderingDefinitions that feature a certain <code>rendering</code>.</p> - - - - - - - - <p>A <code>RenderingUsage</code> is the usage of a <code>RenderingDefinition</code> to specify the rendering of a specific model view to produce a physical view artifact.</p> + + + + + <p>The <code>viewpointStakeholders</code> of a <code>ViewpointUsage</code> are the <code>ownedStakeholderParameters</code> of all <code>featureMemberships</code> that are <code>StakeholderMemberships</code>.</p> + + + OCL2.0 + viewpointStakeholder = framedConcern.featureMemberhsip-> + selectByKind(StakeholderMembership). + ownedStakeholderParameter + + + + + <p>A <code>ViewpointUsage</code> must directly or indirectly specialize the base <code>ViewpointUsage</code> <code><em>Views::viewpointChecks</em></code> from the Systems Model Library.</p> + + + OCL2.0 + specializesFromLibrary('Views::viewpointChecks') + + + + + <p>A composite <code>ViewpointUsage</code> whose <code>owningType</code> is a <code>ViewDefinition</code> or <code>ViewUsage</code> must directly or indirectly specialize the <code>ViewpointUsage</code> <code><em>Views::View::viewpointSatisfactions</em></code> from the Systems Model Library.</p> + + + OCL2.0 + isComposite and owningType <> null and +(owningType.oclIsKindOf(ViewDefinition) or + owningType.oclIsKindOf(ViewUsage)) implies + specializesFromLibrary('Views::View::viewpointSatisfactions') + + + + + + <p>The <code>ViewpointDefinition</code> that is the <code>definition</code> of this <code>ViewpointUsage<code>.</p> + + + + + + + <p>The <code>PartUsages</code> that identify the stakeholders with concerns framed by this <code>ViewpointUsage</code>, which are the owned and inherited <code>stakeholderParameters</code> of the <code>framedConcerns</code> of this <code>ViewpointUsage</code>.</p> + + + + + + + + + <p>The ViewUsages that have a certain <code>ViewDefinition</code>.</p> + + + + + + + + + + + + + + <p>A <code>ViewDefinition</code> is a <code>PartDefinition</code> that specifies how a view artifact is constructed to satisfy a <code>viewpoint</code>. It specifies a <code>viewConditions</code> to define the model content to be presented and a <code>viewRendering</code> to define how the model content is presented.</p> + + + + <p>The <code>views</code> of a <code>ViewDefinition</code> are all its <code>usages</code> that are <code>ViewUsages</code>.</p> + + + OCL2.0 + view = usage->selectByKind(ViewUsage) + + + + + <p>The <code>satisfiedViewpoints</code> of a <code>ViewDefinition</code> are its <code>ownedRequirements</code> that are composite <code>ViewpointUsages</code>. + + + OCL2.0 + satisfiedViewpoint = ownedRequirement-> + selectByKind(ViewpointUsage)-> + select(isComposite) + + + + + <p>The <code>viewRendering</code> of a <code>ViewDefinition</code> is the <code>referencedRendering</code> of its owned <code>ViewRenderingMembership<code>, if any.</p> + + + OCL2.0 + viewRendering = + let renderings: OrderedSet(ViewRenderingMembership) = + featureMembership->selectByKind(ViewRenderingMembership) in + if renderings->isEmpty() then null + else renderings->first().referencedRendering + endif + + + + + <p>The <code>viewConditions</code> of a <code>ViewDefinition</code> are the <code>conditions</code> of its owned <code>ElementFilterMemberships</code>.</p> + + + OCL2.0 + viewCondition = ownedMembership-> + selectByKind(ElementFilterMembership). + condition + + + + + <p>A <code>ViewDefinition</code> must have at most one <code>ViewRenderingMembership</code>.</p> + + + OCL2.0 + featureMembership-> + selectByKind(ViewRenderingMembership)-> + size() <= 1 + + + + + </p>A <code>ViewDefinition</code> must directly or indirectly specialize the base <code>ViewDefinition</code> <code><em>Views::View</em></code> from the Systems Model Library.</p> + + + OCL2.0 + specializesFromLibrary('Views::View') + + + + + + <p>The <code>usages</code> of this <code>ViewDefinition</code> that are <code>ViewUsages</code>.</p> + + + + + + + <p>The composite <code>ownedRequirements</code> of this <code>ViewDefinition</code> that are <code>ViewpointUsages</code> for viewpoints satisfied by the <code>ViewDefinition</code>.</p> + + + + + + + <p>The <code>RenderingUsage</code> to be used to render views defined by this <code>ViewDefinition</code>, which is the <code>referencedRendering</code> of the <code>ViewRenderingMembership</code> of the <code>ViewDefinition</code>.<p> + + + + + + + <p>The <code>Expressions</code> related to this <code>ViewDefinition</code> by <code>ElementFilterMemberships</code>, which specify conditions on <code>Elements</code> to be rendered in a view.</p> + + + + + + + + + + <p>An <code>Expose</code> is an <code>Import</code> of <code>Memberships</code> into a <code>ViewUsage</code> that provide the <code>Elements</code> to be included in a view. Visibility is always ignored for an <code>Expose</code> (i.e., <code>isImportAll = true</code>).</p> + + + + <p>An <code>Expose</code> always imports all <code>Elements</code>, regardless of visibility.</p> + + + OCL2.0 + isImportAll + + + + + <p>The <code>importOwningNamespace</code> of an <code>Expose</code> must be a <code>ViewUsage</code>.</p> + + + OCL2.0 + importOwningNamespace.oclIsType(ViewUsage) + + + + + <p>An <code>Expose</code> always has <code>protected</code> visibility.</p> + + + OCL2.0 + visibility = VisibilityKind::protected + + + + + + + + <p>An <code>Expose</code> always has <code>protected</code> visibility.</p> + + + + + + + + + + <p>An <code>Expose</code> always imports all <code>Elements</code>, regardless of visibility (<code>isImportAll = true</code>).</p> + + + + + + + + + + <p>The RenderingDefinitions that feature a certain <code>rendering</code>.</p> + + + + + + + + <p>A <code>RenderingUsage</code> is the usage of a <code>RenderingDefinition</code> to specify the rendering of a specific model view to produce a physical view artifact.</p> - - - - - <p>A <code>RenderingUsage</code> must directly or indirectly specialize the base <code>RenderingUsage</code> <code><em>Views::renderings</em></code> from the Systems Model Library.</p> - - - OCL2.0 - specializesFromLibrary('Views::renderings') - - - - - <p>A <code>RenderingUsage</code> whose <code>owningType</code> is a <code>RenderingDefinition</code> or <code>RenderingUsage</code> must directly or indirectly specialize the <code>RenderingUsage</code> <code><em>Views::Rendering::subrenderings</em></code> from the Systems Model Library.</p> - - - OCL2.0 - owningType <> null and - (owningType.oclIsKindOf(RenderingDefinition) or - owningType.oclIsKindOf(RenderingUsage)) implies - specializesFromLibrary('Views::Rendering::subrenderings') - - - - - <p>A <code>RenderingUsage</code> whose <code>owningFeatureMembership</code> is a <code>ViewRenderingMembership</code> must redefine the <code>RenderingUsage</code> <code><em>Views::View::viewRendering</em></code>.</p> - - - OCL2.0 - owningFeatureMembership <> null and - owningFeatureMembership.oclIsKindOf(ViewRenderingMembership) implies - redefinesFromLibrary('Views::View::viewRendering') - - - - - - <p>The <code>RenderingDefinition</code> that is the <code>definition</code> of this <code>RenderingUsage</code>.</p> - - - - - - - - - <p>The ViewUsage that owns a certain <code>viewCondition</code>.</p> - - - - - - - - - - <p>The ViewDefinition that owns a certain <code>viewCondition</code>.</p> - - - - - - - - - - <p>The ViewpointDefinition that has a certain <code>viewpointStakeholder</code>.</p> - - - - - - - - - - - - - - <p>A <code>ViewRenderingMembership</code> is a <coed>FeatureMembership</code> that identifies the <code>viewRendering</code> of a <code>ViewDefinition</code> or <code>ViewUsage</code>.</p> - - - - <p>The <code>referencedRendering</code> of a <code>ViewRenderingMembership</code> is the the <code>featureTarget</code> of the <code>referencedFeature</code> of the <code>ownedReferenceSubsetting</code> (which must be a <code>RenderingUsage</code>) of the <code>ownedRendering</code>, if there is one, and, otherwise, the <code>ownedRendering</code> itself.</p> - - - OCL2.0 - referencedRendering = - let referencedFeature : Feature = - ownedRendering.referencedFeatureTarget() in - if referencedFeature = null then ownedRendering - else if referencedFeature.oclIsKindOf(RenderingUsage) then - refrencedFeature.oclAsType(RenderingUsage) - else null - endif endif - - - - - <p>The <code>owningType</code> of a <code>ViewRenderingMembership</code> must be a <code>ViewDefinition</code> or a <code>ViewUsage</code>.</p> - - - OCL2.0 - owningType.oclIsKindOf(ViewDefinition) or - owningType.oclIsKindOf(ViewUsage) - - - - - - - - <p>The owned <code>RenderingUsage</code> that is either itself the <code>referencedRendering</code> or subsets the <code>referencedRendering</code>. - - - - - - - - <p> The <code>RenderingUsage</code> that is referenced through this <code>ViewRenderingMembership</code>. It is the <code>referencedFeature</code> of the <code>ownedReferenceSubsetting</code> for the <code>ownedRendering</code>, if there is one, and, otherwise, the <code>ownedRendering</code> itself.</p> - - - - - - - - - <p>The ViewpointUsage that has a certain <code>viewpointStakeholder</code>.</p> - - - - - - - - - - - - - - <p>A <code>NamespaceExpose</code> is an <code>Expose</code> <code>Relationship</code> that exposes the <code>Memberships</code> of a specific <code>importedNamespace</code> and, if <code>isRecursive = true</code>, additional <code>Memberships</code> recursively.</p> - - - - - - - - - <p>A <code>MembershipExpose</code> is an <code>Expose</code> <code.Relationship</code> that exposes a specific <code>importedMembership</code> and, if <code>isRecursive = true</code>, additional <code>Memberships</code> recursively.</p> - - - - - - - - - - - <p>A <code>VerificationCaseDefinition</code> is a <code>CaseDefinition</code> for the purpose of verification of the subject of the case against its requirements.</p> - - - - <p>The <code>verifiedRequirements</code> of a <code>VerificationCaseDefinition</code> are the <code>verifiedRequirements</code> of its <code>RequirementVerificationMemberships</code>.</p> - - - OCL2.0 - verifiedRequirement = - if objectiveRequirement = null then OrderedSet{} - else - objectiveRequirement.featureMembership-> - selectByKind(RequirementVerificationMembership). - verifiedRequirement->asOrderedSet() - endif - - - - - <p>A <code>VerificationCaseDefinition</code> must directly or indirectly specialize the base <code>VerificationCaseDefinition</code> <em><code>VerificationCases::VerificationCase</code></em> from the Systems Model Library.</p> - - - OCL2.0 - specializesFromLibrary('VerificationCases::VerificationCase') - - - - - - <p>The <code>RequirementUsages</code> verified by this <code>VerificationCaseDefinition</code>, which are the <code>verifiedRequirements</code> of all <code>RequirementVerificationMemberships</code> of the <code>objectiveRequirement</code>.</p> - - - - - - - - - <p>The VerificationUsages that are defined by a certain <code>verificationCaseDefinition</code>.</p> - - - - - - - - <p>A <code>VerificationCaseUsage</code> is a </code>Usage</code> of a <code>VerificationCaseDefinition</code>.</p> - - - - <p>The <code>verifiedRequirements</code> of a <code>VerificationCaseUsage</code> are the <code>verifiedRequirements</code> of its <code>RequirementVerificationMemberships</code>.</p> - - - OCL2.0 - verifiedRequirement = - if objectiveRequirement = null then OrderedSet{} - else - objectiveRequirement.featureMembership-> - selectByKind(RequirementVerificationMembership). - verifiedRequirement->asOrderedSet() - endif - - - - - <p>A <code>VerificationCaseUsage</code> must subset, directly or indirectly, the base <code>VerificationCaseUsage</code> <code><em>VerificationCases::verificationCases</em></code> from the Systems Model Library.</p> - - - OCL2.0 - specializesFromLibrary('VerificationCases::verificationCases') - - - - - If it is composite and owned by a <code>VerificationCaseDefinition</code> or <code>VerificationCaseUsage</code>, then it must specialize <code>VerificationCaseUsage</code> <code><em>VerificationCases::VerificationCase::subVerificationCases</code>.</p> - - - OCL2.0 - isComposite and owningType <> null and - (owningType.oclIsKindOf(VerificationCaseDefinition) or - owningType.oclIsKindOf(VerificationCaseUsage)) implies - specializesFromLibrary('VerificationCases::VerificationCase::subVerificationCases') - - - - - - <p>The <code>VerificationCase</code> that is the <code>definition</code> of this <code>VerificationCaseUsage</code>.</p> - - - - - - - <p>The <code>RequirementUsages</code> verified by this <code>VerificationCaseUsage</code>, which are the <code>verifiedRequirements</code> of all <code>RequirementVerificationMemberships</code> of the <code>objectiveRequirement</code>.</p> - - - - - - - - - <p>The RequirementVerificationMembership that owns a certain RequirementUsage as its <code>ownedRequirement</code>.</p> - - - - - - - - <p>A <code>RequirementVerificationMembership</code> is a <code>RequirementConstraintMembership </code> used in the objective of a <code>VerificationCase</code> to identify a <code>RequirementUsage</code> that is verified by the <code>VerificationCase</code>.</p> - - - - <p>A <code>RequirementVerificationMembership</code> must have <code>kind = requirement</code>.</p> - - - OCL2.0 - kind = RequirementConstraintKind::requirement - - - - - <p>The <code>owningType</code> of a <code>RequirementVerificationMembership</code> must a <code>RequirementUsage</code> that is owned by an <code>ObjectiveMembership</code>.</p> - - - OCL2.0 - owningType.oclIsKindOf(RequirementUsage) and - owningType.owningFeatureMembership <> null and - owningType.owningFeatureMembership.oclIsKindOf(ObjectiveMembership) - - - - - - <p>The owned <code>RequirementUsage</code> that acts as the <code>ownedConstraint</code> for this <code>RequirementVerificationMembership</code>. This will either be the <code>verifiedRequirement</code>, or it will subset the <code>verifiedRequirement</code>.</p> - - - - - - - <p>The <code>kind</code> of a <code>RequirementVerificationMembership</code> must be <code>requirement</code>.</p> - - - - - - <p> The <code>RequirementUsage</code> that is identified as being verified. It is the <code>referencedConstraint</code> of the <code>RequirementVerificationMembership</code> considered as a <code>RequirementConstraintMembership</code>, which must be a <code>RequirementUsage</code>.</p> - - - - - - - - - <p>The VerificationCaseUsages that verify a certain <code>verifiedRequirement</code>.</p> - - - - - - - - - <p>The VerificationCaseDefinitions that verify a certain <code>verifiedRequirement</code>.</p> - - - - - - - - - <p>The RequirementVerificationMembership that has a certain RequirementUsage as its <code>verifiedRequirement</code>.</p> - - - - - - - - - - <p>An <code>EnumerationDefinition</code> is an <code>AttributeDefinition</code> all of whose instances are given by an explicit list of <code>enumeratedValues</code>. This is realized by requiring that the <code>EnumerationDefinition</code> have <code>isVariation = true</code>, with the <code>enumeratedValues</code> being its <code>variants</code>.</p> - - - - <p>An <code>EnumerationDefinition</code> must be a variation.</p> - - - OCL2.0 - isVariation - - - - - - <p><code>EnumerationUsages</code> of this <code>EnumerationDefinition</code>that have distinct, fixed values. Each <code>enumeratedValue</code> specifies one of the allowed instances of the <code>EnumerationDefinition</code>.</p> - - - - - - - <p>An EnumerationDefinition is considered semantically to be a variation whose allowed variants are its <code>enumerationValues</code>.</p> - - - - - - - - <p>An <code>EnumerationUsage</code> is an <code>AttributeUsage</code> whose <code>attributeDefinition</code> is an <code>EnumerationDefinition</code>.</p> - - - - - <p>The single EnumerationDefinition that is the type of this EnumerationUsage.</p> - - - - - - - - - <p>The EnumerationDefinition that owns a certain <code>enumeratedValue</code>.</p> - - - - - - - - - <p>The EnumerationUsages that are typed by a certain EnumerationDefinition.</p> - - - - - - - - - - - <p>The AllocationUsages that have a certain AllocationDefinition as their <code>allocationDefinition</code>.</p> - - - - - - - - <p>An <code>AllocationDefinition</code> is a <code>ConnectionDefinition</code> that specifies that some or all of the responsibility to realize the intent of the <code>source</code> is allocated to the <code>target</code> instances. Such allocations define mappings across the various structures and hierarchies of a system model, perhaps as a precursor to more rigorous specifications and implementations. An <code>AllocationDefinition</code> can itself be refined using nested <code>allocations</code> that give a finer-grained decomposition of the containing allocation mapping.</p> - - - - <p> The <code>allocations</code> of an <code>AllocationDefinition</code> are all its <code>usages</code> that are <code>AllocationUsages</code>.</p> - - - OCL2.0 - allocation = usage->selectAsKind(AllocationUsage) - - - - - <p>An <code>AllocationDefinition</code> must directly or indirectly specialize the <code>AllocationDefinition</code> <em><code>Allocations::Allocation</code></em> from the Systems Model Library.</p> - - - OCL2.0 - specializesFromLibrary('Allocations::Allocation') - - - - - - <p>The <code>AllocationUsages</code> that refine the allocation mapping defined by this <code>AllocationDefinition</code>.</p> - - - - - - - - <p>An <code>AllocationUsage</code> is a usage of an <code>AllocationDefinition</code> asserting the allocation of the <code>source</code> feature to the <code>target</code> feature.</p> - - - - <p>An <code>AllocationUsage</code> must directly or indirectly specialize the <code>AllocationUsage</code> <em><code>Allocations::allocations</code></em> from the Systems Model Library.</p> - - - OCL2.0 - specializesFromLibrary('Allocations::allocations') - - - - - - <p>The <code>AllocationDefinitions</code> that are the types of this <code>AllocationUsage</code>.</p> - - - - - - - - - <p>The AllocationDefinitions that feature a certain <code>allocation</code>.</p> - - - - - - - - - - - <p>The <code>OccurrenceUsage</code> that has a certain <code>individualDefinition</code>.</p> - - - - - - - - <p><code>PortionKind</code> is an enumeration of the specific kinds of <code><em>Occurrence</em></code> portions that can be represented by an <code>OccurrenceUsage</code>.</p> - - - - <p>A time slice of an <code>Occurrence</code> (a portion over time).</p> - - - - - <p>A snapshot of an <code>Occurrence</code> (a time slice with zero duration).</p> - - - - - - <p>An <code>OccurrenceUsage</code> is a <code>Usage</code> whose <code>types</code> are all <code>Classes</code>. Nominally, if a <code>type</code> is an <code>OccurrenceDefinition</code>, an <code>OccurrenceUsage</code> is a <code>Usage</code> of that <code>OccurrenceDefinition</code> within a system. However, other types of Kernel <code>Classes</code> are also allowed, to permit use of <code>Classes</code> from the Kernel Model Libraries.</p> - - - - - <p>The <code>individualDefinition</code> of an <code>OccurrenceUsage</code> is the <code>occurrenceDefinition</code> that is an <code>OccurrenceDefinition</code> with <code>isIndividual = true</code>, if any.</p> - - - OCL2.0 - individualDefinition = - let individualDefinitions : OrderedSet(OccurrenceDefinition) = - occurrenceDefinition-> - selectByKind(OccurrenceDefinition)-> - select(isIndividual) in - if individualDefinitions->isEmpty() then null - else individualDefinitions->first() endif - - - - - <p>If an <code>OccurrenceUsage</code> has <code>isIndividual = true</code>, then it must have an <code>individualDefinition</code>.</p> - - - OCL2.0 - isIndividual implies individualDefinition <> null - - - - - <p>An <code>OccurrenceUsage</code> must directly or indirectly specialize <code><em>Occurrences::occurrences</em></code> from the Kernel Semantic Library.</p> - - - OCL2.0 - specializesFromLibrary('Occurrences::occurrences') - - - - - <p>A composite <code>OccurrenceUsage</code>, whose <code>ownedType</code> is a <code>Class</code>, another <code>OccurrenceUsage</code>, or any kind of <code>Feature</code> typed by a <code>Class</code>, must directly or indirectly specialize <em><code>Occurrences::Occurrence::suboccurrences</code></em>. - - - OCL2.0 - isComposite and - owningType <> null and - (owningType.oclIsKindOf(Class) or - owningType.oclIsKindOf(OccurrenceUsage) or - owningType.oclIsKindOf(Feature) and - owningType.oclAsType(Feature).type-> - exists(oclIsKind(Class))) implies - specializesFromLibrary('Occurrences::Occurrence::suboccurrences') - - - - - <p>An <code>OccurrenceUsage</code> must have at most one <code>occurrenceDefinition</code> with <code>isIndividual = true</code>.</p> - - - OCL2.0 - occurrenceDefinition-> - selectByKind(OccurrenceDefinition)-> - select(isIndividual).size() <= 1 - - - - - <p>If an <code>OccurrenceUsage</code> has <code>portionKind = snapshot</code>, then it must directly or indirectly specialize <em><code>Occurrences::Occurrence::snapshots</code></em> from the Kernel Semantic Library.</p> - - - OCL2.0 - portionKind = PortionKind::snapshot implies - specializesFromLibrary('Occurrences::Occurrence::snapshots') - - - - - <p>If an <code>OccurrenceUsage</code> has <code>portionKind = timeslice</code>, then it must directly or indirectly specialize <em><code>Occurrences::Occurrence::timeSlices</code></em> from the Kernel Semantic Library.</p> - - - OCL2.0 - portionKind = PortionKind::timeslice implies - specializesFromLibrary('Occurrences::Occurrence::timeSlices') - - - - - <p>If an <code>OccurrenceUsage</code> has a non-null <code>portionKind</code>, then its <code>owningType</code> must be an <code>OccurrenceDefinition</code> or an <code>OccurrenceUsage</code>.</p> - - - OCL2.0 - portionKind <> null implies - owningType <> null and - (owningType.oclIsKindOf(OccurrenceDefinition) or - owningType.oclIsKindOf(OccurrenceUsage)) - - - - - <p>If an <code>OccurrenceUsage</code> has a non-null <code>portionKind</code>, then it must have <code>isPortion = true</code>.</p> - - - OCL2.0 - portionKind <> null implies isPortion - - - - - - <p>The <code>Classes</code> that are the types of this <code>OccurrenceUsage</code>. Nominally, these are <code>OccurrenceDefinitions</code>, but other kinds of kernel <code>Classes</code> are also allowed, to permit use of <code>Classes</code> from the Kernel Model Libraries.</p> - - - - - - - - <p>The at most one <code>occurrenceDefinition</code> that has <code>isIndividual = true</code>.</p> - - - - - - - <p>Whether this <code>OccurrenceUsage</code> represents the usage of the specific individual represented by its <code>individualDefinition</code>.</p> - - - - - - - <p>The kind of temporal portion (time slice or snapshot) is represented by this <code>OccurrenceUsage</code>. If <code>portionKind</code> is not null, then the <code>owningType</code> of the <code>OccurrenceUsage</code> must be non-null, and the <code>OccurrenceUsage</code> represents portions of the featuring instance of the <code>owningType</code>.</p> - - - - - - - - - <p>The EventOccurrenceUsages that reference a certain <code>eventOccurrence</code>.</p> - - - - - - - - <p>An <code>OccurrenceDefinition</code> is a <code>Definition</code> of a <code>Class</code> of individuals that have an independent life over time and potentially an extent over space. This includes both structural things and behaviors that act on such structures. If <code>isIndividual</code> is true, then the <code>OccurrenceDefinition</code> is constrained to have (at most) a single instance that is the entire life of a single individual.</p> - - - - <p>An <code>OccurrenceDefinition</code> with <code>isIndividual = true</code> must directly or indirectly specialize <em><code>Occurrences::Life</code></em> from the Kernel Semantic Library.</p> - - - OCL2.0 - isIndividual implies specializesFromLibrary('Occurrences::Life') - - - - - <p>An <code>OccurrenceDefinition</code> with <code>isIndividual = true</code> must have a <code>multiplicity</code> that specializes <em><code>Base::zeroOrOne</code></em> from the Kernel Semantic Library.</p> - - - OCL2.0 - isIndividual implies - multiplicity <> null and - multiplicity.specializesFromLibrary('Base::zeroOrOne') - - - - - - - - - <p>Whether this <code>OccurrenceDefinition</code> is constrained to represent at most one thing.</p> - - - - - - - - - <p>The <code>OccurrenceUsages</code> being typed by a certain <code>Class</code>.</p> - - - - - - - - <p>An <code>EventOccurrenceUsage</code> is an <code>OccurrenceUsage</code> that represents another <code>OccurrenceUsage</code> occurring as a <code><em>suboccurrence</em></code> of the containing occurrence of the <code>EventOccurrenceUsage</code>. Unless it is the <code>EventOccurrenceUsage</code> itself, the referenced <code>OccurrenceUsage</code> is related to the <code>EventOccurrenceUsage</code> by a <code>ReferenceSubsetting</code> <code>Relationship</code>.</p> + + + + + <p>A <code>RenderingUsage</code> must directly or indirectly specialize the base <code>RenderingUsage</code> <code><em>Views::renderings</em></code> from the Systems Model Library.</p> + + + OCL2.0 + specializesFromLibrary('Views::renderings') + + + + + <p>A <code>RenderingUsage</code> whose <code>owningType</code> is a <code>RenderingDefinition</code> or <code>RenderingUsage</code> must directly or indirectly specialize the <code>RenderingUsage</code> <code><em>Views::Rendering::subrenderings</em></code> from the Systems Model Library.</p> + + + OCL2.0 + owningType <> null and +(owningType.oclIsKindOf(RenderingDefinition) or + owningType.oclIsKindOf(RenderingUsage)) implies + specializesFromLibrary('Views::Rendering::subrenderings') + + + + + <p>A <code>RenderingUsage</code> whose <code>owningFeatureMembership</code> is a <code>ViewRenderingMembership</code> must redefine the <code>RenderingUsage</code> <code><em>Views::View::viewRendering</em></code>.</p> + + + OCL2.0 + owningFeatureMembership <> null and +owningFeatureMembership.oclIsKindOf(ViewRenderingMembership) implies + redefinesFromLibrary('Views::View::viewRendering') + + + + + + <p>The <code>RenderingDefinition</code> that is the <code>definition</code> of this <code>RenderingUsage</code>.</p> + + + + + + + + + <p>The ViewUsage that owns a certain <code>viewCondition</code>.</p> + + + + + + + + + + <p>The ViewDefinition that owns a certain <code>viewCondition</code>.</p> + + + + + + + + + + <p>The ViewpointDefinition that has a certain <code>viewpointStakeholder</code>.</p> + + + + + + + + + + + + + + <p>A <code>ViewRenderingMembership</code> is a <coed>FeatureMembership</code> that identifies the <code>viewRendering</code> of a <code>ViewDefinition</code> or <code>ViewUsage</code>.</p> + + + + <p>The <code>referencedRendering</code> of a <code>ViewRenderingMembership</code> is the the <code>featureTarget</code> of the <code>referencedFeature</code> of the <code>ownedReferenceSubsetting</code> (which must be a <code>RenderingUsage</code>) of the <code>ownedRendering</code>, if there is one, and, otherwise, the <code>ownedRendering</code> itself.</p> + + + OCL2.0 + referencedRendering = + let referencedFeature : Feature = + ownedRendering.referencedFeatureTarget() in + if referencedFeature = null then ownedRendering + else if referencedFeature.oclIsKindOf(RenderingUsage) then + refrencedFeature.oclAsType(RenderingUsage) + else null + endif endif + + + + + <p>The <code>owningType</code> of a <code>ViewRenderingMembership</code> must be a <code>ViewDefinition</code> or a <code>ViewUsage</code>.</p> + + + OCL2.0 + owningType.oclIsKindOf(ViewDefinition) or +owningType.oclIsKindOf(ViewUsage) + + + + + + + + <p>The owned <code>RenderingUsage</code> that is either itself the <code>referencedRendering</code> or subsets the <code>referencedRendering</code>. + + + + + + + + <p> The <code>RenderingUsage</code> that is referenced through this <code>ViewRenderingMembership</code>. It is the <code>referencedFeature</code> of the <code>ownedReferenceSubsetting</code> for the <code>ownedRendering</code>, if there is one, and, otherwise, the <code>ownedRendering</code> itself.</p> + + + + + + + + + <p>The ViewpointUsage that has a certain <code>viewpointStakeholder</code>.</p> + + + + + + + + + + + + + + <p>A <code>NamespaceExpose</code> is an <code>Expose</code> <code>Relationship</code> that exposes the <code>Memberships</code> of a specific <code>importedNamespace</code> and, if <code>isRecursive = true</code>, additional <code>Memberships</code> recursively.</p> + + + + + + + + + <p>A <code>MembershipExpose</code> is an <code>Expose</code> <code.Relationship</code> that exposes a specific <code>importedMembership</code> and, if <code>isRecursive = true</code>, additional <code>Memberships</code> recursively.</p> + + + + + + + + + + + <p>A <code>VerificationCaseDefinition</code> is a <code>CaseDefinition</code> for the purpose of verification of the subject of the case against its requirements.</p> + + + + <p>The <code>verifiedRequirements</code> of a <code>VerificationCaseDefinition</code> are the <code>verifiedRequirements</code> of its <code>RequirementVerificationMemberships</code>.</p> + + + OCL2.0 + verifiedRequirement = + if objectiveRequirement = null then OrderedSet{} + else + objectiveRequirement.featureMembership-> + selectByKind(RequirementVerificationMembership). + verifiedRequirement->asOrderedSet() + endif + + + + + <p>A <code>VerificationCaseDefinition</code> must directly or indirectly specialize the base <code>VerificationCaseDefinition</code> <em><code>VerificationCases::VerificationCase</code></em> from the Systems Model Library.</p> + + + OCL2.0 + specializesFromLibrary('VerificationCases::VerificationCase') + + + + + + <p>The <code>RequirementUsages</code> verified by this <code>VerificationCaseDefinition</code>, which are the <code>verifiedRequirements</code> of all <code>RequirementVerificationMemberships</code> of the <code>objectiveRequirement</code>.</p> + + + + + + + + + <p>The VerificationUsages that are defined by a certain <code>verificationCaseDefinition</code>.</p> + + + + + + + + <p>A <code>VerificationCaseUsage</code> is a </code>Usage</code> of a <code>VerificationCaseDefinition</code>.</p> + + + + <p>The <code>verifiedRequirements</code> of a <code>VerificationCaseUsage</code> are the <code>verifiedRequirements</code> of its <code>RequirementVerificationMemberships</code>.</p> + + + OCL2.0 + verifiedRequirement = + if objectiveRequirement = null then OrderedSet{} + else + objectiveRequirement.featureMembership-> + selectByKind(RequirementVerificationMembership). + verifiedRequirement->asOrderedSet() + endif + + + + + <p>A <code>VerificationCaseUsage</code> must subset, directly or indirectly, the base <code>VerificationCaseUsage</code> <code><em>VerificationCases::verificationCases</em></code> from the Systems Model Library.</p> + + + OCL2.0 + specializesFromLibrary('VerificationCases::verificationCases') + + + + + If it is composite and owned by a <code>VerificationCaseDefinition</code> or <code>VerificationCaseUsage</code>, then it must specialize <code>VerificationCaseUsage</code> <code><em>VerificationCases::VerificationCase::subVerificationCases</code>.</p> + + + OCL2.0 + isComposite and owningType <> null and + (owningType.oclIsKindOf(VerificationCaseDefinition) or + owningType.oclIsKindOf(VerificationCaseUsage)) implies + specializesFromLibrary('VerificationCases::VerificationCase::subVerificationCases') + + + + + + <p>The <code>VerificationCase</code> that is the <code>definition</code> of this <code>VerificationCaseUsage</code>.</p> + + + + + + + <p>The <code>RequirementUsages</code> verified by this <code>VerificationCaseUsage</code>, which are the <code>verifiedRequirements</code> of all <code>RequirementVerificationMemberships</code> of the <code>objectiveRequirement</code>.</p> + + + + + + + + + <p>The RequirementVerificationMembership that owns a certain RequirementUsage as its <code>ownedRequirement</code>.</p> + + + + + + + + <p>A <code>RequirementVerificationMembership</code> is a <code>RequirementConstraintMembership </code> used in the objective of a <code>VerificationCase</code> to identify a <code>RequirementUsage</code> that is verified by the <code>VerificationCase</code>.</p> + + + + <p>A <code>RequirementVerificationMembership</code> must have <code>kind = requirement</code>.</p> + + + OCL2.0 + kind = RequirementConstraintKind::requirement + + + + + <p>The <code>owningType</code> of a <code>RequirementVerificationMembership</code> must a <code>RequirementUsage</code> that is owned by an <code>ObjectiveMembership</code>.</p> + + + OCL2.0 + owningType.oclIsKindOf(RequirementUsage) and +owningType.owningFeatureMembership <> null and +owningType.owningFeatureMembership.oclIsKindOf(ObjectiveMembership) + + + + + + <p>The owned <code>RequirementUsage</code> that acts as the <code>ownedConstraint</code> for this <code>RequirementVerificationMembership</code>. This will either be the <code>verifiedRequirement</code>, or it will subset the <code>verifiedRequirement</code>.</p> + + + + + + + <p>The <code>kind</code> of a <code>RequirementVerificationMembership</code> must be <code>requirement</code>.</p> + + + + + + <p> The <code>RequirementUsage</code> that is identified as being verified. It is the <code>referencedConstraint</code> of the <code>RequirementVerificationMembership</code> considered as a <code>RequirementConstraintMembership</code>, which must be a <code>RequirementUsage</code>.</p> + + + + + + + + + <p>The VerificationCaseUsages that verify a certain <code>verifiedRequirement</code>.</p> + + + + + + + + + <p>The VerificationCaseDefinitions that verify a certain <code>verifiedRequirement</code>.</p> + + + + + + + + + <p>The RequirementVerificationMembership that has a certain RequirementUsage as its <code>verifiedRequirement</code>.</p> + + + + + + + + + + <p>An <code>EnumerationDefinition</code> is an <code>AttributeDefinition</code> all of whose instances are given by an explicit list of <code>enumeratedValues</code>. This is realized by requiring that the <code>EnumerationDefinition</code> have <code>isVariation = true</code>, with the <code>enumeratedValues</code> being its <code>variants</code>.</p> + + + + <p>An <code>EnumerationDefinition</code> must be a variation.</p> + + + OCL2.0 + isVariation + + + + + + <p><code>EnumerationUsages</code> of this <code>EnumerationDefinition</code>that have distinct, fixed values. Each <code>enumeratedValue</code> specifies one of the allowed instances of the <code>EnumerationDefinition</code>.</p> + + + + + + + <p>An EnumerationDefinition is considered semantically to be a variation whose allowed variants are its <code>enumerationValues</code>.</p> + + + + + + + + <p>An <code>EnumerationUsage</code> is an <code>AttributeUsage</code> whose <code>attributeDefinition</code> is an <code>EnumerationDefinition</code>.</p> + + + + + <p>The single EnumerationDefinition that is the type of this EnumerationUsage.</p> + + + + + + + + + <p>The EnumerationDefinition that owns a certain <code>enumeratedValue</code>.</p> + + + + + + + + + <p>The EnumerationUsages that are typed by a certain EnumerationDefinition.</p> + + + + + + + + + + + <p>The AllocationUsages that have a certain AllocationDefinition as their <code>allocationDefinition</code>.</p> + + + + + + + + <p>An <code>AllocationDefinition</code> is a <code>ConnectionDefinition</code> that specifies that some or all of the responsibility to realize the intent of the <code>source</code> is allocated to the <code>target</code> instances. Such allocations define mappings across the various structures and hierarchies of a system model, perhaps as a precursor to more rigorous specifications and implementations. An <code>AllocationDefinition</code> can itself be refined using nested <code>allocations</code> that give a finer-grained decomposition of the containing allocation mapping.</p> + + + + <p> The <code>allocations</code> of an <code>AllocationDefinition</code> are all its <code>usages</code> that are <code>AllocationUsages</code>.</p> + + + OCL2.0 + allocation = usage->selectAsKind(AllocationUsage) + + + + + <p>An <code>AllocationDefinition</code> must directly or indirectly specialize the <code>AllocationDefinition</code> <em><code>Allocations::Allocation</code></em> from the Systems Model Library.</p> + + + OCL2.0 + specializesFromLibrary('Allocations::Allocation') + + + + + + <p>The <code>AllocationUsages</code> that refine the allocation mapping defined by this <code>AllocationDefinition</code>.</p> + + + + + + + + <p>An <code>AllocationUsage</code> is a usage of an <code>AllocationDefinition</code> asserting the allocation of the <code>source</code> feature to the <code>target</code> feature.</p> + + + + <p>An <code>AllocationUsage</code> must directly or indirectly specialize the <code>AllocationUsage</code> <em><code>Allocations::allocations</code></em> from the Systems Model Library.</p> + + + OCL2.0 + specializesFromLibrary('Allocations::allocations') + + + + + + <p>The <code>AllocationDefinitions</code> that are the types of this <code>AllocationUsage</code>.</p> + + + + + + + + + <p>The AllocationDefinitions that feature a certain <code>allocation</code>.</p> + + + + + + + + + + + <p>The <code>OccurrenceUsage</code> that has a certain <code>individualDefinition</code>.</p> + + + + + + + + <p><code>PortionKind</code> is an enumeration of the specific kinds of <code><em>Occurrence</em></code> portions that can be represented by an <code>OccurrenceUsage</code>.</p> + + + + <p>A time slice of an <code>Occurrence</code> (a portion over time).</p> + + + + + <p>A snapshot of an <code>Occurrence</code> (a time slice with zero duration).</p> + + + + + + <p>An <code>OccurrenceUsage</code> is a <code>Usage</code> whose <code>types</code> are all <code>Classes</code>. Nominally, if a <code>type</code> is an <code>OccurrenceDefinition</code>, an <code>OccurrenceUsage</code> is a <code>Usage</code> of that <code>OccurrenceDefinition</code> within a system. However, other types of Kernel <code>Classes</code> are also allowed, to permit use of <code>Classes</code> from the Kernel Model Libraries.</p> + + + + + <p>The <code>individualDefinition</code> of an <code>OccurrenceUsage</code> is the <code>occurrenceDefinition</code> that is an <code>OccurrenceDefinition</code> with <code>isIndividual = true</code>, if any.</p> + + + OCL2.0 + individualDefinition = + let individualDefinitions : OrderedSet(OccurrenceDefinition) = + occurrenceDefinition-> + selectByKind(OccurrenceDefinition)-> + select(isIndividual) in + if individualDefinitions->isEmpty() then null + else individualDefinitions->first() endif + + + + + <p>If an <code>OccurrenceUsage</code> has <code>isIndividual = true</code>, then it must have an <code>individualDefinition</code>.</p> + + + OCL2.0 + isIndividual implies individualDefinition <> null + + + + + <p>An <code>OccurrenceUsage</code> must directly or indirectly specialize <code><em>Occurrences::occurrences</em></code> from the Kernel Semantic Library.</p> + + + OCL2.0 + specializesFromLibrary('Occurrences::occurrences') + + + + + <p>A composite <code>OccurrenceUsage</code>, whose <code>ownedType</code> is a <code>Class</code>, another <code>OccurrenceUsage</code>, or any kind of <code>Feature</code> typed by a <code>Class</code>, must directly or indirectly specialize <em><code>Occurrences::Occurrence::suboccurrences</code></em>. + + + OCL2.0 + isComposite and +owningType <> null and +(owningType.oclIsKindOf(Class) or + owningType.oclIsKindOf(OccurrenceUsage) or + owningType.oclIsKindOf(Feature) and + owningType.oclAsType(Feature).type-> + exists(oclIsKind(Class))) implies + specializesFromLibrary('Occurrences::Occurrence::suboccurrences') + + + + + <p>An <code>OccurrenceUsage</code> must have at most one <code>occurrenceDefinition</code> with <code>isIndividual = true</code>.</p> + + + OCL2.0 + occurrenceDefinition-> + selectByKind(OccurrenceDefinition)-> + select(isIndividual).size() <= 1 + + + + + <p>If an <code>OccurrenceUsage</code> has <code>portionKind = snapshot</code>, then it must directly or indirectly specialize <em><code>Occurrences::Occurrence::snapshots</code></em> from the Kernel Semantic Library.</p> + + + OCL2.0 + portionKind = PortionKind::snapshot implies + specializesFromLibrary('Occurrences::Occurrence::snapshots') + + + + + <p>If an <code>OccurrenceUsage</code> has <code>portionKind = timeslice</code>, then it must directly or indirectly specialize <em><code>Occurrences::Occurrence::timeSlices</code></em> from the Kernel Semantic Library.</p> + + + OCL2.0 + portionKind = PortionKind::timeslice implies + specializesFromLibrary('Occurrences::Occurrence::timeSlices') + + + + + <p>If an <code>OccurrenceUsage</code> has a non-null <code>portionKind</code>, then its <code>owningType</code> must be an <code>OccurrenceDefinition</code> or an <code>OccurrenceUsage</code>.</p> + + + OCL2.0 + portionKind <> null implies + owningType <> null and + (owningType.oclIsKindOf(OccurrenceDefinition) or + owningType.oclIsKindOf(OccurrenceUsage)) + + + + + <p>If an <code>OccurrenceUsage</code> has a non-null <code>portionKind</code>, then it must have <code>isPortion = true</code>.</p> + + + OCL2.0 + portionKind <> null implies isPortion + + + + + + <p>The <code>Classes</code> that are the types of this <code>OccurrenceUsage</code>. Nominally, these are <code>OccurrenceDefinitions</code>, but other kinds of kernel <code>Classes</code> are also allowed, to permit use of <code>Classes</code> from the Kernel Model Libraries.</p> + + + + + + + + <p>The at most one <code>occurrenceDefinition</code> that has <code>isIndividual = true</code>.</p> + + + + + + + <p>Whether this <code>OccurrenceUsage</code> represents the usage of the specific individual represented by its <code>individualDefinition</code>.</p> + + + + + + + <p>The kind of temporal portion (time slice or snapshot) is represented by this <code>OccurrenceUsage</code>. If <code>portionKind</code> is not null, then the <code>owningType</code> of the <code>OccurrenceUsage</code> must be non-null, and the <code>OccurrenceUsage</code> represents portions of the featuring instance of the <code>owningType</code>.</p> + + + + + + + + + <p>The EventOccurrenceUsages that reference a certain <code>eventOccurrence</code>.</p> + + + + + + + + <p>An <code>OccurrenceDefinition</code> is a <code>Definition</code> of a <code>Class</code> of individuals that have an independent life over time and potentially an extent over space. This includes both structural things and behaviors that act on such structures. If <code>isIndividual</code> is true, then the <code>OccurrenceDefinition</code> is constrained to have (at most) a single instance that is the entire life of a single individual.</p> + + + + <p>An <code>OccurrenceDefinition</code> with <code>isIndividual = true</code> must directly or indirectly specialize <em><code>Occurrences::Life</code></em> from the Kernel Semantic Library.</p> + + + OCL2.0 + isIndividual implies specializesFromLibrary('Occurrences::Life') + + + + + <p>An <code>OccurrenceDefinition</code> with <code>isIndividual = true</code> must have a <code>multiplicity</code> that specializes <em><code>Base::zeroOrOne</code></em> from the Kernel Semantic Library.</p> + + + OCL2.0 + isIndividual implies + multiplicity <> null and + multiplicity.specializesFromLibrary('Base::zeroOrOne') + + + + + + + + + <p>Whether this <code>OccurrenceDefinition</code> is constrained to represent at most one thing.</p> + + + + + + + + + <p>The <code>OccurrenceUsages</code> being typed by a certain <code>Class</code>.</p> + + + + + + + + <p>An <code>EventOccurrenceUsage</code> is an <code>OccurrenceUsage</code> that represents another <code>OccurrenceUsage</code> occurring as a <code><em>suboccurrence</em></code> of the containing occurrence of the <code>EventOccurrenceUsage</code>. Unless it is the <code>EventOccurrenceUsage</code> itself, the referenced <code>OccurrenceUsage</code> is related to the <code>EventOccurrenceUsage</code> by a <code>ReferenceSubsetting</code> <code>Relationship</code>.</p> - <p>If the <code>EventOccurrenceUsage</code> is owned by an <code>OccurrenceDefinition</code> or <code>OccurrenceUsage</code>, then it also subsets the <em><code>timeEnclosedOccurrences</code></em> property of the <code>Class</code> <em><code>Occurrence</code></em> from the Kernel Semantic Library model <em><code>Occurrences</code></em>.</p> - - - - <p>If an <code>EventOccurrenceUsage</code> has no <code>ownedReferenceSubsetting</code>, then its <code>eventOccurrence</code> is the <code>EventOccurrenceUsage</code> itself. Otherwise, the <code>eventOccurrence</code> is the <code>featureTarget</code> of the <code>referencedFeature</code> of the <code>ownedReferenceSubsetting</code> (which must be an <code>OccurrenceUsage</code>).</p> - - - OCL2.0 - eventOccurrence = - if referencedFeatureTarget() = null then self - else if referencedFeatureTarget().oclIsKindOf(OccurrenceUsage) then - referencedFeatureTarget().oclAsType(OccurrenceUsage) - else null - endif endif - - - - - <p>If an <code>EventOccurrenceUsage</code> has an <code>ownedReferenceSubsetting</code>, then the <code>featureTarget</code> of the <code>referencedFeature</code> must be an <code>OccurrenceUsage</code>.</p> - - - OCL2.0 - referencedFeatureTarget() <> null implies - referencedFeatureTarget().oclIsKindOf(OccurrenceUsage) - - - - - <p>If an <code>EventOccurrenceUsage</code> has an <code>owningType</code> that is an <code>OccurrenceDefinition</code> or <code>OccurrenceUsage</code>, then it must directly or indirectly specialize the <code>Feature</code> <code><em>Occurrences::Occurrence::timeEnclosedOccurrences</em></code>.</p> - - - OCL2.0 - owningType <> null and - (owningType.oclIsKindOf(OccurrenceDefinition) or - owningType.oclIsKindOf(OccurrenceUsage)) implies - specializesFromLibrary('Occurrences::Occurrence::timeEnclosedOccurrences') - - - - - <p>An <code>EventOccurrenceUsage</code> must be referential.</p> - - - OCL2.0 - isReference - - - - - - <p>The <code>OccurrenceUsage</code> referenced as an event by this <code>EventOccurrenceUsage</code>. It is the <code>referenceFeature</code> of the <code>ownedReferenceSubsetting</code> for the <code>EventOccurrenceUsage</code>, if there is one, and, otherwise, the <code>EventOccurrenceUsage</code> itself.</p> - - - - - - - <p>Always true for an <code>EventOccurrenceUsage</code>.</p> - - - - - - - - - - - <p>The UseCaseDefinition that includes a certain <code>includedUseCase</code>.</p> - - - - - - - - - <p>The UseCaseUsage that includes a certain <code>includedUseCase</code>.</p> - - - - - - - - <p>An <code>IncludeUseCaseUsage</code> is a <code>UseCaseUsage</code> that represents the inclusion of a <code>UseCaseUsage</code> by a <code>UseCaseDefinition</code> or <code>UseCaseUsage</code>. Unless it is the <code>IncludeUseCaseUsage</code> itself, the <code>UseCaseUsage</code> to be included is related to the <code>includedUseCase</code> by a <code>ReferenceSubsetting</code> <code>Relationship</code>. An <code>IncludeUseCaseUsage</code> is also a PerformActionUsage, with its <code>useCaseIncluded</code> as the <code>performedAction</code>.</p> - - - - - <p>A <code>IncludeUseCaseUsage</code> whose <code>owningType</code> is a <code>UseCaseDefinition</code> or <code>UseCaseUsage</code> must directly or indirectly specialize the <code>UseCaseUsage</code> <em><code>UseCases::UseCase::includedUseCases</code></em> from the Systems Model Library.</p> - - - OCL2.0 - owningType <> null and - (owningType.oclIsKindOf(UseCaseDefinition) or - owningType.oclIsKindOf(UseCaseUsage) implies - specializesFromLibrary('UseCases::UseCase::includedUseCases') - - - - - <p>If an <code>IncludeUseCaseUsage</code> has an <code>ownedReferenceSubsetting</code>, then the <code>featureTarget</code> of the <code>referencedFeature</code> must be a <code>UseCaseUsage</code>.</p> - - - OCL2.0 - referencedFeatureTarget() <> null implies - referencedFeatureTarget().oclIsKindOf(UseCaseUsage) - - - - - - - <p>The <code>UseCaseUsage</code> to be included by this <code>IncludeUseCaseUsage</code>. It is the <code>performedAction</code> of the <code>IncludeUseCaseUsage</code> considered as a <code>PerformActionUsage</code>, which must be a <code>UseCaseUsage</code>.</p> - - - - - - - - - - <p>The IncludeUseCaseUsages that have a certain UseCaseUsage as their <code>includedUseCase</code>.</p> - - - - - - - - - <p>The UseCaseUsages being typed by a certain UseCaseDefinition.</p> - - - - - - - - <p>A <code>UseCaseUsage</code> is a <code>Usage</code> of a <code>UseCaseDefinition</code>.</p> - - - - <p>The <code>includedUseCases<code> of a <code>UseCaseUsage</code> are the <code>useCaseIncludeds</code> of the <code>IncludeUseCaseUsages</code> owned by the <code>UseCaseUsage<code>.</p> - - - OCL2.0 - includedUseCase = ownedUseCase-> - selectByKind(IncludeUseCaseUsage). - useCaseIncluded - - - - - <p>A <code>UseCaseUsage</code> must directly or indirectly specializes the base <code>UseCaseUsage</code> <em><code>UseCases::useCases</code></em> from the Systems Model Library.</p> - - - OCL2.0 - specializesFromLibrary('UseCases::useCases') - - - - - <p>A composite <code>UseCaseUsage</code> whose <code>owningType</code> is a <code>UseCaseDefinition</code> or <code>UseCaseUsage</code> must specialize the <code>UseCaseUsage</code> <em><code>UseCases::UseCase::subUseCases</code></em> from the Systems Model Library.</p> - - - OCL2.0 - isComposite and owningType <> null and - (owningType.oclIsKindOf(UseCaseDefinition) or - owningType.oclIsKindOf(UseCaseUsage)) implies - specializesFromLibrary('UseCases::UseCase::subUseCases') - - - - - - <p>The <code>UseCaseDefinition</code> that is the <code>definition</code> of this <code>UseCaseUsage</code>.</p> - - - - - - - <p>The <code>UseCaseUsages</code> that are included by this <code>UseCaseUse</code>, which are the <code>useCaseIncludeds</code> of the <code>IncludeUseCaseUsages</code> owned by this <code>UseCaseUsage<code>.</p> - - - - - - - - <p>A <code>UseCaseDefinition</code> is a <code>CaseDefinition</code> that specifies a set of actions performed by its subject, in interaction with one or more actors external to the subject. The objective is to yield an observable result that is of value to one or more of the actors.</p> - - - - - <p>The <code>includedUseCases<code> of a <code>UseCaseDefinition</code> are the <code>useCaseIncludeds</code> of the <code>IncludeUseCaseUsages</code> owned by the <code>UseCaseDefinition<code>.</p> - - - OCL2.0 - includedUseCase = ownedUseCase-> - selectByKind(IncludeUseCaseUsage). - useCaseIncluded - - - - - <p>A <code>UseCaseDefinition</code> must directly or indirectly specializes the base <code>UseCaseDefinition</code> <code><em>UseCases::UseCase</em></code> from the Systems Model Library.</p> - - - - - - OCL2.0 - specializesFromLibrary('UseCases::UseCase') - - - - - - <p>The <code>UseCaseUsages</code> that are included by this <code>UseCaseDefinition</code>, which are the <code>useCaseIncludeds</code> of the <code>IncludeUseCaseUsages</code> owned by this <code>UseCaseDefinition<code>.</p> - - - - - - - - - - - - - - - - - - <p>A <code>MetadataDefinition</code> is an <code>ItemDefinition</code> that is also a <code>Metaclass</code>.</p> - - - - <p>A <code>MetadataDefinition</code> must directly or indirectly specialize the base <code>MetadataDefinition</code> <code><em>Metadata::MetadataItem</em></code> from the Systems Model Library.</p> - - - OCL2.0 - specializesFromLibrary('Metadata::MetadataItem') - - - - - - - - - - <p>A <code>MetadataUsage</code> is a <code>Usage</code> and a <code>MetadataFeature</code>, used to annotate other <code>Elements</code> in a system model with metadata. As a <code>MetadataFeature</code>, its type must be a <code>Metaclass</code>, which will nominally be a <code>MetadataDefinition</code>. However, any kernel <code>Metaclass</code> is also allowed, to permit use of <code>Metaclasses</code> from the Kernel Model Libraries.</p> - - - - <p>A <code>MetadataUsage</code> must directly or indirectly specialize the base <code>MetadataUsage</code> <code><em>Metadata::metadataItems</em></code> from the Systems Model Library.</p> - - - OCL2.0 - specializesFromLibrary('Metadata::metadataItems') - - - - - - - - - <p>The <code>MetadataDefinition</code> that is the <code>definition</code> of this <code>MetadataUsage</code>.</p> - - - - - - - - - - - - - <p>A <code>FlowUsage</code> is an <code>ActionUsage</code> that is also a <code>ConnectorAsUsage</code> and a KerML <code>Flow</code>.</p> - - - - <p>A <code>FlowUsage</code> must directly or indirectly specialize the base <code>FlowUsage</code> <em><code>Flows::messages</code></em> from the Systems Library model.</p> - - - OCL2.0 - specializesFromLibrary('Flows::messages') - - - - - <p>If a <code>FlowUsage</code> has <code>ownedEndFeatures</code>, it must directly or indirectly specialize the <code>FlowUsage</code> <em><code>Flows::flows</code></em> from the Systems Model Library.</p> - - - OCL2.0 - ownedEndFeatures->notEmpty() implies - specializesFromLibrary('Flows::flows') - - - - - - - - - - <p>The <code>Interactions</code> that are the <code>types</code> of this <code>FlowUsage</code>. Nominally, these are <code>FlowDefinitions</code>, but other kinds of Kernel <code>Interactions</code> are also allowed, to permit use of Interactions from the Kernel Model Libraries.</p> - - - - - - - - - - - <p>A <code>FlowDefinition</code> is an <code>ActionDefinition</code> that is also an <code>Interaction</code> (which is both a KerML <code>Behavior</code> and <code>Association</code>), representing flows between <code>Usages</code>.</p> - - - - <p>A <code>FlowDefinition</code> must directly or indirectly specialize the base <code>FlowDefinition</code> <em><code>Flows::MessageAction</code></em> from the Systems Model Library.</p> - - - OCL2.0 - specializesFromLibrary('Flows::MessageAction') - - - - - <p>A binary <code>FlowDefinition</code> must directly or indirectly specialize the base <code>FlowDefinition<code> <em><code>Flows::Message</code></em> from the Systems Model Library.</p> - - - OCL2.0 - flowEnd->size() = 2 implies - specializesFromLibrary('Flows::Message') - - - - - <p>A <code>FlowDefinition</code> may not have more than two <code>flowEnds</code>.</p> - - - OCL2.0 - flowEnd->size() <= 2 - - - - - - - - - <p>The <code>Usages</code> that define the things related by the <code>FlowDefinition</code>.</p> - - - - - - - - - - <p>The <code>FlowDefinitions<code> that have a certain Usage as <code>flowEnd</code>.</p> - - - - - - - - - - <p>The <code>FlowUsages<code> that have a certain <code>Interaction</code> as their <code>flowDefinition</code>.</p> - - - - - - - - <p>A <code>SuccessionFlowUsage</code> is a <code>FlowUsage</code> that is also a KerML <code>SuccessionFlow</code>.</p> - - - - <p>A <code>SuccessionFlowUsage</code> must directly or indirectly specialize the base <code>FlowUsage</code> <em><code>Flows::successionFlows</code></em> from the Systems Library model.</p> - - - OCL2.0 - specializesFromLibrary('Flows::successionFlows') - - - - - - - - +<p>If the <code>EventOccurrenceUsage</code> is owned by an <code>OccurrenceDefinition</code> or <code>OccurrenceUsage</code>, then it also subsets the <em><code>timeEnclosedOccurrences</code></em> property of the <code>Class</code> <em><code>Occurrence</code></em> from the Kernel Semantic Library model <em><code>Occurrences</code></em>.</p> + + + + <p>If an <code>EventOccurrenceUsage</code> has no <code>ownedReferenceSubsetting</code>, then its <code>eventOccurrence</code> is the <code>EventOccurrenceUsage</code> itself. Otherwise, the <code>eventOccurrence</code> is the <code>featureTarget</code> of the <code>referencedFeature</code> of the <code>ownedReferenceSubsetting</code> (which must be an <code>OccurrenceUsage</code>).</p> + + + OCL2.0 + eventOccurrence = + if referencedFeatureTarget() = null then self + else if referencedFeatureTarget().oclIsKindOf(OccurrenceUsage) then + referencedFeatureTarget().oclAsType(OccurrenceUsage) + else null + endif endif + + + + + <p>If an <code>EventOccurrenceUsage</code> has an <code>ownedReferenceSubsetting</code>, then the <code>featureTarget</code> of the <code>referencedFeature</code> must be an <code>OccurrenceUsage</code>.</p> + + + OCL2.0 + referencedFeatureTarget() <> null implies + referencedFeatureTarget().oclIsKindOf(OccurrenceUsage) + + + + + <p>If an <code>EventOccurrenceUsage</code> has an <code>owningType</code> that is an <code>OccurrenceDefinition</code> or <code>OccurrenceUsage</code>, then it must directly or indirectly specialize the <code>Feature</code> <code><em>Occurrences::Occurrence::timeEnclosedOccurrences</em></code>.</p> + + + OCL2.0 + owningType <> null and +(owningType.oclIsKindOf(OccurrenceDefinition) or + owningType.oclIsKindOf(OccurrenceUsage)) implies + specializesFromLibrary('Occurrences::Occurrence::timeEnclosedOccurrences') + + + + + <p>An <code>EventOccurrenceUsage</code> must be referential.</p> + + + OCL2.0 + isReference + + + + + + <p>The <code>OccurrenceUsage</code> referenced as an event by this <code>EventOccurrenceUsage</code>. It is the <code>referenceFeature</code> of the <code>ownedReferenceSubsetting</code> for the <code>EventOccurrenceUsage</code>, if there is one, and, otherwise, the <code>EventOccurrenceUsage</code> itself.</p> + + + + + + + <p>Always true for an <code>EventOccurrenceUsage</code>.</p> + + + + + + + + + + + <p>The UseCaseDefinition that includes a certain <code>includedUseCase</code>.</p> + + + + + + + + + <p>The UseCaseUsage that includes a certain <code>includedUseCase</code>.</p> + + + + + + + + <p>An <code>IncludeUseCaseUsage</code> is a <code>UseCaseUsage</code> that represents the inclusion of a <code>UseCaseUsage</code> by a <code>UseCaseDefinition</code> or <code>UseCaseUsage</code>. Unless it is the <code>IncludeUseCaseUsage</code> itself, the <code>UseCaseUsage</code> to be included is related to the <code>includedUseCase</code> by a <code>ReferenceSubsetting</code> <code>Relationship</code>. An <code>IncludeUseCaseUsage</code> is also a PerformActionUsage, with its <code>useCaseIncluded</code> as the <code>performedAction</code>.</p> + + + + + <p>A <code>IncludeUseCaseUsage</code> whose <code>owningType</code> is a <code>UseCaseDefinition</code> or <code>UseCaseUsage</code> must directly or indirectly specialize the <code>UseCaseUsage</code> <em><code>UseCases::UseCase::includedUseCases</code></em> from the Systems Model Library.</p> + + + OCL2.0 + owningType <> null and +(owningType.oclIsKindOf(UseCaseDefinition) or + owningType.oclIsKindOf(UseCaseUsage) implies + specializesFromLibrary('UseCases::UseCase::includedUseCases') + + + + + <p>If an <code>IncludeUseCaseUsage</code> has an <code>ownedReferenceSubsetting</code>, then the <code>featureTarget</code> of the <code>referencedFeature</code> must be a <code>UseCaseUsage</code>.</p> + + + OCL2.0 + referencedFeatureTarget() <> null implies + referencedFeatureTarget().oclIsKindOf(UseCaseUsage) + + + + + + + <p>The <code>UseCaseUsage</code> to be included by this <code>IncludeUseCaseUsage</code>. It is the <code>performedAction</code> of the <code>IncludeUseCaseUsage</code> considered as a <code>PerformActionUsage</code>, which must be a <code>UseCaseUsage</code>.</p> + + + + + + + + + + <p>The IncludeUseCaseUsages that have a certain UseCaseUsage as their <code>includedUseCase</code>.</p> + + + + + + + + + <p>The UseCaseUsages being typed by a certain UseCaseDefinition.</p> + + + + + + + + <p>A <code>UseCaseUsage</code> is a <code>Usage</code> of a <code>UseCaseDefinition</code>.</p> + + + + <p>The <code>includedUseCases<code> of a <code>UseCaseUsage</code> are the <code>useCaseIncludeds</code> of the <code>IncludeUseCaseUsages</code> owned by the <code>UseCaseUsage<code>.</p> + + + OCL2.0 + includedUseCase = ownedUseCase-> + selectByKind(IncludeUseCaseUsage). + useCaseIncluded + + + + + <p>A <code>UseCaseUsage</code> must directly or indirectly specializes the base <code>UseCaseUsage</code> <em><code>UseCases::useCases</code></em> from the Systems Model Library.</p> + + + OCL2.0 + specializesFromLibrary('UseCases::useCases') + + + + + <p>A composite <code>UseCaseUsage</code> whose <code>owningType</code> is a <code>UseCaseDefinition</code> or <code>UseCaseUsage</code> must specialize the <code>UseCaseUsage</code> <em><code>UseCases::UseCase::subUseCases</code></em> from the Systems Model Library.</p> + + + OCL2.0 + isComposite and owningType <> null and +(owningType.oclIsKindOf(UseCaseDefinition) or + owningType.oclIsKindOf(UseCaseUsage)) implies + specializesFromLibrary('UseCases::UseCase::subUseCases') + + + + + + <p>The <code>UseCaseDefinition</code> that is the <code>definition</code> of this <code>UseCaseUsage</code>.</p> + + + + + + + <p>The <code>UseCaseUsages</code> that are included by this <code>UseCaseUse</code>, which are the <code>useCaseIncludeds</code> of the <code>IncludeUseCaseUsages</code> owned by this <code>UseCaseUsage<code>.</p> + + + + + + + + <p>A <code>UseCaseDefinition</code> is a <code>CaseDefinition</code> that specifies a set of actions performed by its subject, in interaction with one or more actors external to the subject. The objective is to yield an observable result that is of value to one or more of the actors.</p> + + + + + <p>The <code>includedUseCases<code> of a <code>UseCaseDefinition</code> are the <code>useCaseIncludeds</code> of the <code>IncludeUseCaseUsages</code> owned by the <code>UseCaseDefinition<code>.</p> + + + OCL2.0 + includedUseCase = ownedUseCase-> + selectByKind(IncludeUseCaseUsage). + useCaseIncluded + + + + + <p>A <code>UseCaseDefinition</code> must directly or indirectly specializes the base <code>UseCaseDefinition</code> <code><em>UseCases::UseCase</em></code> from the Systems Model Library.</p> + + + + + + OCL2.0 + specializesFromLibrary('UseCases::UseCase') + + + + + + <p>The <code>UseCaseUsages</code> that are included by this <code>UseCaseDefinition</code>, which are the <code>useCaseIncludeds</code> of the <code>IncludeUseCaseUsages</code> owned by this <code>UseCaseDefinition<code>.</p> + + + + + + + + + + + + + + + + + + <p>A <code>MetadataDefinition</code> is an <code>ItemDefinition</code> that is also a <code>Metaclass</code>.</p> + + + + <p>A <code>MetadataDefinition</code> must directly or indirectly specialize the base <code>MetadataDefinition</code> <code><em>Metadata::MetadataItem</em></code> from the Systems Model Library.</p> + + + OCL2.0 + specializesFromLibrary('Metadata::MetadataItem') + + + + + + + + + + <p>A <code>MetadataUsage</code> is a <code>Usage</code> and a <code>MetadataFeature</code>, used to annotate other <code>Elements</code> in a system model with metadata. As a <code>MetadataFeature</code>, its type must be a <code>Metaclass</code>, which will nominally be a <code>MetadataDefinition</code>. However, any kernel <code>Metaclass</code> is also allowed, to permit use of <code>Metaclasses</code> from the Kernel Model Libraries.</p> + + + + <p>A <code>MetadataUsage</code> must directly or indirectly specialize the base <code>MetadataUsage</code> <code><em>Metadata::metadataItems</em></code> from the Systems Model Library.</p> + + + OCL2.0 + specializesFromLibrary('Metadata::metadataItems') + + + + + + + + + <p>The <code>MetadataDefinition</code> that is the <code>definition</code> of this <code>MetadataUsage</code>.</p> + + + + + + + + + + + + + <p>A <code>FlowUsage</code> is an <code>ActionUsage</code> that is also a <code>ConnectorAsUsage</code> and a KerML <code>Flow</code>.</p> + + + + <p>A <code>FlowUsage</code> must directly or indirectly specialize the base <code>FlowUsage</code> <em><code>Flows::messages</code></em> from the Systems Library model.</p> + + + OCL2.0 + specializesFromLibrary('Flows::messages') + + + + + <p>If a <code>FlowUsage</code> has <code>ownedEndFeatures</code>, it must directly or indirectly specialize the <code>FlowUsage</code> <em><code>Flows::flows</code></em> from the Systems Model Library.</p> + + + OCL2.0 + ownedEndFeatures->notEmpty() implies + specializesFromLibrary('Flows::flows') + + + + + + + + + + <p>The <code>Interactions</code> that are the <code>types</code> of this <code>FlowUsage</code>. Nominally, these are <code>FlowDefinitions</code>, but other kinds of Kernel <code>Interactions</code> are also allowed, to permit use of Interactions from the Kernel Model Libraries.</p> + + + + + + + + + + + <p>A <code>FlowDefinition</code> is an <code>ActionDefinition</code> that is also an <code>Interaction</code> (which is both a KerML <code>Behavior</code> and <code>Association</code>), representing flows between <code>Usages</code>.</p> + + + + <p>A <code>FlowDefinition</code> must directly or indirectly specialize the base <code>FlowDefinition</code> <em><code>Flows::MessageAction</code></em> from the Systems Model Library.</p> + + + OCL2.0 + specializesFromLibrary('Flows::MessageAction') + + + + + <p>A binary <code>FlowDefinition</code> must directly or indirectly specialize the base <code>FlowDefinition<code> <em><code>Flows::Message</code></em> from the Systems Model Library.</p> + + + OCL2.0 + flowEnd->size() = 2 implies + specializesFromLibrary('Flows::Message') + + + + + <p>A <code>FlowDefinition</code> may not have more than two <code>flowEnds</code>.</p> + + + OCL2.0 + flowEnd->size() <= 2 + + + + + + + + + <p>The <code>Usages</code> that define the things related by the <code>FlowDefinition</code>.</p> + + + + + + + + + + <p>The <code>FlowDefinitions<code> that have a certain Usage as <code>flowEnd</code>.</p> + + + + + + + + + + <p>The <code>FlowUsages<code> that have a certain <code>Interaction</code> as their <code>flowDefinition</code>.</p> + + + + + + + + <p>A <code>SuccessionFlowUsage</code> is a <code>FlowUsage</code> that is also a KerML <code>SuccessionFlow</code>.</p> + + + + <p>A <code>SuccessionFlowUsage</code> must directly or indirectly specialize the base <code>FlowUsage</code> <em><code>Flows::successionFlows</code></em> from the Systems Library model.</p> + + + OCL2.0 + specializesFromLibrary('Flows::successionFlows') + + + + + + + + diff --git a/SysML2.NET/Core/AutoGenDto/AcceptActionUsage.cs b/SysML2.NET/Core/AutoGenDto/AcceptActionUsage.cs index bc26fda3a..2dd09a101 100644 --- a/SysML2.NET/Core/AutoGenDto/AcceptActionUsage.cs +++ b/SysML2.NET/Core/AutoGenDto/AcceptActionUsage.cs @@ -390,11 +390,11 @@ public partial class AcceptActionUsage : IAcceptActionUsage /// /// Whether all things that meet the classification conditions of this Type must be classified by the - /// Type. (A Type gives conditions that must be met by whatever it - /// classifies, but when isSufficient is false, things may meet those conditions but still not be - /// classified by the Type. For example, a Type Car that is not sufficient could require everything it - /// classifies to have four wheels, but not all four wheeled things would classify as cars. However, if - /// the Type Car were sufficient, it would classify all four-wheeled things.) + /// Type.(A Type gives conditions that must be met by whatever it classifies, but when isSufficient + /// is false, things may meet those conditions but still not be classified by the Type. For example, a + /// Type Car that is not sufficient could require everything it classifies to have four wheels, but not + /// all four wheeled things would classify as cars. However, if the Type Car were sufficient, it would + /// classify all four-wheeled things.) /// [Property(xmiId: "_18_5_3_b9102da_1564072709069_937523_30797", aggregation: AggregationKind.None, lowerValue: 1, upperValue: 1, isOrdered: false, isReadOnly: false, isDerived: false, isDerivedUnion: false, isUnique: true, defaultValue: "false")] [Implements(implementation: "IType.IsSufficient")] @@ -432,9 +432,9 @@ bool Core.Features.IFeature.IsVariable /// Whether this Usage may be time varying (that is, whether it is featured by the snapshots of its /// owningType, rather than being featured by the owningType itself). However, if isConstant is also /// true, then the value of the Usage is nevertheless constant over the entire duration of an instance - /// of its owningType (that is, it has the same value on all snapshots). The - /// property mayTimeVary redefines the KerML property Feature::isVariable, making it derived. The - /// property isConstant is inherited from Feature. + /// of its owningType (that is, it has the same value on all snapshots).The property mayTimeVary + /// redefines the KerML property Feature::isVariable, making it derived. The property isConstant is + /// inherited from Feature. /// [Property(xmiId: "_2022x_2_12e503d9_1737227200362_771035_69", aggregation: AggregationKind.None, lowerValue: 1, upperValue: 1, isOrdered: false, isReadOnly: false, isDerived: true, isDerivedUnion: false, isUnique: true, defaultValue: null)] [RedefinedProperty(propertyName: "_2022x_2_12e503d9_1725998273002_23711_212")] @@ -535,8 +535,8 @@ bool Core.Features.IFeature.IsVariable /// /// The ConnectorAsUsages that are nestedUsages of this Usage. Note that this list includes - /// BindingConnectorAsUsages, SuccessionAsUsages, and FlowConnectionUsages because these are - /// ConnectorAsUsages even though they are not ConnectionUsages. + /// BindingConnectorAsUsages, SuccessionAsUsages, and FlowUsages because these are ConnectorAsUsages + /// even though they are not ConnectionUsages. /// [Property(xmiId: "_19_0_2_12e503d9_1591479754895_422988_1242", aggregation: AggregationKind.None, lowerValue: 0, upperValue: int.MaxValue, isOrdered: true, isReadOnly: false, isDerived: true, isDerivedUnion: false, isUnique: true, defaultValue: null)] [SubsettedProperty(propertyName: "_18_5_3_12e503d9_1565472757327_162097_21259")] @@ -584,7 +584,7 @@ bool Core.Features.IFeature.IsVariable public List nestedItem { get; internal set; } = []; /// - /// The MetadataUsages that are nestedUsages of this of this Usage. + /// The MetadataUsages that are ownedMembers of this of this Usage. /// [Property(xmiId: "_19_0_4_12e503d9_1661488589862_120785_2970", aggregation: AggregationKind.None, lowerValue: 0, upperValue: int.MaxValue, isOrdered: true, isReadOnly: false, isDerived: true, isDerivedUnion: false, isUnique: true, defaultValue: null)] [SubsettedProperty(propertyName: "_19_0_2_12e503d9_1591482421103_284620_2978")] diff --git a/SysML2.NET/Core/AutoGenDto/ActionDefinition.cs b/SysML2.NET/Core/AutoGenDto/ActionDefinition.cs index 645e6e0a1..0188795fe 100644 --- a/SysML2.NET/Core/AutoGenDto/ActionDefinition.cs +++ b/SysML2.NET/Core/AutoGenDto/ActionDefinition.cs @@ -240,11 +240,11 @@ public partial class ActionDefinition : IActionDefinition /// /// Whether all things that meet the classification conditions of this Type must be classified by the - /// Type. (A Type gives conditions that must be met by whatever it - /// classifies, but when isSufficient is false, things may meet those conditions but still not be - /// classified by the Type. For example, a Type Car that is not sufficient could require everything it - /// classifies to have four wheels, but not all four wheeled things would classify as cars. However, if - /// the Type Car were sufficient, it would classify all four-wheeled things.) + /// Type.(A Type gives conditions that must be met by whatever it classifies, but when isSufficient + /// is false, things may meet those conditions but still not be classified by the Type. For example, a + /// Type Car that is not sufficient could require everything it classifies to have four wheels, but not + /// all four wheeled things would classify as cars. However, if the Type Car were sufficient, it would + /// classify all four-wheeled things.) /// [Property(xmiId: "_18_5_3_b9102da_1564072709069_937523_30797", aggregation: AggregationKind.None, lowerValue: 1, upperValue: 1, isOrdered: false, isReadOnly: false, isDerived: false, isDerivedUnion: false, isUnique: true, defaultValue: "false")] [Implements(implementation: "IType.IsSufficient")] @@ -522,7 +522,7 @@ public partial class ActionDefinition : IActionDefinition public List ownedMembership { get; internal set; } = []; /// - /// The MetadataUsages that are ownedUsages of this Definition. + /// The MetadataUsages that are ownedMembers of this Definition. /// [Property(xmiId: "_19_0_4_12e503d9_1661488358064_457109_2881", aggregation: AggregationKind.None, lowerValue: 0, upperValue: int.MaxValue, isOrdered: true, isReadOnly: false, isDerived: true, isDerivedUnion: false, isUnique: true, defaultValue: null)] [SubsettedProperty(propertyName: "_19_0_2_12e503d9_1591482567975_649284_3005")] diff --git a/SysML2.NET/Core/AutoGenDto/ActionUsage.cs b/SysML2.NET/Core/AutoGenDto/ActionUsage.cs index f128452d8..83c91af91 100644 --- a/SysML2.NET/Core/AutoGenDto/ActionUsage.cs +++ b/SysML2.NET/Core/AutoGenDto/ActionUsage.cs @@ -391,11 +391,11 @@ public partial class ActionUsage : IActionUsage /// /// Whether all things that meet the classification conditions of this Type must be classified by the - /// Type. (A Type gives conditions that must be met by whatever it - /// classifies, but when isSufficient is false, things may meet those conditions but still not be - /// classified by the Type. For example, a Type Car that is not sufficient could require everything it - /// classifies to have four wheels, but not all four wheeled things would classify as cars. However, if - /// the Type Car were sufficient, it would classify all four-wheeled things.) + /// Type.(A Type gives conditions that must be met by whatever it classifies, but when isSufficient + /// is false, things may meet those conditions but still not be classified by the Type. For example, a + /// Type Car that is not sufficient could require everything it classifies to have four wheels, but not + /// all four wheeled things would classify as cars. However, if the Type Car were sufficient, it would + /// classify all four-wheeled things.) /// [Property(xmiId: "_18_5_3_b9102da_1564072709069_937523_30797", aggregation: AggregationKind.None, lowerValue: 1, upperValue: 1, isOrdered: false, isReadOnly: false, isDerived: false, isDerivedUnion: false, isUnique: true, defaultValue: "false")] [Implements(implementation: "IType.IsSufficient")] @@ -433,9 +433,9 @@ bool Core.Features.IFeature.IsVariable /// Whether this Usage may be time varying (that is, whether it is featured by the snapshots of its /// owningType, rather than being featured by the owningType itself). However, if isConstant is also /// true, then the value of the Usage is nevertheless constant over the entire duration of an instance - /// of its owningType (that is, it has the same value on all snapshots). The - /// property mayTimeVary redefines the KerML property Feature::isVariable, making it derived. The - /// property isConstant is inherited from Feature. + /// of its owningType (that is, it has the same value on all snapshots).The property mayTimeVary + /// redefines the KerML property Feature::isVariable, making it derived. The property isConstant is + /// inherited from Feature. /// [Property(xmiId: "_2022x_2_12e503d9_1737227200362_771035_69", aggregation: AggregationKind.None, lowerValue: 1, upperValue: 1, isOrdered: false, isReadOnly: false, isDerived: true, isDerivedUnion: false, isUnique: true, defaultValue: null)] [RedefinedProperty(propertyName: "_2022x_2_12e503d9_1725998273002_23711_212")] @@ -536,8 +536,8 @@ bool Core.Features.IFeature.IsVariable /// /// The ConnectorAsUsages that are nestedUsages of this Usage. Note that this list includes - /// BindingConnectorAsUsages, SuccessionAsUsages, and FlowConnectionUsages because these are - /// ConnectorAsUsages even though they are not ConnectionUsages. + /// BindingConnectorAsUsages, SuccessionAsUsages, and FlowUsages because these are ConnectorAsUsages + /// even though they are not ConnectionUsages. /// [Property(xmiId: "_19_0_2_12e503d9_1591479754895_422988_1242", aggregation: AggregationKind.None, lowerValue: 0, upperValue: int.MaxValue, isOrdered: true, isReadOnly: false, isDerived: true, isDerivedUnion: false, isUnique: true, defaultValue: null)] [SubsettedProperty(propertyName: "_18_5_3_12e503d9_1565472757327_162097_21259")] @@ -585,7 +585,7 @@ bool Core.Features.IFeature.IsVariable public List nestedItem { get; internal set; } = []; /// - /// The MetadataUsages that are nestedUsages of this of this Usage. + /// The MetadataUsages that are ownedMembers of this of this Usage. /// [Property(xmiId: "_19_0_4_12e503d9_1661488589862_120785_2970", aggregation: AggregationKind.None, lowerValue: 0, upperValue: int.MaxValue, isOrdered: true, isReadOnly: false, isDerived: true, isDerivedUnion: false, isUnique: true, defaultValue: null)] [SubsettedProperty(propertyName: "_19_0_2_12e503d9_1591482421103_284620_2978")] diff --git a/SysML2.NET/Core/AutoGenDto/AllocationDefinition.cs b/SysML2.NET/Core/AutoGenDto/AllocationDefinition.cs index fdd64ca6e..625da96a8 100644 --- a/SysML2.NET/Core/AutoGenDto/AllocationDefinition.cs +++ b/SysML2.NET/Core/AutoGenDto/AllocationDefinition.cs @@ -277,11 +277,11 @@ public partial class AllocationDefinition : IAllocationDefinition /// /// Whether all things that meet the classification conditions of this Type must be classified by the - /// Type. (A Type gives conditions that must be met by whatever it - /// classifies, but when isSufficient is false, things may meet those conditions but still not be - /// classified by the Type. For example, a Type Car that is not sufficient could require everything it - /// classifies to have four wheels, but not all four wheeled things would classify as cars. However, if - /// the Type Car were sufficient, it would classify all four-wheeled things.) + /// Type.(A Type gives conditions that must be met by whatever it classifies, but when isSufficient + /// is false, things may meet those conditions but still not be classified by the Type. For example, a + /// Type Car that is not sufficient could require everything it classifies to have four wheels, but not + /// all four wheeled things would classify as cars. However, if the Type Car were sufficient, it would + /// classify all four-wheeled things.) /// [Property(xmiId: "_18_5_3_b9102da_1564072709069_937523_30797", aggregation: AggregationKind.None, lowerValue: 1, upperValue: 1, isOrdered: false, isReadOnly: false, isDerived: false, isDerivedUnion: false, isUnique: true, defaultValue: "false")] [RedefinedByProperty("IConnectionDefinition.IsSufficient")] @@ -567,7 +567,7 @@ bool Core.Types.IType.IsSufficient public List ownedMembership { get; internal set; } = []; /// - /// The MetadataUsages that are ownedUsages of this Definition. + /// The MetadataUsages that are ownedMembers of this Definition. /// [Property(xmiId: "_19_0_4_12e503d9_1661488358064_457109_2881", aggregation: AggregationKind.None, lowerValue: 0, upperValue: int.MaxValue, isOrdered: true, isReadOnly: false, isDerived: true, isDerivedUnion: false, isUnique: true, defaultValue: null)] [SubsettedProperty(propertyName: "_19_0_2_12e503d9_1591482567975_649284_3005")] diff --git a/SysML2.NET/Core/AutoGenDto/AllocationUsage.cs b/SysML2.NET/Core/AutoGenDto/AllocationUsage.cs index 04c9b71e1..baecbc747 100644 --- a/SysML2.NET/Core/AutoGenDto/AllocationUsage.cs +++ b/SysML2.NET/Core/AutoGenDto/AllocationUsage.cs @@ -425,11 +425,11 @@ public partial class AllocationUsage : IAllocationUsage /// /// Whether all things that meet the classification conditions of this Type must be classified by the - /// Type. (A Type gives conditions that must be met by whatever it - /// classifies, but when isSufficient is false, things may meet those conditions but still not be - /// classified by the Type. For example, a Type Car that is not sufficient could require everything it - /// classifies to have four wheels, but not all four wheeled things would classify as cars. However, if - /// the Type Car were sufficient, it would classify all four-wheeled things.) + /// Type.(A Type gives conditions that must be met by whatever it classifies, but when isSufficient + /// is false, things may meet those conditions but still not be classified by the Type. For example, a + /// Type Car that is not sufficient could require everything it classifies to have four wheels, but not + /// all four wheeled things would classify as cars. However, if the Type Car were sufficient, it would + /// classify all four-wheeled things.) /// [Property(xmiId: "_18_5_3_b9102da_1564072709069_937523_30797", aggregation: AggregationKind.None, lowerValue: 1, upperValue: 1, isOrdered: false, isReadOnly: false, isDerived: false, isDerivedUnion: false, isUnique: true, defaultValue: "false")] [Implements(implementation: "IType.IsSufficient")] @@ -477,9 +477,9 @@ bool Core.Features.IFeature.IsVariable /// Whether this Usage may be time varying (that is, whether it is featured by the snapshots of its /// owningType, rather than being featured by the owningType itself). However, if isConstant is also /// true, then the value of the Usage is nevertheless constant over the entire duration of an instance - /// of its owningType (that is, it has the same value on all snapshots). The - /// property mayTimeVary redefines the KerML property Feature::isVariable, making it derived. The - /// property isConstant is inherited from Feature. + /// of its owningType (that is, it has the same value on all snapshots).The property mayTimeVary + /// redefines the KerML property Feature::isVariable, making it derived. The property isConstant is + /// inherited from Feature. /// [Property(xmiId: "_2022x_2_12e503d9_1737227200362_771035_69", aggregation: AggregationKind.None, lowerValue: 1, upperValue: 1, isOrdered: false, isReadOnly: false, isDerived: true, isDerivedUnion: false, isUnique: true, defaultValue: null)] [RedefinedProperty(propertyName: "_2022x_2_12e503d9_1725998273002_23711_212")] @@ -580,8 +580,8 @@ bool Core.Features.IFeature.IsVariable /// /// The ConnectorAsUsages that are nestedUsages of this Usage. Note that this list includes - /// BindingConnectorAsUsages, SuccessionAsUsages, and FlowConnectionUsages because these are - /// ConnectorAsUsages even though they are not ConnectionUsages. + /// BindingConnectorAsUsages, SuccessionAsUsages, and FlowUsages because these are ConnectorAsUsages + /// even though they are not ConnectionUsages. /// [Property(xmiId: "_19_0_2_12e503d9_1591479754895_422988_1242", aggregation: AggregationKind.None, lowerValue: 0, upperValue: int.MaxValue, isOrdered: true, isReadOnly: false, isDerived: true, isDerivedUnion: false, isUnique: true, defaultValue: null)] [SubsettedProperty(propertyName: "_18_5_3_12e503d9_1565472757327_162097_21259")] @@ -629,7 +629,7 @@ bool Core.Features.IFeature.IsVariable public List nestedItem { get; internal set; } = []; /// - /// The MetadataUsages that are nestedUsages of this of this Usage. + /// The MetadataUsages that are ownedMembers of this of this Usage. /// [Property(xmiId: "_19_0_4_12e503d9_1661488589862_120785_2970", aggregation: AggregationKind.None, lowerValue: 0, upperValue: int.MaxValue, isOrdered: true, isReadOnly: false, isDerived: true, isDerivedUnion: false, isUnique: true, defaultValue: null)] [SubsettedProperty(propertyName: "_19_0_2_12e503d9_1591482421103_284620_2978")] diff --git a/SysML2.NET/Core/AutoGenDto/AnalysisCaseDefinition.cs b/SysML2.NET/Core/AutoGenDto/AnalysisCaseDefinition.cs index 86f93ff92..5db5982c9 100644 --- a/SysML2.NET/Core/AutoGenDto/AnalysisCaseDefinition.cs +++ b/SysML2.NET/Core/AutoGenDto/AnalysisCaseDefinition.cs @@ -263,9 +263,9 @@ public partial class AnalysisCaseDefinition : IAnalysisCaseDefinition /// /// Whether this Function can be used as the function of a model-level evaluable InvocationExpression. /// Certain Functions from the Kernel Functions Library are considered to have isModelLevelEvaluable = - /// true. For all other Functions it is false. Note: See the - /// specification of the KerML concrete syntax notation for Expressions for an identification of which - /// library Functions are model-level evaluable. + /// true. For all other Functions it is false.Note: See the specification of the KerML + /// concrete syntax notation for Expressions for an identification of which library Functions are + /// model-level evaluable. /// [Property(xmiId: "_19_0_4_12e503d9_1617395221463_139517_26381", aggregation: AggregationKind.None, lowerValue: 1, upperValue: 1, isOrdered: false, isReadOnly: false, isDerived: true, isDerivedUnion: false, isUnique: true, defaultValue: null)] [Implements(implementation: "IFunction.IsModelLevelEvaluable")] @@ -273,11 +273,11 @@ public partial class AnalysisCaseDefinition : IAnalysisCaseDefinition /// /// Whether all things that meet the classification conditions of this Type must be classified by the - /// Type. (A Type gives conditions that must be met by whatever it - /// classifies, but when isSufficient is false, things may meet those conditions but still not be - /// classified by the Type. For example, a Type Car that is not sufficient could require everything it - /// classifies to have four wheels, but not all four wheeled things would classify as cars. However, if - /// the Type Car were sufficient, it would classify all four-wheeled things.) + /// Type.(A Type gives conditions that must be met by whatever it classifies, but when isSufficient + /// is false, things may meet those conditions but still not be classified by the Type. For example, a + /// Type Car that is not sufficient could require everything it classifies to have four wheels, but not + /// all four wheeled things would classify as cars. However, if the Type Car were sufficient, it would + /// classify all four-wheeled things.) /// [Property(xmiId: "_18_5_3_b9102da_1564072709069_937523_30797", aggregation: AggregationKind.None, lowerValue: 1, upperValue: 1, isOrdered: false, isReadOnly: false, isDerived: false, isDerivedUnion: false, isUnique: true, defaultValue: "false")] [Implements(implementation: "IType.IsSufficient")] @@ -563,7 +563,7 @@ public partial class AnalysisCaseDefinition : IAnalysisCaseDefinition public List ownedMembership { get; internal set; } = []; /// - /// The MetadataUsages that are ownedUsages of this Definition. + /// The MetadataUsages that are ownedMembers of this Definition. /// [Property(xmiId: "_19_0_4_12e503d9_1661488358064_457109_2881", aggregation: AggregationKind.None, lowerValue: 0, upperValue: int.MaxValue, isOrdered: true, isReadOnly: false, isDerived: true, isDerivedUnion: false, isUnique: true, defaultValue: null)] [SubsettedProperty(propertyName: "_19_0_2_12e503d9_1591482567975_649284_3005")] diff --git a/SysML2.NET/Core/AutoGenDto/AnalysisCaseUsage.cs b/SysML2.NET/Core/AutoGenDto/AnalysisCaseUsage.cs index 4060b540f..b3001af5d 100644 --- a/SysML2.NET/Core/AutoGenDto/AnalysisCaseUsage.cs +++ b/SysML2.NET/Core/AutoGenDto/AnalysisCaseUsage.cs @@ -440,11 +440,11 @@ public partial class AnalysisCaseUsage : IAnalysisCaseUsage /// /// Whether all things that meet the classification conditions of this Type must be classified by the - /// Type. (A Type gives conditions that must be met by whatever it - /// classifies, but when isSufficient is false, things may meet those conditions but still not be - /// classified by the Type. For example, a Type Car that is not sufficient could require everything it - /// classifies to have four wheels, but not all four wheeled things would classify as cars. However, if - /// the Type Car were sufficient, it would classify all four-wheeled things.) + /// Type.(A Type gives conditions that must be met by whatever it classifies, but when isSufficient + /// is false, things may meet those conditions but still not be classified by the Type. For example, a + /// Type Car that is not sufficient could require everything it classifies to have four wheels, but not + /// all four wheeled things would classify as cars. However, if the Type Car were sufficient, it would + /// classify all four-wheeled things.) /// [Property(xmiId: "_18_5_3_b9102da_1564072709069_937523_30797", aggregation: AggregationKind.None, lowerValue: 1, upperValue: 1, isOrdered: false, isReadOnly: false, isDerived: false, isDerivedUnion: false, isUnique: true, defaultValue: "false")] [Implements(implementation: "IType.IsSufficient")] @@ -482,9 +482,9 @@ bool Core.Features.IFeature.IsVariable /// Whether this Usage may be time varying (that is, whether it is featured by the snapshots of its /// owningType, rather than being featured by the owningType itself). However, if isConstant is also /// true, then the value of the Usage is nevertheless constant over the entire duration of an instance - /// of its owningType (that is, it has the same value on all snapshots). The - /// property mayTimeVary redefines the KerML property Feature::isVariable, making it derived. The - /// property isConstant is inherited from Feature. + /// of its owningType (that is, it has the same value on all snapshots).The property mayTimeVary + /// redefines the KerML property Feature::isVariable, making it derived. The property isConstant is + /// inherited from Feature. /// [Property(xmiId: "_2022x_2_12e503d9_1737227200362_771035_69", aggregation: AggregationKind.None, lowerValue: 1, upperValue: 1, isOrdered: false, isReadOnly: false, isDerived: true, isDerivedUnion: false, isUnique: true, defaultValue: null)] [RedefinedProperty(propertyName: "_2022x_2_12e503d9_1725998273002_23711_212")] @@ -585,8 +585,8 @@ bool Core.Features.IFeature.IsVariable /// /// The ConnectorAsUsages that are nestedUsages of this Usage. Note that this list includes - /// BindingConnectorAsUsages, SuccessionAsUsages, and FlowConnectionUsages because these are - /// ConnectorAsUsages even though they are not ConnectionUsages. + /// BindingConnectorAsUsages, SuccessionAsUsages, and FlowUsages because these are ConnectorAsUsages + /// even though they are not ConnectionUsages. /// [Property(xmiId: "_19_0_2_12e503d9_1591479754895_422988_1242", aggregation: AggregationKind.None, lowerValue: 0, upperValue: int.MaxValue, isOrdered: true, isReadOnly: false, isDerived: true, isDerivedUnion: false, isUnique: true, defaultValue: null)] [SubsettedProperty(propertyName: "_18_5_3_12e503d9_1565472757327_162097_21259")] @@ -634,7 +634,7 @@ bool Core.Features.IFeature.IsVariable public List nestedItem { get; internal set; } = []; /// - /// The MetadataUsages that are nestedUsages of this of this Usage. + /// The MetadataUsages that are ownedMembers of this of this Usage. /// [Property(xmiId: "_19_0_4_12e503d9_1661488589862_120785_2970", aggregation: AggregationKind.None, lowerValue: 0, upperValue: int.MaxValue, isOrdered: true, isReadOnly: false, isDerived: true, isDerivedUnion: false, isUnique: true, defaultValue: null)] [SubsettedProperty(propertyName: "_19_0_2_12e503d9_1591482421103_284620_2978")] diff --git a/SysML2.NET/Core/AutoGenDto/AssertConstraintUsage.cs b/SysML2.NET/Core/AutoGenDto/AssertConstraintUsage.cs index 20d67334d..88b144b2f 100644 --- a/SysML2.NET/Core/AutoGenDto/AssertConstraintUsage.cs +++ b/SysML2.NET/Core/AutoGenDto/AssertConstraintUsage.cs @@ -422,11 +422,11 @@ public partial class AssertConstraintUsage : IAssertConstraintUsage /// /// Whether all things that meet the classification conditions of this Type must be classified by the - /// Type. (A Type gives conditions that must be met by whatever it - /// classifies, but when isSufficient is false, things may meet those conditions but still not be - /// classified by the Type. For example, a Type Car that is not sufficient could require everything it - /// classifies to have four wheels, but not all four wheeled things would classify as cars. However, if - /// the Type Car were sufficient, it would classify all four-wheeled things.) + /// Type.(A Type gives conditions that must be met by whatever it classifies, but when isSufficient + /// is false, things may meet those conditions but still not be classified by the Type. For example, a + /// Type Car that is not sufficient could require everything it classifies to have four wheels, but not + /// all four wheeled things would classify as cars. However, if the Type Car were sufficient, it would + /// classify all four-wheeled things.) /// [Property(xmiId: "_18_5_3_b9102da_1564072709069_937523_30797", aggregation: AggregationKind.None, lowerValue: 1, upperValue: 1, isOrdered: false, isReadOnly: false, isDerived: false, isDerivedUnion: false, isUnique: true, defaultValue: "false")] [Implements(implementation: "IType.IsSufficient")] @@ -464,9 +464,9 @@ bool Core.Features.IFeature.IsVariable /// Whether this Usage may be time varying (that is, whether it is featured by the snapshots of its /// owningType, rather than being featured by the owningType itself). However, if isConstant is also /// true, then the value of the Usage is nevertheless constant over the entire duration of an instance - /// of its owningType (that is, it has the same value on all snapshots). The - /// property mayTimeVary redefines the KerML property Feature::isVariable, making it derived. The - /// property isConstant is inherited from Feature. + /// of its owningType (that is, it has the same value on all snapshots).The property mayTimeVary + /// redefines the KerML property Feature::isVariable, making it derived. The property isConstant is + /// inherited from Feature. /// [Property(xmiId: "_2022x_2_12e503d9_1737227200362_771035_69", aggregation: AggregationKind.None, lowerValue: 1, upperValue: 1, isOrdered: false, isReadOnly: false, isDerived: true, isDerivedUnion: false, isUnique: true, defaultValue: null)] [RedefinedProperty(propertyName: "_2022x_2_12e503d9_1725998273002_23711_212")] @@ -567,8 +567,8 @@ bool Core.Features.IFeature.IsVariable /// /// The ConnectorAsUsages that are nestedUsages of this Usage. Note that this list includes - /// BindingConnectorAsUsages, SuccessionAsUsages, and FlowConnectionUsages because these are - /// ConnectorAsUsages even though they are not ConnectionUsages. + /// BindingConnectorAsUsages, SuccessionAsUsages, and FlowUsages because these are ConnectorAsUsages + /// even though they are not ConnectionUsages. /// [Property(xmiId: "_19_0_2_12e503d9_1591479754895_422988_1242", aggregation: AggregationKind.None, lowerValue: 0, upperValue: int.MaxValue, isOrdered: true, isReadOnly: false, isDerived: true, isDerivedUnion: false, isUnique: true, defaultValue: null)] [SubsettedProperty(propertyName: "_18_5_3_12e503d9_1565472757327_162097_21259")] @@ -616,7 +616,7 @@ bool Core.Features.IFeature.IsVariable public List nestedItem { get; internal set; } = []; /// - /// The MetadataUsages that are nestedUsages of this of this Usage. + /// The MetadataUsages that are ownedMembers of this of this Usage. /// [Property(xmiId: "_19_0_4_12e503d9_1661488589862_120785_2970", aggregation: AggregationKind.None, lowerValue: 0, upperValue: int.MaxValue, isOrdered: true, isReadOnly: false, isDerived: true, isDerivedUnion: false, isUnique: true, defaultValue: null)] [SubsettedProperty(propertyName: "_19_0_2_12e503d9_1591482421103_284620_2978")] diff --git a/SysML2.NET/Core/AutoGenDto/AssignmentActionUsage.cs b/SysML2.NET/Core/AutoGenDto/AssignmentActionUsage.cs index b907545cf..850988eb2 100644 --- a/SysML2.NET/Core/AutoGenDto/AssignmentActionUsage.cs +++ b/SysML2.NET/Core/AutoGenDto/AssignmentActionUsage.cs @@ -389,11 +389,11 @@ public partial class AssignmentActionUsage : IAssignmentActionUsage /// /// Whether all things that meet the classification conditions of this Type must be classified by the - /// Type. (A Type gives conditions that must be met by whatever it - /// classifies, but when isSufficient is false, things may meet those conditions but still not be - /// classified by the Type. For example, a Type Car that is not sufficient could require everything it - /// classifies to have four wheels, but not all four wheeled things would classify as cars. However, if - /// the Type Car were sufficient, it would classify all four-wheeled things.) + /// Type.(A Type gives conditions that must be met by whatever it classifies, but when isSufficient + /// is false, things may meet those conditions but still not be classified by the Type. For example, a + /// Type Car that is not sufficient could require everything it classifies to have four wheels, but not + /// all four wheeled things would classify as cars. However, if the Type Car were sufficient, it would + /// classify all four-wheeled things.) /// [Property(xmiId: "_18_5_3_b9102da_1564072709069_937523_30797", aggregation: AggregationKind.None, lowerValue: 1, upperValue: 1, isOrdered: false, isReadOnly: false, isDerived: false, isDerivedUnion: false, isUnique: true, defaultValue: "false")] [Implements(implementation: "IType.IsSufficient")] @@ -431,9 +431,9 @@ bool Core.Features.IFeature.IsVariable /// Whether this Usage may be time varying (that is, whether it is featured by the snapshots of its /// owningType, rather than being featured by the owningType itself). However, if isConstant is also /// true, then the value of the Usage is nevertheless constant over the entire duration of an instance - /// of its owningType (that is, it has the same value on all snapshots). The - /// property mayTimeVary redefines the KerML property Feature::isVariable, making it derived. The - /// property isConstant is inherited from Feature. + /// of its owningType (that is, it has the same value on all snapshots).The property mayTimeVary + /// redefines the KerML property Feature::isVariable, making it derived. The property isConstant is + /// inherited from Feature. /// [Property(xmiId: "_2022x_2_12e503d9_1737227200362_771035_69", aggregation: AggregationKind.None, lowerValue: 1, upperValue: 1, isOrdered: false, isReadOnly: false, isDerived: true, isDerivedUnion: false, isUnique: true, defaultValue: null)] [RedefinedProperty(propertyName: "_2022x_2_12e503d9_1725998273002_23711_212")] @@ -534,8 +534,8 @@ bool Core.Features.IFeature.IsVariable /// /// The ConnectorAsUsages that are nestedUsages of this Usage. Note that this list includes - /// BindingConnectorAsUsages, SuccessionAsUsages, and FlowConnectionUsages because these are - /// ConnectorAsUsages even though they are not ConnectionUsages. + /// BindingConnectorAsUsages, SuccessionAsUsages, and FlowUsages because these are ConnectorAsUsages + /// even though they are not ConnectionUsages. /// [Property(xmiId: "_19_0_2_12e503d9_1591479754895_422988_1242", aggregation: AggregationKind.None, lowerValue: 0, upperValue: int.MaxValue, isOrdered: true, isReadOnly: false, isDerived: true, isDerivedUnion: false, isUnique: true, defaultValue: null)] [SubsettedProperty(propertyName: "_18_5_3_12e503d9_1565472757327_162097_21259")] @@ -583,7 +583,7 @@ bool Core.Features.IFeature.IsVariable public List nestedItem { get; internal set; } = []; /// - /// The MetadataUsages that are nestedUsages of this of this Usage. + /// The MetadataUsages that are ownedMembers of this of this Usage. /// [Property(xmiId: "_19_0_4_12e503d9_1661488589862_120785_2970", aggregation: AggregationKind.None, lowerValue: 0, upperValue: int.MaxValue, isOrdered: true, isReadOnly: false, isDerived: true, isDerivedUnion: false, isUnique: true, defaultValue: null)] [SubsettedProperty(propertyName: "_19_0_2_12e503d9_1591482421103_284620_2978")] diff --git a/SysML2.NET/Core/AutoGenDto/Association.cs b/SysML2.NET/Core/AutoGenDto/Association.cs index cc706bc1e..335001f28 100644 --- a/SysML2.NET/Core/AutoGenDto/Association.cs +++ b/SysML2.NET/Core/AutoGenDto/Association.cs @@ -235,11 +235,11 @@ public partial class Association : IAssociation /// /// Whether all things that meet the classification conditions of this Type must be classified by the - /// Type. (A Type gives conditions that must be met by whatever it - /// classifies, but when isSufficient is false, things may meet those conditions but still not be - /// classified by the Type. For example, a Type Car that is not sufficient could require everything it - /// classifies to have four wheels, but not all four wheeled things would classify as cars. However, if - /// the Type Car were sufficient, it would classify all four-wheeled things.) + /// Type.(A Type gives conditions that must be met by whatever it classifies, but when isSufficient + /// is false, things may meet those conditions but still not be classified by the Type. For example, a + /// Type Car that is not sufficient could require everything it classifies to have four wheels, but not + /// all four wheeled things would classify as cars. However, if the Type Car were sufficient, it would + /// classify all four-wheeled things.) /// [Property(xmiId: "_18_5_3_b9102da_1564072709069_937523_30797", aggregation: AggregationKind.None, lowerValue: 1, upperValue: 1, isOrdered: false, isReadOnly: false, isDerived: false, isDerivedUnion: false, isUnique: true, defaultValue: "false")] [Implements(implementation: "IType.IsSufficient")] diff --git a/SysML2.NET/Core/AutoGenDto/AssociationStructure.cs b/SysML2.NET/Core/AutoGenDto/AssociationStructure.cs index a2c432305..caa3a25d3 100644 --- a/SysML2.NET/Core/AutoGenDto/AssociationStructure.cs +++ b/SysML2.NET/Core/AutoGenDto/AssociationStructure.cs @@ -235,11 +235,11 @@ public partial class AssociationStructure : IAssociationStructure /// /// Whether all things that meet the classification conditions of this Type must be classified by the - /// Type. (A Type gives conditions that must be met by whatever it - /// classifies, but when isSufficient is false, things may meet those conditions but still not be - /// classified by the Type. For example, a Type Car that is not sufficient could require everything it - /// classifies to have four wheels, but not all four wheeled things would classify as cars. However, if - /// the Type Car were sufficient, it would classify all four-wheeled things.) + /// Type.(A Type gives conditions that must be met by whatever it classifies, but when isSufficient + /// is false, things may meet those conditions but still not be classified by the Type. For example, a + /// Type Car that is not sufficient could require everything it classifies to have four wheels, but not + /// all four wheeled things would classify as cars. However, if the Type Car were sufficient, it would + /// classify all four-wheeled things.) /// [Property(xmiId: "_18_5_3_b9102da_1564072709069_937523_30797", aggregation: AggregationKind.None, lowerValue: 1, upperValue: 1, isOrdered: false, isReadOnly: false, isDerived: false, isDerivedUnion: false, isUnique: true, defaultValue: "false")] [Implements(implementation: "IType.IsSufficient")] diff --git a/SysML2.NET/Core/AutoGenDto/AttributeDefinition.cs b/SysML2.NET/Core/AutoGenDto/AttributeDefinition.cs index 7921fd049..5656496b5 100644 --- a/SysML2.NET/Core/AutoGenDto/AttributeDefinition.cs +++ b/SysML2.NET/Core/AutoGenDto/AttributeDefinition.cs @@ -35,9 +35,9 @@ namespace SysML2.NET.Core.DTO.Systems.Attributes /// /// An AttributeDefinition is a Definition and a DataType of information about a quality or /// characteristic of a system or part of a system that has no independent identity other than its - /// value. All features of an AttributeDefinition must be referential (non-composite). - /// As a DataType, an AttributeDefinition must specialize, directly or indirectly, the base - /// DataType Base::DataValue from the Kernel Semantic Library. + /// value. All features of an AttributeDefinition must be referential (non-composite).As a DataType, an + /// AttributeDefinition must specialize, directly or indirectly, the base DataType Base::DataValue from + /// the Kernel Semantic Library. /// [Class(xmiId: "_18_5_3_12e503d9_1565471213468_167708_20650", isAbstract: false, isFinalSpecialization: false, isActive: false)] [GeneratedCode("SysML2.NET", "latest")] @@ -226,11 +226,11 @@ public partial class AttributeDefinition : IAttributeDefinition /// /// Whether all things that meet the classification conditions of this Type must be classified by the - /// Type. (A Type gives conditions that must be met by whatever it - /// classifies, but when isSufficient is false, things may meet those conditions but still not be - /// classified by the Type. For example, a Type Car that is not sufficient could require everything it - /// classifies to have four wheels, but not all four wheeled things would classify as cars. However, if - /// the Type Car were sufficient, it would classify all four-wheeled things.) + /// Type.(A Type gives conditions that must be met by whatever it classifies, but when isSufficient + /// is false, things may meet those conditions but still not be classified by the Type. For example, a + /// Type Car that is not sufficient could require everything it classifies to have four wheels, but not + /// all four wheeled things would classify as cars. However, if the Type Car were sufficient, it would + /// classify all four-wheeled things.) /// [Property(xmiId: "_18_5_3_b9102da_1564072709069_937523_30797", aggregation: AggregationKind.None, lowerValue: 1, upperValue: 1, isOrdered: false, isReadOnly: false, isDerived: false, isDerivedUnion: false, isUnique: true, defaultValue: "false")] [Implements(implementation: "IType.IsSufficient")] @@ -508,7 +508,7 @@ public partial class AttributeDefinition : IAttributeDefinition public List ownedMembership { get; internal set; } = []; /// - /// The MetadataUsages that are ownedUsages of this Definition. + /// The MetadataUsages that are ownedMembers of this Definition. /// [Property(xmiId: "_19_0_4_12e503d9_1661488358064_457109_2881", aggregation: AggregationKind.None, lowerValue: 0, upperValue: int.MaxValue, isOrdered: true, isReadOnly: false, isDerived: true, isDerivedUnion: false, isUnique: true, defaultValue: null)] [SubsettedProperty(propertyName: "_19_0_2_12e503d9_1591482567975_649284_3005")] diff --git a/SysML2.NET/Core/AutoGenDto/AttributeUsage.cs b/SysML2.NET/Core/AutoGenDto/AttributeUsage.cs index 639477f00..8d9265af4 100644 --- a/SysML2.NET/Core/AutoGenDto/AttributeUsage.cs +++ b/SysML2.NET/Core/AutoGenDto/AttributeUsage.cs @@ -37,9 +37,8 @@ namespace SysML2.NET.Core.DTO.Systems.Attributes /// AttributeDefinition, an AttributeUsage is a usage of a AttributeDefinition to represent the value of /// some system quality or characteristic. However, other kinds of kernel DataTypes are also allowed, to /// permit use of DataTypes from the Kernel Model Libraries. An AttributeUsage itself as well as all its - /// nested features must be referential (non-composite). An AttributeUsage must - /// specialize, directly or indirectly, the base Feature Base::dataValues from the Kernel Semantic - /// Library. + /// nested features must be referential (non-composite).An AttributeUsage must specialize, directly or + /// indirectly, the base Feature Base::dataValues from the Kernel Semantic Library. /// [Class(xmiId: "_18_5_3_12e503d9_1565471291545_950196_20762", isAbstract: false, isFinalSpecialization: false, isActive: false)] [GeneratedCode("SysML2.NET", "latest")] @@ -375,11 +374,11 @@ public partial class AttributeUsage : IAttributeUsage /// /// Whether all things that meet the classification conditions of this Type must be classified by the - /// Type. (A Type gives conditions that must be met by whatever it - /// classifies, but when isSufficient is false, things may meet those conditions but still not be - /// classified by the Type. For example, a Type Car that is not sufficient could require everything it - /// classifies to have four wheels, but not all four wheeled things would classify as cars. However, if - /// the Type Car were sufficient, it would classify all four-wheeled things.) + /// Type.(A Type gives conditions that must be met by whatever it classifies, but when isSufficient + /// is false, things may meet those conditions but still not be classified by the Type. For example, a + /// Type Car that is not sufficient could require everything it classifies to have four wheels, but not + /// all four wheeled things would classify as cars. However, if the Type Car were sufficient, it would + /// classify all four-wheeled things.) /// [Property(xmiId: "_18_5_3_b9102da_1564072709069_937523_30797", aggregation: AggregationKind.None, lowerValue: 1, upperValue: 1, isOrdered: false, isReadOnly: false, isDerived: false, isDerivedUnion: false, isUnique: true, defaultValue: "false")] [Implements(implementation: "IType.IsSufficient")] @@ -417,9 +416,9 @@ bool Core.Features.IFeature.IsVariable /// Whether this Usage may be time varying (that is, whether it is featured by the snapshots of its /// owningType, rather than being featured by the owningType itself). However, if isConstant is also /// true, then the value of the Usage is nevertheless constant over the entire duration of an instance - /// of its owningType (that is, it has the same value on all snapshots). The - /// property mayTimeVary redefines the KerML property Feature::isVariable, making it derived. The - /// property isConstant is inherited from Feature. + /// of its owningType (that is, it has the same value on all snapshots).The property mayTimeVary + /// redefines the KerML property Feature::isVariable, making it derived. The property isConstant is + /// inherited from Feature. /// [Property(xmiId: "_2022x_2_12e503d9_1737227200362_771035_69", aggregation: AggregationKind.None, lowerValue: 1, upperValue: 1, isOrdered: false, isReadOnly: false, isDerived: true, isDerivedUnion: false, isUnique: true, defaultValue: null)] [RedefinedProperty(propertyName: "_2022x_2_12e503d9_1725998273002_23711_212")] @@ -520,8 +519,8 @@ bool Core.Features.IFeature.IsVariable /// /// The ConnectorAsUsages that are nestedUsages of this Usage. Note that this list includes - /// BindingConnectorAsUsages, SuccessionAsUsages, and FlowConnectionUsages because these are - /// ConnectorAsUsages even though they are not ConnectionUsages. + /// BindingConnectorAsUsages, SuccessionAsUsages, and FlowUsages because these are ConnectorAsUsages + /// even though they are not ConnectionUsages. /// [Property(xmiId: "_19_0_2_12e503d9_1591479754895_422988_1242", aggregation: AggregationKind.None, lowerValue: 0, upperValue: int.MaxValue, isOrdered: true, isReadOnly: false, isDerived: true, isDerivedUnion: false, isUnique: true, defaultValue: null)] [SubsettedProperty(propertyName: "_18_5_3_12e503d9_1565472757327_162097_21259")] @@ -569,7 +568,7 @@ bool Core.Features.IFeature.IsVariable public List nestedItem { get; internal set; } = []; /// - /// The MetadataUsages that are nestedUsages of this of this Usage. + /// The MetadataUsages that are ownedMembers of this of this Usage. /// [Property(xmiId: "_19_0_4_12e503d9_1661488589862_120785_2970", aggregation: AggregationKind.None, lowerValue: 0, upperValue: int.MaxValue, isOrdered: true, isReadOnly: false, isDerived: true, isDerivedUnion: false, isUnique: true, defaultValue: null)] [SubsettedProperty(propertyName: "_19_0_2_12e503d9_1591482421103_284620_2978")] diff --git a/SysML2.NET/Core/AutoGenDto/Behavior.cs b/SysML2.NET/Core/AutoGenDto/Behavior.cs index c8165b7a0..40b612fe8 100644 --- a/SysML2.NET/Core/AutoGenDto/Behavior.cs +++ b/SysML2.NET/Core/AutoGenDto/Behavior.cs @@ -215,11 +215,11 @@ public partial class Behavior : IBehavior /// /// Whether all things that meet the classification conditions of this Type must be classified by the - /// Type. (A Type gives conditions that must be met by whatever it - /// classifies, but when isSufficient is false, things may meet those conditions but still not be - /// classified by the Type. For example, a Type Car that is not sufficient could require everything it - /// classifies to have four wheels, but not all four wheeled things would classify as cars. However, if - /// the Type Car were sufficient, it would classify all four-wheeled things.) + /// Type.(A Type gives conditions that must be met by whatever it classifies, but when isSufficient + /// is false, things may meet those conditions but still not be classified by the Type. For example, a + /// Type Car that is not sufficient could require everything it classifies to have four wheels, but not + /// all four wheeled things would classify as cars. However, if the Type Car were sufficient, it would + /// classify all four-wheeled things.) /// [Property(xmiId: "_18_5_3_b9102da_1564072709069_937523_30797", aggregation: AggregationKind.None, lowerValue: 1, upperValue: 1, isOrdered: false, isReadOnly: false, isDerived: false, isDerivedUnion: false, isUnique: true, defaultValue: "false")] [Implements(implementation: "IType.IsSufficient")] diff --git a/SysML2.NET/Core/AutoGenDto/BindingConnector.cs b/SysML2.NET/Core/AutoGenDto/BindingConnector.cs index 8e5c3b433..1016db7fd 100644 --- a/SysML2.NET/Core/AutoGenDto/BindingConnector.cs +++ b/SysML2.NET/Core/AutoGenDto/BindingConnector.cs @@ -360,11 +360,11 @@ public partial class BindingConnector : IBindingConnector /// /// Whether all things that meet the classification conditions of this Type must be classified by the - /// Type. (A Type gives conditions that must be met by whatever it - /// classifies, but when isSufficient is false, things may meet those conditions but still not be - /// classified by the Type. For example, a Type Car that is not sufficient could require everything it - /// classifies to have four wheels, but not all four wheeled things would classify as cars. However, if - /// the Type Car were sufficient, it would classify all four-wheeled things.) + /// Type.(A Type gives conditions that must be met by whatever it classifies, but when isSufficient + /// is false, things may meet those conditions but still not be classified by the Type. For example, a + /// Type Car that is not sufficient could require everything it classifies to have four wheels, but not + /// all four wheeled things would classify as cars. However, if the Type Car were sufficient, it would + /// classify all four-wheeled things.) /// [Property(xmiId: "_18_5_3_b9102da_1564072709069_937523_30797", aggregation: AggregationKind.None, lowerValue: 1, upperValue: 1, isOrdered: false, isReadOnly: false, isDerived: false, isDerivedUnion: false, isUnique: true, defaultValue: "false")] [Implements(implementation: "IType.IsSufficient")] diff --git a/SysML2.NET/Core/AutoGenDto/BindingConnectorAsUsage.cs b/SysML2.NET/Core/AutoGenDto/BindingConnectorAsUsage.cs index aeaa964a4..ab9bad54f 100644 --- a/SysML2.NET/Core/AutoGenDto/BindingConnectorAsUsage.cs +++ b/SysML2.NET/Core/AutoGenDto/BindingConnectorAsUsage.cs @@ -385,11 +385,11 @@ public partial class BindingConnectorAsUsage : IBindingConnectorAsUsage /// /// Whether all things that meet the classification conditions of this Type must be classified by the - /// Type. (A Type gives conditions that must be met by whatever it - /// classifies, but when isSufficient is false, things may meet those conditions but still not be - /// classified by the Type. For example, a Type Car that is not sufficient could require everything it - /// classifies to have four wheels, but not all four wheeled things would classify as cars. However, if - /// the Type Car were sufficient, it would classify all four-wheeled things.) + /// Type.(A Type gives conditions that must be met by whatever it classifies, but when isSufficient + /// is false, things may meet those conditions but still not be classified by the Type. For example, a + /// Type Car that is not sufficient could require everything it classifies to have four wheels, but not + /// all four wheeled things would classify as cars. However, if the Type Car were sufficient, it would + /// classify all four-wheeled things.) /// [Property(xmiId: "_18_5_3_b9102da_1564072709069_937523_30797", aggregation: AggregationKind.None, lowerValue: 1, upperValue: 1, isOrdered: false, isReadOnly: false, isDerived: false, isDerivedUnion: false, isUnique: true, defaultValue: "false")] [Implements(implementation: "IType.IsSufficient")] @@ -427,9 +427,9 @@ bool Core.Features.IFeature.IsVariable /// Whether this Usage may be time varying (that is, whether it is featured by the snapshots of its /// owningType, rather than being featured by the owningType itself). However, if isConstant is also /// true, then the value of the Usage is nevertheless constant over the entire duration of an instance - /// of its owningType (that is, it has the same value on all snapshots). The - /// property mayTimeVary redefines the KerML property Feature::isVariable, making it derived. The - /// property isConstant is inherited from Feature. + /// of its owningType (that is, it has the same value on all snapshots).The property mayTimeVary + /// redefines the KerML property Feature::isVariable, making it derived. The property isConstant is + /// inherited from Feature. /// [Property(xmiId: "_2022x_2_12e503d9_1737227200362_771035_69", aggregation: AggregationKind.None, lowerValue: 1, upperValue: 1, isOrdered: false, isReadOnly: false, isDerived: true, isDerivedUnion: false, isUnique: true, defaultValue: null)] [RedefinedProperty(propertyName: "_2022x_2_12e503d9_1725998273002_23711_212")] @@ -530,8 +530,8 @@ bool Core.Features.IFeature.IsVariable /// /// The ConnectorAsUsages that are nestedUsages of this Usage. Note that this list includes - /// BindingConnectorAsUsages, SuccessionAsUsages, and FlowConnectionUsages because these are - /// ConnectorAsUsages even though they are not ConnectionUsages. + /// BindingConnectorAsUsages, SuccessionAsUsages, and FlowUsages because these are ConnectorAsUsages + /// even though they are not ConnectionUsages. /// [Property(xmiId: "_19_0_2_12e503d9_1591479754895_422988_1242", aggregation: AggregationKind.None, lowerValue: 0, upperValue: int.MaxValue, isOrdered: true, isReadOnly: false, isDerived: true, isDerivedUnion: false, isUnique: true, defaultValue: null)] [SubsettedProperty(propertyName: "_18_5_3_12e503d9_1565472757327_162097_21259")] @@ -579,7 +579,7 @@ bool Core.Features.IFeature.IsVariable public List nestedItem { get; internal set; } = []; /// - /// The MetadataUsages that are nestedUsages of this of this Usage. + /// The MetadataUsages that are ownedMembers of this of this Usage. /// [Property(xmiId: "_19_0_4_12e503d9_1661488589862_120785_2970", aggregation: AggregationKind.None, lowerValue: 0, upperValue: int.MaxValue, isOrdered: true, isReadOnly: false, isDerived: true, isDerivedUnion: false, isUnique: true, defaultValue: null)] [SubsettedProperty(propertyName: "_19_0_2_12e503d9_1591482421103_284620_2978")] diff --git a/SysML2.NET/Core/AutoGenDto/BooleanExpression.cs b/SysML2.NET/Core/AutoGenDto/BooleanExpression.cs index dcf05b489..82f0444e1 100644 --- a/SysML2.NET/Core/AutoGenDto/BooleanExpression.cs +++ b/SysML2.NET/Core/AutoGenDto/BooleanExpression.cs @@ -351,11 +351,11 @@ public partial class BooleanExpression : IBooleanExpression /// /// Whether all things that meet the classification conditions of this Type must be classified by the - /// Type. (A Type gives conditions that must be met by whatever it - /// classifies, but when isSufficient is false, things may meet those conditions but still not be - /// classified by the Type. For example, a Type Car that is not sufficient could require everything it - /// classifies to have four wheels, but not all four wheeled things would classify as cars. However, if - /// the Type Car were sufficient, it would classify all four-wheeled things.) + /// Type.(A Type gives conditions that must be met by whatever it classifies, but when isSufficient + /// is false, things may meet those conditions but still not be classified by the Type. For example, a + /// Type Car that is not sufficient could require everything it classifies to have four wheels, but not + /// all four wheeled things would classify as cars. However, if the Type Car were sufficient, it would + /// classify all four-wheeled things.) /// [Property(xmiId: "_18_5_3_b9102da_1564072709069_937523_30797", aggregation: AggregationKind.None, lowerValue: 1, upperValue: 1, isOrdered: false, isReadOnly: false, isDerived: false, isDerivedUnion: false, isUnique: true, defaultValue: "false")] [Implements(implementation: "IType.IsSufficient")] diff --git a/SysML2.NET/Core/AutoGenDto/CalculationDefinition.cs b/SysML2.NET/Core/AutoGenDto/CalculationDefinition.cs index 4c5ea3995..84aa9b36c 100644 --- a/SysML2.NET/Core/AutoGenDto/CalculationDefinition.cs +++ b/SysML2.NET/Core/AutoGenDto/CalculationDefinition.cs @@ -257,9 +257,9 @@ public partial class CalculationDefinition : ICalculationDefinition /// /// Whether this Function can be used as the function of a model-level evaluable InvocationExpression. /// Certain Functions from the Kernel Functions Library are considered to have isModelLevelEvaluable = - /// true. For all other Functions it is false. Note: See the - /// specification of the KerML concrete syntax notation for Expressions for an identification of which - /// library Functions are model-level evaluable. + /// true. For all other Functions it is false.Note: See the specification of the KerML + /// concrete syntax notation for Expressions for an identification of which library Functions are + /// model-level evaluable. /// [Property(xmiId: "_19_0_4_12e503d9_1617395221463_139517_26381", aggregation: AggregationKind.None, lowerValue: 1, upperValue: 1, isOrdered: false, isReadOnly: false, isDerived: true, isDerivedUnion: false, isUnique: true, defaultValue: null)] [Implements(implementation: "IFunction.IsModelLevelEvaluable")] @@ -267,11 +267,11 @@ public partial class CalculationDefinition : ICalculationDefinition /// /// Whether all things that meet the classification conditions of this Type must be classified by the - /// Type. (A Type gives conditions that must be met by whatever it - /// classifies, but when isSufficient is false, things may meet those conditions but still not be - /// classified by the Type. For example, a Type Car that is not sufficient could require everything it - /// classifies to have four wheels, but not all four wheeled things would classify as cars. However, if - /// the Type Car were sufficient, it would classify all four-wheeled things.) + /// Type.(A Type gives conditions that must be met by whatever it classifies, but when isSufficient + /// is false, things may meet those conditions but still not be classified by the Type. For example, a + /// Type Car that is not sufficient could require everything it classifies to have four wheels, but not + /// all four wheeled things would classify as cars. However, if the Type Car were sufficient, it would + /// classify all four-wheeled things.) /// [Property(xmiId: "_18_5_3_b9102da_1564072709069_937523_30797", aggregation: AggregationKind.None, lowerValue: 1, upperValue: 1, isOrdered: false, isReadOnly: false, isDerived: false, isDerivedUnion: false, isUnique: true, defaultValue: "false")] [Implements(implementation: "IType.IsSufficient")] @@ -549,7 +549,7 @@ public partial class CalculationDefinition : ICalculationDefinition public List ownedMembership { get; internal set; } = []; /// - /// The MetadataUsages that are ownedUsages of this Definition. + /// The MetadataUsages that are ownedMembers of this Definition. /// [Property(xmiId: "_19_0_4_12e503d9_1661488358064_457109_2881", aggregation: AggregationKind.None, lowerValue: 0, upperValue: int.MaxValue, isOrdered: true, isReadOnly: false, isDerived: true, isDerivedUnion: false, isUnique: true, defaultValue: null)] [SubsettedProperty(propertyName: "_19_0_2_12e503d9_1591482567975_649284_3005")] diff --git a/SysML2.NET/Core/AutoGenDto/CalculationUsage.cs b/SysML2.NET/Core/AutoGenDto/CalculationUsage.cs index 4c6b94c17..b5a3d34fd 100644 --- a/SysML2.NET/Core/AutoGenDto/CalculationUsage.cs +++ b/SysML2.NET/Core/AutoGenDto/CalculationUsage.cs @@ -418,11 +418,11 @@ public partial class CalculationUsage : ICalculationUsage /// /// Whether all things that meet the classification conditions of this Type must be classified by the - /// Type. (A Type gives conditions that must be met by whatever it - /// classifies, but when isSufficient is false, things may meet those conditions but still not be - /// classified by the Type. For example, a Type Car that is not sufficient could require everything it - /// classifies to have four wheels, but not all four wheeled things would classify as cars. However, if - /// the Type Car were sufficient, it would classify all four-wheeled things.) + /// Type.(A Type gives conditions that must be met by whatever it classifies, but when isSufficient + /// is false, things may meet those conditions but still not be classified by the Type. For example, a + /// Type Car that is not sufficient could require everything it classifies to have four wheels, but not + /// all four wheeled things would classify as cars. However, if the Type Car were sufficient, it would + /// classify all four-wheeled things.) /// [Property(xmiId: "_18_5_3_b9102da_1564072709069_937523_30797", aggregation: AggregationKind.None, lowerValue: 1, upperValue: 1, isOrdered: false, isReadOnly: false, isDerived: false, isDerivedUnion: false, isUnique: true, defaultValue: "false")] [Implements(implementation: "IType.IsSufficient")] @@ -460,9 +460,9 @@ bool Core.Features.IFeature.IsVariable /// Whether this Usage may be time varying (that is, whether it is featured by the snapshots of its /// owningType, rather than being featured by the owningType itself). However, if isConstant is also /// true, then the value of the Usage is nevertheless constant over the entire duration of an instance - /// of its owningType (that is, it has the same value on all snapshots). The - /// property mayTimeVary redefines the KerML property Feature::isVariable, making it derived. The - /// property isConstant is inherited from Feature. + /// of its owningType (that is, it has the same value on all snapshots).The property mayTimeVary + /// redefines the KerML property Feature::isVariable, making it derived. The property isConstant is + /// inherited from Feature. /// [Property(xmiId: "_2022x_2_12e503d9_1737227200362_771035_69", aggregation: AggregationKind.None, lowerValue: 1, upperValue: 1, isOrdered: false, isReadOnly: false, isDerived: true, isDerivedUnion: false, isUnique: true, defaultValue: null)] [RedefinedProperty(propertyName: "_2022x_2_12e503d9_1725998273002_23711_212")] @@ -563,8 +563,8 @@ bool Core.Features.IFeature.IsVariable /// /// The ConnectorAsUsages that are nestedUsages of this Usage. Note that this list includes - /// BindingConnectorAsUsages, SuccessionAsUsages, and FlowConnectionUsages because these are - /// ConnectorAsUsages even though they are not ConnectionUsages. + /// BindingConnectorAsUsages, SuccessionAsUsages, and FlowUsages because these are ConnectorAsUsages + /// even though they are not ConnectionUsages. /// [Property(xmiId: "_19_0_2_12e503d9_1591479754895_422988_1242", aggregation: AggregationKind.None, lowerValue: 0, upperValue: int.MaxValue, isOrdered: true, isReadOnly: false, isDerived: true, isDerivedUnion: false, isUnique: true, defaultValue: null)] [SubsettedProperty(propertyName: "_18_5_3_12e503d9_1565472757327_162097_21259")] @@ -612,7 +612,7 @@ bool Core.Features.IFeature.IsVariable public List nestedItem { get; internal set; } = []; /// - /// The MetadataUsages that are nestedUsages of this of this Usage. + /// The MetadataUsages that are ownedMembers of this of this Usage. /// [Property(xmiId: "_19_0_4_12e503d9_1661488589862_120785_2970", aggregation: AggregationKind.None, lowerValue: 0, upperValue: int.MaxValue, isOrdered: true, isReadOnly: false, isDerived: true, isDerivedUnion: false, isUnique: true, defaultValue: null)] [SubsettedProperty(propertyName: "_19_0_2_12e503d9_1591482421103_284620_2978")] diff --git a/SysML2.NET/Core/AutoGenDto/CaseDefinition.cs b/SysML2.NET/Core/AutoGenDto/CaseDefinition.cs index 5615ef8f7..f52052764 100644 --- a/SysML2.NET/Core/AutoGenDto/CaseDefinition.cs +++ b/SysML2.NET/Core/AutoGenDto/CaseDefinition.cs @@ -265,9 +265,9 @@ public partial class CaseDefinition : ICaseDefinition /// /// Whether this Function can be used as the function of a model-level evaluable InvocationExpression. /// Certain Functions from the Kernel Functions Library are considered to have isModelLevelEvaluable = - /// true. For all other Functions it is false. Note: See the - /// specification of the KerML concrete syntax notation for Expressions for an identification of which - /// library Functions are model-level evaluable. + /// true. For all other Functions it is false.Note: See the specification of the KerML + /// concrete syntax notation for Expressions for an identification of which library Functions are + /// model-level evaluable. /// [Property(xmiId: "_19_0_4_12e503d9_1617395221463_139517_26381", aggregation: AggregationKind.None, lowerValue: 1, upperValue: 1, isOrdered: false, isReadOnly: false, isDerived: true, isDerivedUnion: false, isUnique: true, defaultValue: null)] [Implements(implementation: "IFunction.IsModelLevelEvaluable")] @@ -275,11 +275,11 @@ public partial class CaseDefinition : ICaseDefinition /// /// Whether all things that meet the classification conditions of this Type must be classified by the - /// Type. (A Type gives conditions that must be met by whatever it - /// classifies, but when isSufficient is false, things may meet those conditions but still not be - /// classified by the Type. For example, a Type Car that is not sufficient could require everything it - /// classifies to have four wheels, but not all four wheeled things would classify as cars. However, if - /// the Type Car were sufficient, it would classify all four-wheeled things.) + /// Type.(A Type gives conditions that must be met by whatever it classifies, but when isSufficient + /// is false, things may meet those conditions but still not be classified by the Type. For example, a + /// Type Car that is not sufficient could require everything it classifies to have four wheels, but not + /// all four wheeled things would classify as cars. However, if the Type Car were sufficient, it would + /// classify all four-wheeled things.) /// [Property(xmiId: "_18_5_3_b9102da_1564072709069_937523_30797", aggregation: AggregationKind.None, lowerValue: 1, upperValue: 1, isOrdered: false, isReadOnly: false, isDerived: false, isDerivedUnion: false, isUnique: true, defaultValue: "false")] [Implements(implementation: "IType.IsSufficient")] @@ -565,7 +565,7 @@ public partial class CaseDefinition : ICaseDefinition public List ownedMembership { get; internal set; } = []; /// - /// The MetadataUsages that are ownedUsages of this Definition. + /// The MetadataUsages that are ownedMembers of this Definition. /// [Property(xmiId: "_19_0_4_12e503d9_1661488358064_457109_2881", aggregation: AggregationKind.None, lowerValue: 0, upperValue: int.MaxValue, isOrdered: true, isReadOnly: false, isDerived: true, isDerivedUnion: false, isUnique: true, defaultValue: null)] [SubsettedProperty(propertyName: "_19_0_2_12e503d9_1591482567975_649284_3005")] diff --git a/SysML2.NET/Core/AutoGenDto/CaseUsage.cs b/SysML2.NET/Core/AutoGenDto/CaseUsage.cs index 221e39a0e..556c8601a 100644 --- a/SysML2.NET/Core/AutoGenDto/CaseUsage.cs +++ b/SysML2.NET/Core/AutoGenDto/CaseUsage.cs @@ -431,11 +431,11 @@ public partial class CaseUsage : ICaseUsage /// /// Whether all things that meet the classification conditions of this Type must be classified by the - /// Type. (A Type gives conditions that must be met by whatever it - /// classifies, but when isSufficient is false, things may meet those conditions but still not be - /// classified by the Type. For example, a Type Car that is not sufficient could require everything it - /// classifies to have four wheels, but not all four wheeled things would classify as cars. However, if - /// the Type Car were sufficient, it would classify all four-wheeled things.) + /// Type.(A Type gives conditions that must be met by whatever it classifies, but when isSufficient + /// is false, things may meet those conditions but still not be classified by the Type. For example, a + /// Type Car that is not sufficient could require everything it classifies to have four wheels, but not + /// all four wheeled things would classify as cars. However, if the Type Car were sufficient, it would + /// classify all four-wheeled things.) /// [Property(xmiId: "_18_5_3_b9102da_1564072709069_937523_30797", aggregation: AggregationKind.None, lowerValue: 1, upperValue: 1, isOrdered: false, isReadOnly: false, isDerived: false, isDerivedUnion: false, isUnique: true, defaultValue: "false")] [Implements(implementation: "IType.IsSufficient")] @@ -473,9 +473,9 @@ bool Core.Features.IFeature.IsVariable /// Whether this Usage may be time varying (that is, whether it is featured by the snapshots of its /// owningType, rather than being featured by the owningType itself). However, if isConstant is also /// true, then the value of the Usage is nevertheless constant over the entire duration of an instance - /// of its owningType (that is, it has the same value on all snapshots). The - /// property mayTimeVary redefines the KerML property Feature::isVariable, making it derived. The - /// property isConstant is inherited from Feature. + /// of its owningType (that is, it has the same value on all snapshots).The property mayTimeVary + /// redefines the KerML property Feature::isVariable, making it derived. The property isConstant is + /// inherited from Feature. /// [Property(xmiId: "_2022x_2_12e503d9_1737227200362_771035_69", aggregation: AggregationKind.None, lowerValue: 1, upperValue: 1, isOrdered: false, isReadOnly: false, isDerived: true, isDerivedUnion: false, isUnique: true, defaultValue: null)] [RedefinedProperty(propertyName: "_2022x_2_12e503d9_1725998273002_23711_212")] @@ -576,8 +576,8 @@ bool Core.Features.IFeature.IsVariable /// /// The ConnectorAsUsages that are nestedUsages of this Usage. Note that this list includes - /// BindingConnectorAsUsages, SuccessionAsUsages, and FlowConnectionUsages because these are - /// ConnectorAsUsages even though they are not ConnectionUsages. + /// BindingConnectorAsUsages, SuccessionAsUsages, and FlowUsages because these are ConnectorAsUsages + /// even though they are not ConnectionUsages. /// [Property(xmiId: "_19_0_2_12e503d9_1591479754895_422988_1242", aggregation: AggregationKind.None, lowerValue: 0, upperValue: int.MaxValue, isOrdered: true, isReadOnly: false, isDerived: true, isDerivedUnion: false, isUnique: true, defaultValue: null)] [SubsettedProperty(propertyName: "_18_5_3_12e503d9_1565472757327_162097_21259")] @@ -625,7 +625,7 @@ bool Core.Features.IFeature.IsVariable public List nestedItem { get; internal set; } = []; /// - /// The MetadataUsages that are nestedUsages of this of this Usage. + /// The MetadataUsages that are ownedMembers of this of this Usage. /// [Property(xmiId: "_19_0_4_12e503d9_1661488589862_120785_2970", aggregation: AggregationKind.None, lowerValue: 0, upperValue: int.MaxValue, isOrdered: true, isReadOnly: false, isDerived: true, isDerivedUnion: false, isUnique: true, defaultValue: null)] [SubsettedProperty(propertyName: "_19_0_2_12e503d9_1591482421103_284620_2978")] diff --git a/SysML2.NET/Core/AutoGenDto/Class.cs b/SysML2.NET/Core/AutoGenDto/Class.cs index a03c9d364..78087db49 100644 --- a/SysML2.NET/Core/AutoGenDto/Class.cs +++ b/SysML2.NET/Core/AutoGenDto/Class.cs @@ -215,11 +215,11 @@ public partial class Class : IClass /// /// Whether all things that meet the classification conditions of this Type must be classified by the - /// Type. (A Type gives conditions that must be met by whatever it - /// classifies, but when isSufficient is false, things may meet those conditions but still not be - /// classified by the Type. For example, a Type Car that is not sufficient could require everything it - /// classifies to have four wheels, but not all four wheeled things would classify as cars. However, if - /// the Type Car were sufficient, it would classify all four-wheeled things.) + /// Type.(A Type gives conditions that must be met by whatever it classifies, but when isSufficient + /// is false, things may meet those conditions but still not be classified by the Type. For example, a + /// Type Car that is not sufficient could require everything it classifies to have four wheels, but not + /// all four wheeled things would classify as cars. However, if the Type Car were sufficient, it would + /// classify all four-wheeled things.) /// [Property(xmiId: "_18_5_3_b9102da_1564072709069_937523_30797", aggregation: AggregationKind.None, lowerValue: 1, upperValue: 1, isOrdered: false, isReadOnly: false, isDerived: false, isDerivedUnion: false, isUnique: true, defaultValue: "false")] [Implements(implementation: "IType.IsSufficient")] diff --git a/SysML2.NET/Core/AutoGenDto/Classifier.cs b/SysML2.NET/Core/AutoGenDto/Classifier.cs index 3b9dac1b9..69d08311a 100644 --- a/SysML2.NET/Core/AutoGenDto/Classifier.cs +++ b/SysML2.NET/Core/AutoGenDto/Classifier.cs @@ -32,13 +32,12 @@ namespace SysML2.NET.Core.DTO.Core.Classifiers using SysML2.NET.Decorators; /// - /// A Classifier is a Type that classifies:
    - ///
  • Things (in the universe) regardless of how Features relate them. (These are interpreted - /// semantically as sequences of exactly one thing.)
  • How the above - /// things are related by Features. (These are interpreted semantically as sequences of multiple things, - /// such that the last thing in the sequence is also classified by the Classifier. Note that this means - /// that a Classifier modeled as specializing a Feature cannot classify anything.)
  • - ///
+ /// A Classifier is a Type that classifies:
  • Things (in the universe) regardless of how Features + /// relate them. (These are interpreted semantically as sequences of exactly one thing.)
  • How + /// the above things are related by Features. (These are interpreted semantically as sequences of + /// multiple things, such that the last thing in the sequence is also classified by the Classifier. Note + /// that this means that a Classifier modeled as specializing a Feature cannot classify + /// anything.)
///
[Class(xmiId: "_18_5_3_12e503d9_1533160651676_375105_42143", isAbstract: false, isFinalSpecialization: false, isActive: false)] [GeneratedCode("SysML2.NET", "latest")] @@ -219,11 +218,11 @@ public partial class Classifier : IClassifier /// /// Whether all things that meet the classification conditions of this Type must be classified by the - /// Type. (A Type gives conditions that must be met by whatever it - /// classifies, but when isSufficient is false, things may meet those conditions but still not be - /// classified by the Type. For example, a Type Car that is not sufficient could require everything it - /// classifies to have four wheels, but not all four wheeled things would classify as cars. However, if - /// the Type Car were sufficient, it would classify all four-wheeled things.) + /// Type.(A Type gives conditions that must be met by whatever it classifies, but when isSufficient + /// is false, things may meet those conditions but still not be classified by the Type. For example, a + /// Type Car that is not sufficient could require everything it classifies to have four wheels, but not + /// all four wheeled things would classify as cars. However, if the Type Car were sufficient, it would + /// classify all four-wheeled things.) /// [Property(xmiId: "_18_5_3_b9102da_1564072709069_937523_30797", aggregation: AggregationKind.None, lowerValue: 1, upperValue: 1, isOrdered: false, isReadOnly: false, isDerived: false, isDerivedUnion: false, isUnique: true, defaultValue: "false")] [Implements(implementation: "IType.IsSufficient")] diff --git a/SysML2.NET/Core/AutoGenDto/CollectExpression.cs b/SysML2.NET/Core/AutoGenDto/CollectExpression.cs index 87c8169a2..fd6dfa537 100644 --- a/SysML2.NET/Core/AutoGenDto/CollectExpression.cs +++ b/SysML2.NET/Core/AutoGenDto/CollectExpression.cs @@ -56,8 +56,8 @@ public partial class CollectExpression : ICollectExpression /// /// The Expressions whose results are bound to features of the instantiatedType. The arguments are /// ordered consistent with the order of the features, though they may not be one-to-one with all the - /// features. Note. The derivation of argument is given in - /// the concrete subclasses of InstantiationExpression. + /// features.Note. The derivation of argument is given in the concrete subclasses of + /// InstantiationExpression. /// [Property(xmiId: "_2022x_2_12e503d9_1739134437590_328753_108", aggregation: AggregationKind.None, lowerValue: 0, upperValue: int.MaxValue, isOrdered: true, isReadOnly: false, isDerived: true, isDerivedUnion: false, isUnique: true, defaultValue: null)] [Implements(implementation: "IInstantiationExpression.Argument")] @@ -368,11 +368,11 @@ public partial class CollectExpression : ICollectExpression /// /// Whether all things that meet the classification conditions of this Type must be classified by the - /// Type. (A Type gives conditions that must be met by whatever it - /// classifies, but when isSufficient is false, things may meet those conditions but still not be - /// classified by the Type. For example, a Type Car that is not sufficient could require everything it - /// classifies to have four wheels, but not all four wheeled things would classify as cars. However, if - /// the Type Car were sufficient, it would classify all four-wheeled things.) + /// Type.(A Type gives conditions that must be met by whatever it classifies, but when isSufficient + /// is false, things may meet those conditions but still not be classified by the Type. For example, a + /// Type Car that is not sufficient could require everything it classifies to have four wheels, but not + /// all four wheeled things would classify as cars. However, if the Type Car were sufficient, it would + /// classify all four-wheeled things.) /// [Property(xmiId: "_18_5_3_b9102da_1564072709069_937523_30797", aggregation: AggregationKind.None, lowerValue: 1, upperValue: 1, isOrdered: false, isReadOnly: false, isDerived: false, isDerivedUnion: false, isUnique: true, defaultValue: "false")] [Implements(implementation: "IType.IsSufficient")] diff --git a/SysML2.NET/Core/AutoGenDto/ConcernDefinition.cs b/SysML2.NET/Core/AutoGenDto/ConcernDefinition.cs index 99b0f20e9..f4f5e0e5a 100644 --- a/SysML2.NET/Core/AutoGenDto/ConcernDefinition.cs +++ b/SysML2.NET/Core/AutoGenDto/ConcernDefinition.cs @@ -274,9 +274,9 @@ string Root.Elements.IElement.DeclaredShortName /// /// Whether this Function can be used as the function of a model-level evaluable InvocationExpression. /// Certain Functions from the Kernel Functions Library are considered to have isModelLevelEvaluable = - /// true. For all other Functions it is false. Note: See the - /// specification of the KerML concrete syntax notation for Expressions for an identification of which - /// library Functions are model-level evaluable. + /// true. For all other Functions it is false.Note: See the specification of the KerML + /// concrete syntax notation for Expressions for an identification of which library Functions are + /// model-level evaluable. /// [Property(xmiId: "_19_0_4_12e503d9_1617395221463_139517_26381", aggregation: AggregationKind.None, lowerValue: 1, upperValue: 1, isOrdered: false, isReadOnly: false, isDerived: true, isDerivedUnion: false, isUnique: true, defaultValue: null)] [Implements(implementation: "IFunction.IsModelLevelEvaluable")] @@ -284,11 +284,11 @@ string Root.Elements.IElement.DeclaredShortName /// /// Whether all things that meet the classification conditions of this Type must be classified by the - /// Type. (A Type gives conditions that must be met by whatever it - /// classifies, but when isSufficient is false, things may meet those conditions but still not be - /// classified by the Type. For example, a Type Car that is not sufficient could require everything it - /// classifies to have four wheels, but not all four wheeled things would classify as cars. However, if - /// the Type Car were sufficient, it would classify all four-wheeled things.) + /// Type.(A Type gives conditions that must be met by whatever it classifies, but when isSufficient + /// is false, things may meet those conditions but still not be classified by the Type. For example, a + /// Type Car that is not sufficient could require everything it classifies to have four wheels, but not + /// all four wheeled things would classify as cars. However, if the Type Car were sufficient, it would + /// classify all four-wheeled things.) /// [Property(xmiId: "_18_5_3_b9102da_1564072709069_937523_30797", aggregation: AggregationKind.None, lowerValue: 1, upperValue: 1, isOrdered: false, isReadOnly: false, isDerived: false, isDerivedUnion: false, isUnique: true, defaultValue: "false")] [Implements(implementation: "IType.IsSufficient")] @@ -566,7 +566,7 @@ string Root.Elements.IElement.DeclaredShortName public List ownedMembership { get; internal set; } = []; /// - /// The MetadataUsages that are ownedUsages of this Definition. + /// The MetadataUsages that are ownedMembers of this Definition. /// [Property(xmiId: "_19_0_4_12e503d9_1661488358064_457109_2881", aggregation: AggregationKind.None, lowerValue: 0, upperValue: int.MaxValue, isOrdered: true, isReadOnly: false, isDerived: true, isDerivedUnion: false, isUnique: true, defaultValue: null)] [SubsettedProperty(propertyName: "_19_0_2_12e503d9_1591482567975_649284_3005")] @@ -808,7 +808,7 @@ string Root.Elements.IElement.DeclaredShortName public string shortName { get; internal set; } /// - /// The parameters of this RequirementDefinition that represent stakeholders for th requirement. + /// The parameters of this RequirementDefinition that represent stakeholders for the requirement. /// [Property(xmiId: "_19_0_4_12e503d9_1624033010374_29375_40166", aggregation: AggregationKind.None, lowerValue: 0, upperValue: int.MaxValue, isOrdered: true, isReadOnly: false, isDerived: true, isDerivedUnion: false, isUnique: true, defaultValue: null)] [SubsettedProperty(propertyName: "_18_5_3_12e503d9_1543948010065_362066_20413")] diff --git a/SysML2.NET/Core/AutoGenDto/ConcernUsage.cs b/SysML2.NET/Core/AutoGenDto/ConcernUsage.cs index 5cfe178a7..cf8eef84f 100644 --- a/SysML2.NET/Core/AutoGenDto/ConcernUsage.cs +++ b/SysML2.NET/Core/AutoGenDto/ConcernUsage.cs @@ -33,10 +33,10 @@ namespace SysML2.NET.Core.DTO.Systems.Requirements using SysML2.NET.Decorators; /// - /// A ConcernUsage is a Usage of a ConcernDefinition. The ownedStakeholder - /// features of the ConcernUsage shall all subset the ConcernCheck::concernedStakeholders feature. If - /// the ConcernUsage is an ownedFeature of a StakeholderDefinition or StakeholderUsage, then the - /// ConcernUsage shall have an ownedStakeholder feature that is bound to the self feature of its owner. + /// A ConcernUsage is a Usage of a ConcernDefinition. The ownedStakeholder features of the ConcernUsage + /// shall all subset the ConcernCheck::concernedStakeholders feature. If the ConcernUsage is an + /// ownedFeature of a StakeholderDefinition or StakeholderUsage, then the ConcernUsage shall have an + /// ownedStakeholder feature that is bound to the self feature of its owner. /// [Class(xmiId: "_19_0_4_12e503d9_1617051561652_163085_1288", isAbstract: false, isFinalSpecialization: false, isActive: false)] [GeneratedCode("SysML2.NET", "latest")] @@ -450,11 +450,11 @@ string Root.Elements.IElement.DeclaredShortName /// /// Whether all things that meet the classification conditions of this Type must be classified by the - /// Type. (A Type gives conditions that must be met by whatever it - /// classifies, but when isSufficient is false, things may meet those conditions but still not be - /// classified by the Type. For example, a Type Car that is not sufficient could require everything it - /// classifies to have four wheels, but not all four wheeled things would classify as cars. However, if - /// the Type Car were sufficient, it would classify all four-wheeled things.) + /// Type.(A Type gives conditions that must be met by whatever it classifies, but when isSufficient + /// is false, things may meet those conditions but still not be classified by the Type. For example, a + /// Type Car that is not sufficient could require everything it classifies to have four wheels, but not + /// all four wheeled things would classify as cars. However, if the Type Car were sufficient, it would + /// classify all four-wheeled things.) /// [Property(xmiId: "_18_5_3_b9102da_1564072709069_937523_30797", aggregation: AggregationKind.None, lowerValue: 1, upperValue: 1, isOrdered: false, isReadOnly: false, isDerived: false, isDerivedUnion: false, isUnique: true, defaultValue: "false")] [Implements(implementation: "IType.IsSufficient")] @@ -492,9 +492,9 @@ bool Core.Features.IFeature.IsVariable /// Whether this Usage may be time varying (that is, whether it is featured by the snapshots of its /// owningType, rather than being featured by the owningType itself). However, if isConstant is also /// true, then the value of the Usage is nevertheless constant over the entire duration of an instance - /// of its owningType (that is, it has the same value on all snapshots). The - /// property mayTimeVary redefines the KerML property Feature::isVariable, making it derived. The - /// property isConstant is inherited from Feature. + /// of its owningType (that is, it has the same value on all snapshots).The property mayTimeVary + /// redefines the KerML property Feature::isVariable, making it derived. The property isConstant is + /// inherited from Feature. /// [Property(xmiId: "_2022x_2_12e503d9_1737227200362_771035_69", aggregation: AggregationKind.None, lowerValue: 1, upperValue: 1, isOrdered: false, isReadOnly: false, isDerived: true, isDerivedUnion: false, isUnique: true, defaultValue: null)] [RedefinedProperty(propertyName: "_2022x_2_12e503d9_1725998273002_23711_212")] @@ -595,8 +595,8 @@ bool Core.Features.IFeature.IsVariable /// /// The ConnectorAsUsages that are nestedUsages of this Usage. Note that this list includes - /// BindingConnectorAsUsages, SuccessionAsUsages, and FlowConnectionUsages because these are - /// ConnectorAsUsages even though they are not ConnectionUsages. + /// BindingConnectorAsUsages, SuccessionAsUsages, and FlowUsages because these are ConnectorAsUsages + /// even though they are not ConnectionUsages. /// [Property(xmiId: "_19_0_2_12e503d9_1591479754895_422988_1242", aggregation: AggregationKind.None, lowerValue: 0, upperValue: int.MaxValue, isOrdered: true, isReadOnly: false, isDerived: true, isDerivedUnion: false, isUnique: true, defaultValue: null)] [SubsettedProperty(propertyName: "_18_5_3_12e503d9_1565472757327_162097_21259")] @@ -644,7 +644,7 @@ bool Core.Features.IFeature.IsVariable public List nestedItem { get; internal set; } = []; /// - /// The MetadataUsages that are nestedUsages of this of this Usage. + /// The MetadataUsages that are ownedMembers of this of this Usage. /// [Property(xmiId: "_19_0_4_12e503d9_1661488589862_120785_2970", aggregation: AggregationKind.None, lowerValue: 0, upperValue: int.MaxValue, isOrdered: true, isReadOnly: false, isDerived: true, isDerivedUnion: false, isUnique: true, defaultValue: null)] [SubsettedProperty(propertyName: "_19_0_2_12e503d9_1591482421103_284620_2978")] diff --git a/SysML2.NET/Core/AutoGenDto/ConjugatedPortDefinition.cs b/SysML2.NET/Core/AutoGenDto/ConjugatedPortDefinition.cs index aa97760b3..ec91386f2 100644 --- a/SysML2.NET/Core/AutoGenDto/ConjugatedPortDefinition.cs +++ b/SysML2.NET/Core/AutoGenDto/ConjugatedPortDefinition.cs @@ -58,7 +58,7 @@ public partial class ConjugatedPortDefinition : IConjugatedPortDefinition public List AliasIds { get; set; } = []; /// - /// The <> that is conjugate to this PortDefinition. + /// The ConjugatedPortDefinition that is conjugate to this PortDefinition. /// [Property(xmiId: "_19_0_2_12e503d9_1575484364015_206236_989", aggregation: AggregationKind.None, lowerValue: 0, upperValue: 1, isOrdered: false, isReadOnly: false, isDerived: true, isDerivedUnion: false, isUnique: true, defaultValue: null)] [SubsettedProperty(propertyName: "_18_5_3_12e503d9_1533160674979_259543_43268")] @@ -241,11 +241,11 @@ public partial class ConjugatedPortDefinition : IConjugatedPortDefinition /// /// Whether all things that meet the classification conditions of this Type must be classified by the - /// Type. (A Type gives conditions that must be met by whatever it - /// classifies, but when isSufficient is false, things may meet those conditions but still not be - /// classified by the Type. For example, a Type Car that is not sufficient could require everything it - /// classifies to have four wheels, but not all four wheeled things would classify as cars. However, if - /// the Type Car were sufficient, it would classify all four-wheeled things.) + /// Type.(A Type gives conditions that must be met by whatever it classifies, but when isSufficient + /// is false, things may meet those conditions but still not be classified by the Type. For example, a + /// Type Car that is not sufficient could require everything it classifies to have four wheels, but not + /// all four wheeled things would classify as cars. However, if the Type Car were sufficient, it would + /// classify all four-wheeled things.) /// [Property(xmiId: "_18_5_3_b9102da_1564072709069_937523_30797", aggregation: AggregationKind.None, lowerValue: 1, upperValue: 1, isOrdered: false, isReadOnly: false, isDerived: false, isDerivedUnion: false, isUnique: true, defaultValue: "false")] [Implements(implementation: "IType.IsSufficient")] @@ -533,7 +533,7 @@ public partial class ConjugatedPortDefinition : IConjugatedPortDefinition public List ownedMembership { get; internal set; } = []; /// - /// The MetadataUsages that are ownedUsages of this Definition. + /// The MetadataUsages that are ownedMembers of this Definition. /// [Property(xmiId: "_19_0_4_12e503d9_1661488358064_457109_2881", aggregation: AggregationKind.None, lowerValue: 0, upperValue: int.MaxValue, isOrdered: true, isReadOnly: false, isDerived: true, isDerivedUnion: false, isUnique: true, defaultValue: null)] [SubsettedProperty(propertyName: "_19_0_2_12e503d9_1591482567975_649284_3005")] diff --git a/SysML2.NET/Core/AutoGenDto/Conjugation.cs b/SysML2.NET/Core/AutoGenDto/Conjugation.cs index 423728cc2..bb1d62217 100644 --- a/SysML2.NET/Core/AutoGenDto/Conjugation.cs +++ b/SysML2.NET/Core/AutoGenDto/Conjugation.cs @@ -37,9 +37,9 @@ namespace SysML2.NET.Core.DTO.Core.Types /// with a direction in relative to the originalType are considered to have an effective direction of /// out relative to the conjugatedType and, similarly, Features with direction out in the originalType /// are considered to have an effective direction of in in the conjugatedType. Features with direction - /// inout, or with no direction, in the originalType, are inherited without change. - /// A Type may participate as a conjugatedType in at most one Conjugation relationship, and such a - /// Type may not also be the specific Type in any Specialization relationship. + /// inout, or with no direction, in the originalType, are inherited without change.A Type may + /// participate as a conjugatedType in at most one Conjugation relationship, and such a Type may not + /// also be the specific Type in any Specialization relationship. /// [Class(xmiId: "_19_0_2_12e503d9_1575482328287_696279_181", isAbstract: false, isFinalSpecialization: false, isActive: false)] [GeneratedCode("SysML2.NET", "latest")] diff --git a/SysML2.NET/Core/AutoGenDto/ConnectionDefinition.cs b/SysML2.NET/Core/AutoGenDto/ConnectionDefinition.cs index eb960e387..c53dae85d 100644 --- a/SysML2.NET/Core/AutoGenDto/ConnectionDefinition.cs +++ b/SysML2.NET/Core/AutoGenDto/ConnectionDefinition.cs @@ -266,11 +266,11 @@ public partial class ConnectionDefinition : IConnectionDefinition /// /// Whether all things that meet the classification conditions of this Type must be classified by the - /// Type. (A Type gives conditions that must be met by whatever it - /// classifies, but when isSufficient is false, things may meet those conditions but still not be - /// classified by the Type. For example, a Type Car that is not sufficient could require everything it - /// classifies to have four wheels, but not all four wheeled things would classify as cars. However, if - /// the Type Car were sufficient, it would classify all four-wheeled things.) + /// Type.(A Type gives conditions that must be met by whatever it classifies, but when isSufficient + /// is false, things may meet those conditions but still not be classified by the Type. For example, a + /// Type Car that is not sufficient could require everything it classifies to have four wheels, but not + /// all four wheeled things would classify as cars. However, if the Type Car were sufficient, it would + /// classify all four-wheeled things.) /// [Property(xmiId: "_18_5_3_b9102da_1564072709069_937523_30797", aggregation: AggregationKind.None, lowerValue: 1, upperValue: 1, isOrdered: false, isReadOnly: false, isDerived: false, isDerivedUnion: false, isUnique: true, defaultValue: "false")] [RedefinedByProperty("IConnectionDefinition.IsSufficient")] @@ -556,7 +556,7 @@ bool Core.Types.IType.IsSufficient public List ownedMembership { get; internal set; } = []; /// - /// The MetadataUsages that are ownedUsages of this Definition. + /// The MetadataUsages that are ownedMembers of this Definition. /// [Property(xmiId: "_19_0_4_12e503d9_1661488358064_457109_2881", aggregation: AggregationKind.None, lowerValue: 0, upperValue: int.MaxValue, isOrdered: true, isReadOnly: false, isDerived: true, isDerivedUnion: false, isUnique: true, defaultValue: null)] [SubsettedProperty(propertyName: "_19_0_2_12e503d9_1591482567975_649284_3005")] diff --git a/SysML2.NET/Core/AutoGenDto/ConnectionUsage.cs b/SysML2.NET/Core/AutoGenDto/ConnectionUsage.cs index 37cd8ab43..2e2aa774e 100644 --- a/SysML2.NET/Core/AutoGenDto/ConnectionUsage.cs +++ b/SysML2.NET/Core/AutoGenDto/ConnectionUsage.cs @@ -418,11 +418,11 @@ public partial class ConnectionUsage : IConnectionUsage /// /// Whether all things that meet the classification conditions of this Type must be classified by the - /// Type. (A Type gives conditions that must be met by whatever it - /// classifies, but when isSufficient is false, things may meet those conditions but still not be - /// classified by the Type. For example, a Type Car that is not sufficient could require everything it - /// classifies to have four wheels, but not all four wheeled things would classify as cars. However, if - /// the Type Car were sufficient, it would classify all four-wheeled things.) + /// Type.(A Type gives conditions that must be met by whatever it classifies, but when isSufficient + /// is false, things may meet those conditions but still not be classified by the Type. For example, a + /// Type Car that is not sufficient could require everything it classifies to have four wheels, but not + /// all four wheeled things would classify as cars. However, if the Type Car were sufficient, it would + /// classify all four-wheeled things.) /// [Property(xmiId: "_18_5_3_b9102da_1564072709069_937523_30797", aggregation: AggregationKind.None, lowerValue: 1, upperValue: 1, isOrdered: false, isReadOnly: false, isDerived: false, isDerivedUnion: false, isUnique: true, defaultValue: "false")] [Implements(implementation: "IType.IsSufficient")] @@ -470,9 +470,9 @@ bool Core.Features.IFeature.IsVariable /// Whether this Usage may be time varying (that is, whether it is featured by the snapshots of its /// owningType, rather than being featured by the owningType itself). However, if isConstant is also /// true, then the value of the Usage is nevertheless constant over the entire duration of an instance - /// of its owningType (that is, it has the same value on all snapshots). The - /// property mayTimeVary redefines the KerML property Feature::isVariable, making it derived. The - /// property isConstant is inherited from Feature. + /// of its owningType (that is, it has the same value on all snapshots).The property mayTimeVary + /// redefines the KerML property Feature::isVariable, making it derived. The property isConstant is + /// inherited from Feature. /// [Property(xmiId: "_2022x_2_12e503d9_1737227200362_771035_69", aggregation: AggregationKind.None, lowerValue: 1, upperValue: 1, isOrdered: false, isReadOnly: false, isDerived: true, isDerivedUnion: false, isUnique: true, defaultValue: null)] [RedefinedProperty(propertyName: "_2022x_2_12e503d9_1725998273002_23711_212")] @@ -573,8 +573,8 @@ bool Core.Features.IFeature.IsVariable /// /// The ConnectorAsUsages that are nestedUsages of this Usage. Note that this list includes - /// BindingConnectorAsUsages, SuccessionAsUsages, and FlowConnectionUsages because these are - /// ConnectorAsUsages even though they are not ConnectionUsages. + /// BindingConnectorAsUsages, SuccessionAsUsages, and FlowUsages because these are ConnectorAsUsages + /// even though they are not ConnectionUsages. /// [Property(xmiId: "_19_0_2_12e503d9_1591479754895_422988_1242", aggregation: AggregationKind.None, lowerValue: 0, upperValue: int.MaxValue, isOrdered: true, isReadOnly: false, isDerived: true, isDerivedUnion: false, isUnique: true, defaultValue: null)] [SubsettedProperty(propertyName: "_18_5_3_12e503d9_1565472757327_162097_21259")] @@ -622,7 +622,7 @@ bool Core.Features.IFeature.IsVariable public List nestedItem { get; internal set; } = []; /// - /// The MetadataUsages that are nestedUsages of this of this Usage. + /// The MetadataUsages that are ownedMembers of this of this Usage. /// [Property(xmiId: "_19_0_4_12e503d9_1661488589862_120785_2970", aggregation: AggregationKind.None, lowerValue: 0, upperValue: int.MaxValue, isOrdered: true, isReadOnly: false, isDerived: true, isDerivedUnion: false, isUnique: true, defaultValue: null)] [SubsettedProperty(propertyName: "_19_0_2_12e503d9_1591482421103_284620_2978")] diff --git a/SysML2.NET/Core/AutoGenDto/Connector.cs b/SysML2.NET/Core/AutoGenDto/Connector.cs index 2583c6301..d7034b1ce 100644 --- a/SysML2.NET/Core/AutoGenDto/Connector.cs +++ b/SysML2.NET/Core/AutoGenDto/Connector.cs @@ -364,11 +364,11 @@ public partial class Connector : IConnector /// /// Whether all things that meet the classification conditions of this Type must be classified by the - /// Type. (A Type gives conditions that must be met by whatever it - /// classifies, but when isSufficient is false, things may meet those conditions but still not be - /// classified by the Type. For example, a Type Car that is not sufficient could require everything it - /// classifies to have four wheels, but not all four wheeled things would classify as cars. However, if - /// the Type Car were sufficient, it would classify all four-wheeled things.) + /// Type.(A Type gives conditions that must be met by whatever it classifies, but when isSufficient + /// is false, things may meet those conditions but still not be classified by the Type. For example, a + /// Type Car that is not sufficient could require everything it classifies to have four wheels, but not + /// all four wheeled things would classify as cars. However, if the Type Car were sufficient, it would + /// classify all four-wheeled things.) /// [Property(xmiId: "_18_5_3_b9102da_1564072709069_937523_30797", aggregation: AggregationKind.None, lowerValue: 1, upperValue: 1, isOrdered: false, isReadOnly: false, isDerived: false, isDerivedUnion: false, isUnique: true, defaultValue: "false")] [Implements(implementation: "IType.IsSufficient")] diff --git a/SysML2.NET/Core/AutoGenDto/ConstraintDefinition.cs b/SysML2.NET/Core/AutoGenDto/ConstraintDefinition.cs index 7c6bdda37..fe9176fc7 100644 --- a/SysML2.NET/Core/AutoGenDto/ConstraintDefinition.cs +++ b/SysML2.NET/Core/AutoGenDto/ConstraintDefinition.cs @@ -240,9 +240,9 @@ public partial class ConstraintDefinition : IConstraintDefinition /// /// Whether this Function can be used as the function of a model-level evaluable InvocationExpression. /// Certain Functions from the Kernel Functions Library are considered to have isModelLevelEvaluable = - /// true. For all other Functions it is false. Note: See the - /// specification of the KerML concrete syntax notation for Expressions for an identification of which - /// library Functions are model-level evaluable. + /// true. For all other Functions it is false.Note: See the specification of the KerML + /// concrete syntax notation for Expressions for an identification of which library Functions are + /// model-level evaluable. /// [Property(xmiId: "_19_0_4_12e503d9_1617395221463_139517_26381", aggregation: AggregationKind.None, lowerValue: 1, upperValue: 1, isOrdered: false, isReadOnly: false, isDerived: true, isDerivedUnion: false, isUnique: true, defaultValue: null)] [Implements(implementation: "IFunction.IsModelLevelEvaluable")] @@ -250,11 +250,11 @@ public partial class ConstraintDefinition : IConstraintDefinition /// /// Whether all things that meet the classification conditions of this Type must be classified by the - /// Type. (A Type gives conditions that must be met by whatever it - /// classifies, but when isSufficient is false, things may meet those conditions but still not be - /// classified by the Type. For example, a Type Car that is not sufficient could require everything it - /// classifies to have four wheels, but not all four wheeled things would classify as cars. However, if - /// the Type Car were sufficient, it would classify all four-wheeled things.) + /// Type.(A Type gives conditions that must be met by whatever it classifies, but when isSufficient + /// is false, things may meet those conditions but still not be classified by the Type. For example, a + /// Type Car that is not sufficient could require everything it classifies to have four wheels, but not + /// all four wheeled things would classify as cars. However, if the Type Car were sufficient, it would + /// classify all four-wheeled things.) /// [Property(xmiId: "_18_5_3_b9102da_1564072709069_937523_30797", aggregation: AggregationKind.None, lowerValue: 1, upperValue: 1, isOrdered: false, isReadOnly: false, isDerived: false, isDerivedUnion: false, isUnique: true, defaultValue: "false")] [Implements(implementation: "IType.IsSufficient")] @@ -532,7 +532,7 @@ public partial class ConstraintDefinition : IConstraintDefinition public List ownedMembership { get; internal set; } = []; /// - /// The MetadataUsages that are ownedUsages of this Definition. + /// The MetadataUsages that are ownedMembers of this Definition. /// [Property(xmiId: "_19_0_4_12e503d9_1661488358064_457109_2881", aggregation: AggregationKind.None, lowerValue: 0, upperValue: int.MaxValue, isOrdered: true, isReadOnly: false, isDerived: true, isDerivedUnion: false, isUnique: true, defaultValue: null)] [SubsettedProperty(propertyName: "_19_0_2_12e503d9_1591482567975_649284_3005")] diff --git a/SysML2.NET/Core/AutoGenDto/ConstraintUsage.cs b/SysML2.NET/Core/AutoGenDto/ConstraintUsage.cs index c072e4d96..9a4dd5014 100644 --- a/SysML2.NET/Core/AutoGenDto/ConstraintUsage.cs +++ b/SysML2.NET/Core/AutoGenDto/ConstraintUsage.cs @@ -408,11 +408,11 @@ public partial class ConstraintUsage : IConstraintUsage /// /// Whether all things that meet the classification conditions of this Type must be classified by the - /// Type. (A Type gives conditions that must be met by whatever it - /// classifies, but when isSufficient is false, things may meet those conditions but still not be - /// classified by the Type. For example, a Type Car that is not sufficient could require everything it - /// classifies to have four wheels, but not all four wheeled things would classify as cars. However, if - /// the Type Car were sufficient, it would classify all four-wheeled things.) + /// Type.(A Type gives conditions that must be met by whatever it classifies, but when isSufficient + /// is false, things may meet those conditions but still not be classified by the Type. For example, a + /// Type Car that is not sufficient could require everything it classifies to have four wheels, but not + /// all four wheeled things would classify as cars. However, if the Type Car were sufficient, it would + /// classify all four-wheeled things.) /// [Property(xmiId: "_18_5_3_b9102da_1564072709069_937523_30797", aggregation: AggregationKind.None, lowerValue: 1, upperValue: 1, isOrdered: false, isReadOnly: false, isDerived: false, isDerivedUnion: false, isUnique: true, defaultValue: "false")] [Implements(implementation: "IType.IsSufficient")] @@ -450,9 +450,9 @@ bool Core.Features.IFeature.IsVariable /// Whether this Usage may be time varying (that is, whether it is featured by the snapshots of its /// owningType, rather than being featured by the owningType itself). However, if isConstant is also /// true, then the value of the Usage is nevertheless constant over the entire duration of an instance - /// of its owningType (that is, it has the same value on all snapshots). The - /// property mayTimeVary redefines the KerML property Feature::isVariable, making it derived. The - /// property isConstant is inherited from Feature. + /// of its owningType (that is, it has the same value on all snapshots).The property mayTimeVary + /// redefines the KerML property Feature::isVariable, making it derived. The property isConstant is + /// inherited from Feature. /// [Property(xmiId: "_2022x_2_12e503d9_1737227200362_771035_69", aggregation: AggregationKind.None, lowerValue: 1, upperValue: 1, isOrdered: false, isReadOnly: false, isDerived: true, isDerivedUnion: false, isUnique: true, defaultValue: null)] [RedefinedProperty(propertyName: "_2022x_2_12e503d9_1725998273002_23711_212")] @@ -553,8 +553,8 @@ bool Core.Features.IFeature.IsVariable /// /// The ConnectorAsUsages that are nestedUsages of this Usage. Note that this list includes - /// BindingConnectorAsUsages, SuccessionAsUsages, and FlowConnectionUsages because these are - /// ConnectorAsUsages even though they are not ConnectionUsages. + /// BindingConnectorAsUsages, SuccessionAsUsages, and FlowUsages because these are ConnectorAsUsages + /// even though they are not ConnectionUsages. /// [Property(xmiId: "_19_0_2_12e503d9_1591479754895_422988_1242", aggregation: AggregationKind.None, lowerValue: 0, upperValue: int.MaxValue, isOrdered: true, isReadOnly: false, isDerived: true, isDerivedUnion: false, isUnique: true, defaultValue: null)] [SubsettedProperty(propertyName: "_18_5_3_12e503d9_1565472757327_162097_21259")] @@ -602,7 +602,7 @@ bool Core.Features.IFeature.IsVariable public List nestedItem { get; internal set; } = []; /// - /// The MetadataUsages that are nestedUsages of this of this Usage. + /// The MetadataUsages that are ownedMembers of this of this Usage. /// [Property(xmiId: "_19_0_4_12e503d9_1661488589862_120785_2970", aggregation: AggregationKind.None, lowerValue: 0, upperValue: int.MaxValue, isOrdered: true, isReadOnly: false, isDerived: true, isDerivedUnion: false, isUnique: true, defaultValue: null)] [SubsettedProperty(propertyName: "_19_0_2_12e503d9_1591482421103_284620_2978")] diff --git a/SysML2.NET/Core/AutoGenDto/ConstructorExpression.cs b/SysML2.NET/Core/AutoGenDto/ConstructorExpression.cs index 6dde07db7..dde7a2f2f 100644 --- a/SysML2.NET/Core/AutoGenDto/ConstructorExpression.cs +++ b/SysML2.NET/Core/AutoGenDto/ConstructorExpression.cs @@ -57,8 +57,8 @@ public partial class ConstructorExpression : IConstructorExpression /// /// The Expressions whose results are bound to features of the instantiatedType. The arguments are /// ordered consistent with the order of the features, though they may not be one-to-one with all the - /// features. Note. The derivation of argument is given in - /// the concrete subclasses of InstantiationExpression. + /// features.Note. The derivation of argument is given in the concrete subclasses of + /// InstantiationExpression. /// [Property(xmiId: "_2022x_2_12e503d9_1739134437590_328753_108", aggregation: AggregationKind.None, lowerValue: 0, upperValue: int.MaxValue, isOrdered: true, isReadOnly: false, isDerived: true, isDerivedUnion: false, isUnique: true, defaultValue: null)] [Implements(implementation: "IInstantiationExpression.Argument")] @@ -369,11 +369,11 @@ public partial class ConstructorExpression : IConstructorExpression /// /// Whether all things that meet the classification conditions of this Type must be classified by the - /// Type. (A Type gives conditions that must be met by whatever it - /// classifies, but when isSufficient is false, things may meet those conditions but still not be - /// classified by the Type. For example, a Type Car that is not sufficient could require everything it - /// classifies to have four wheels, but not all four wheeled things would classify as cars. However, if - /// the Type Car were sufficient, it would classify all four-wheeled things.) + /// Type.(A Type gives conditions that must be met by whatever it classifies, but when isSufficient + /// is false, things may meet those conditions but still not be classified by the Type. For example, a + /// Type Car that is not sufficient could require everything it classifies to have four wheels, but not + /// all four wheeled things would classify as cars. However, if the Type Car were sufficient, it would + /// classify all four-wheeled things.) /// [Property(xmiId: "_18_5_3_b9102da_1564072709069_937523_30797", aggregation: AggregationKind.None, lowerValue: 1, upperValue: 1, isOrdered: false, isReadOnly: false, isDerived: false, isDerivedUnion: false, isUnique: true, defaultValue: "false")] [Implements(implementation: "IType.IsSufficient")] diff --git a/SysML2.NET/Core/AutoGenDto/CrossSubsetting.cs b/SysML2.NET/Core/AutoGenDto/CrossSubsetting.cs index 46f1fbedd..593081828 100644 --- a/SysML2.NET/Core/AutoGenDto/CrossSubsetting.cs +++ b/SysML2.NET/Core/AutoGenDto/CrossSubsetting.cs @@ -34,18 +34,17 @@ namespace SysML2.NET.Core.DTO.Core.Features /// CrossSubsetting is a kind of Subsetting for end Features, as identified by crossingFeature, to /// subset a chained Feature, identified by crossedFeature. It navigates to instances of the end /// Feature’s type from instances of other end Feature types on the same owningType (at least two end - /// Features are required for any of them to have a CrossSubsetting). The - /// crossedFeature of a CrossSubsetting must have a feature chain of exactly two Features. The second - /// Feature in the chain is the crossFeature of the crossingFeature (end Feature), which has the same - /// type as the crossingFeature. When the owningType of the crossingFeature has exactly two end - /// Features, the first Feature in the chain of the crossedFeature is the other end Feature. The - /// crossFeature’s featuringType in this case is the other end Feature. When the owningType has more - /// than two end Features, the first Feature in the chain is a Feature that CrossMultiplies all the - /// other end Features, which is also the featuringType of the crossFeature. A - /// crossFeature must be owned by its featureCrossing (end Feature) when the featureCrossing owningType - /// has more than two end Features. Otherwise, for exactly two end Features, the crossFeatures of each - /// the ends can instead optionally be inherited by the other end from one of its types or a subsetted - /// Feature. + /// Features are required for any of them to have a CrossSubsetting).The crossedFeature of a + /// CrossSubsetting must have a feature chain of exactly two Features. The second Feature in the chain + /// is the crossFeature of the crossingFeature (end Feature), which has the same type as the + /// crossingFeature. When the owningType of the crossingFeature has exactly two end Features, the first + /// Feature in the chain of the crossedFeature is the other end Feature. The crossFeature’s + /// featuringType in this case is the other end Feature. When the owningType has more than two end + /// Features, the first Feature in the chain is a Feature that CrossMultiplies all the other end + /// Features, which is also the featuringType of the crossFeature.A crossFeature must be owned by its + /// featureCrossing (end Feature) when the featureCrossing owningType has more than two end Features. + /// Otherwise, for exactly two end Features, the crossFeatures of each the ends can instead optionally + /// be inherited by the other end from one of its types or a subsetted Feature. /// [Class(xmiId: "_19_0_4_b9102da_1689616180239_998062_127", isAbstract: false, isFinalSpecialization: false, isActive: false)] [GeneratedCode("SysML2.NET", "latest")] diff --git a/SysML2.NET/Core/AutoGenDto/DataType.cs b/SysML2.NET/Core/AutoGenDto/DataType.cs index 1f5f6aaa7..06ac340f6 100644 --- a/SysML2.NET/Core/AutoGenDto/DataType.cs +++ b/SysML2.NET/Core/AutoGenDto/DataType.cs @@ -34,11 +34,10 @@ namespace SysML2.NET.Core.DTO.Kernel.DataTypes /// /// A DataType is a Classifier of things (in the universe) that can only be distinguished by how they /// are related to other things (via Features). This means multiple things classified by the same - /// DataType
  • Cannot be distinguished when they - /// are related to other things in exactly the same way, even when they are intended to be about - /// different things.
  • Can be distinguished when they are related to - /// other things in different ways, even when they are intended to be about the same thing.
  • - ///
+ /// DataType
  • Cannot be distinguished when they are related to other things in exactly the same + /// way, even when they are intended to be about different things.
  • Can be distinguished when + /// they are related to other things in different ways, even when they are intended to be about the same + /// thing.
///
[Class(xmiId: "_18_5_3_12e503d9_1557527599533_240072_110321", isAbstract: false, isFinalSpecialization: false, isActive: false)] [GeneratedCode("SysML2.NET", "latest")] @@ -219,11 +218,11 @@ public partial class DataType : IDataType /// /// Whether all things that meet the classification conditions of this Type must be classified by the - /// Type. (A Type gives conditions that must be met by whatever it - /// classifies, but when isSufficient is false, things may meet those conditions but still not be - /// classified by the Type. For example, a Type Car that is not sufficient could require everything it - /// classifies to have four wheels, but not all four wheeled things would classify as cars. However, if - /// the Type Car were sufficient, it would classify all four-wheeled things.) + /// Type.(A Type gives conditions that must be met by whatever it classifies, but when isSufficient + /// is false, things may meet those conditions but still not be classified by the Type. For example, a + /// Type Car that is not sufficient could require everything it classifies to have four wheels, but not + /// all four wheeled things would classify as cars. However, if the Type Car were sufficient, it would + /// classify all four-wheeled things.) /// [Property(xmiId: "_18_5_3_b9102da_1564072709069_937523_30797", aggregation: AggregationKind.None, lowerValue: 1, upperValue: 1, isOrdered: false, isReadOnly: false, isDerived: false, isDerivedUnion: false, isUnique: true, defaultValue: "false")] [Implements(implementation: "IType.IsSufficient")] diff --git a/SysML2.NET/Core/AutoGenDto/DecisionNode.cs b/SysML2.NET/Core/AutoGenDto/DecisionNode.cs index cbddf5807..50c448378 100644 --- a/SysML2.NET/Core/AutoGenDto/DecisionNode.cs +++ b/SysML2.NET/Core/AutoGenDto/DecisionNode.cs @@ -386,11 +386,11 @@ public partial class DecisionNode : IDecisionNode /// /// Whether all things that meet the classification conditions of this Type must be classified by the - /// Type. (A Type gives conditions that must be met by whatever it - /// classifies, but when isSufficient is false, things may meet those conditions but still not be - /// classified by the Type. For example, a Type Car that is not sufficient could require everything it - /// classifies to have four wheels, but not all four wheeled things would classify as cars. However, if - /// the Type Car were sufficient, it would classify all four-wheeled things.) + /// Type.(A Type gives conditions that must be met by whatever it classifies, but when isSufficient + /// is false, things may meet those conditions but still not be classified by the Type. For example, a + /// Type Car that is not sufficient could require everything it classifies to have four wheels, but not + /// all four wheeled things would classify as cars. However, if the Type Car were sufficient, it would + /// classify all four-wheeled things.) /// [Property(xmiId: "_18_5_3_b9102da_1564072709069_937523_30797", aggregation: AggregationKind.None, lowerValue: 1, upperValue: 1, isOrdered: false, isReadOnly: false, isDerived: false, isDerivedUnion: false, isUnique: true, defaultValue: "false")] [Implements(implementation: "IType.IsSufficient")] @@ -428,9 +428,9 @@ bool Core.Features.IFeature.IsVariable /// Whether this Usage may be time varying (that is, whether it is featured by the snapshots of its /// owningType, rather than being featured by the owningType itself). However, if isConstant is also /// true, then the value of the Usage is nevertheless constant over the entire duration of an instance - /// of its owningType (that is, it has the same value on all snapshots). The - /// property mayTimeVary redefines the KerML property Feature::isVariable, making it derived. The - /// property isConstant is inherited from Feature. + /// of its owningType (that is, it has the same value on all snapshots).The property mayTimeVary + /// redefines the KerML property Feature::isVariable, making it derived. The property isConstant is + /// inherited from Feature. /// [Property(xmiId: "_2022x_2_12e503d9_1737227200362_771035_69", aggregation: AggregationKind.None, lowerValue: 1, upperValue: 1, isOrdered: false, isReadOnly: false, isDerived: true, isDerivedUnion: false, isUnique: true, defaultValue: null)] [RedefinedProperty(propertyName: "_2022x_2_12e503d9_1725998273002_23711_212")] @@ -531,8 +531,8 @@ bool Core.Features.IFeature.IsVariable /// /// The ConnectorAsUsages that are nestedUsages of this Usage. Note that this list includes - /// BindingConnectorAsUsages, SuccessionAsUsages, and FlowConnectionUsages because these are - /// ConnectorAsUsages even though they are not ConnectionUsages. + /// BindingConnectorAsUsages, SuccessionAsUsages, and FlowUsages because these are ConnectorAsUsages + /// even though they are not ConnectionUsages. /// [Property(xmiId: "_19_0_2_12e503d9_1591479754895_422988_1242", aggregation: AggregationKind.None, lowerValue: 0, upperValue: int.MaxValue, isOrdered: true, isReadOnly: false, isDerived: true, isDerivedUnion: false, isUnique: true, defaultValue: null)] [SubsettedProperty(propertyName: "_18_5_3_12e503d9_1565472757327_162097_21259")] @@ -580,7 +580,7 @@ bool Core.Features.IFeature.IsVariable public List nestedItem { get; internal set; } = []; /// - /// The MetadataUsages that are nestedUsages of this of this Usage. + /// The MetadataUsages that are ownedMembers of this of this Usage. /// [Property(xmiId: "_19_0_4_12e503d9_1661488589862_120785_2970", aggregation: AggregationKind.None, lowerValue: 0, upperValue: int.MaxValue, isOrdered: true, isReadOnly: false, isDerived: true, isDerivedUnion: false, isUnique: true, defaultValue: null)] [SubsettedProperty(propertyName: "_19_0_2_12e503d9_1591482421103_284620_2978")] diff --git a/SysML2.NET/Core/AutoGenDto/Definition.cs b/SysML2.NET/Core/AutoGenDto/Definition.cs index c5d8bb6a4..2e50b2a9f 100644 --- a/SysML2.NET/Core/AutoGenDto/Definition.cs +++ b/SysML2.NET/Core/AutoGenDto/Definition.cs @@ -33,15 +33,15 @@ namespace SysML2.NET.Core.DTO.Systems.DefinitionAndUsage /// /// 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 + /// 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. + /// 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. /// [Class(xmiId: "_18_5_3_12e503d9_1565479032244_336549_22524", isAbstract: false, isFinalSpecialization: false, isActive: false)] [GeneratedCode("SysML2.NET", "latest")] @@ -230,11 +230,11 @@ public partial class Definition : IDefinition /// /// Whether all things that meet the classification conditions of this Type must be classified by the - /// Type. (A Type gives conditions that must be met by whatever it - /// classifies, but when isSufficient is false, things may meet those conditions but still not be - /// classified by the Type. For example, a Type Car that is not sufficient could require everything it - /// classifies to have four wheels, but not all four wheeled things would classify as cars. However, if - /// the Type Car were sufficient, it would classify all four-wheeled things.) + /// Type.(A Type gives conditions that must be met by whatever it classifies, but when isSufficient + /// is false, things may meet those conditions but still not be classified by the Type. For example, a + /// Type Car that is not sufficient could require everything it classifies to have four wheels, but not + /// all four wheeled things would classify as cars. However, if the Type Car were sufficient, it would + /// classify all four-wheeled things.) /// [Property(xmiId: "_18_5_3_b9102da_1564072709069_937523_30797", aggregation: AggregationKind.None, lowerValue: 1, upperValue: 1, isOrdered: false, isReadOnly: false, isDerived: false, isDerivedUnion: false, isUnique: true, defaultValue: "false")] [Implements(implementation: "IType.IsSufficient")] @@ -512,7 +512,7 @@ public partial class Definition : IDefinition public List ownedMembership { get; internal set; } = []; /// - /// The MetadataUsages that are ownedUsages of this Definition. + /// The MetadataUsages that are ownedMembers of this Definition. /// [Property(xmiId: "_19_0_4_12e503d9_1661488358064_457109_2881", aggregation: AggregationKind.None, lowerValue: 0, upperValue: int.MaxValue, isOrdered: true, isReadOnly: false, isDerived: true, isDerivedUnion: false, isUnique: true, defaultValue: null)] [SubsettedProperty(propertyName: "_19_0_2_12e503d9_1591482567975_649284_3005")] diff --git a/SysML2.NET/Core/AutoGenDto/Dependency.cs b/SysML2.NET/Core/AutoGenDto/Dependency.cs index dcf3d3d39..f0422f4bf 100644 --- a/SysML2.NET/Core/AutoGenDto/Dependency.cs +++ b/SysML2.NET/Core/AutoGenDto/Dependency.cs @@ -34,9 +34,8 @@ namespace SysML2.NET.Core.DTO.Root.Dependencies /// /// A Dependency is a Relationship that indicates that one or more client Elements require one more /// supplier Elements for their complete specification. In general, this means that a change to one of - /// the supplier Elements may necessitate a change to, or re-specification of, the client Elements. - /// Note that a Dependency is entirely a model-level Relationship, without - /// instance-level semantics. + /// the supplier Elements may necessitate a change to, or re-specification of, the client Elements.Note + /// that a Dependency is entirely a model-level Relationship, without instance-level semantics. /// [Class(xmiId: "_19_0_2_12e503d9_1594006219028_628649_74", isAbstract: false, isFinalSpecialization: false, isActive: false)] [GeneratedCode("SysML2.NET", "latest")] diff --git a/SysML2.NET/Core/AutoGenDto/EnumerationDefinition.cs b/SysML2.NET/Core/AutoGenDto/EnumerationDefinition.cs index cabb935d8..56fdcfc6c 100644 --- a/SysML2.NET/Core/AutoGenDto/EnumerationDefinition.cs +++ b/SysML2.NET/Core/AutoGenDto/EnumerationDefinition.cs @@ -232,11 +232,11 @@ public partial class EnumerationDefinition : IEnumerationDefinition /// /// Whether all things that meet the classification conditions of this Type must be classified by the - /// Type. (A Type gives conditions that must be met by whatever it - /// classifies, but when isSufficient is false, things may meet those conditions but still not be - /// classified by the Type. For example, a Type Car that is not sufficient could require everything it - /// classifies to have four wheels, but not all four wheeled things would classify as cars. However, if - /// the Type Car were sufficient, it would classify all four-wheeled things.) + /// Type.(A Type gives conditions that must be met by whatever it classifies, but when isSufficient + /// is false, things may meet those conditions but still not be classified by the Type. For example, a + /// Type Car that is not sufficient could require everything it classifies to have four wheels, but not + /// all four wheeled things would classify as cars. However, if the Type Car were sufficient, it would + /// classify all four-wheeled things.) /// [Property(xmiId: "_18_5_3_b9102da_1564072709069_937523_30797", aggregation: AggregationKind.None, lowerValue: 1, upperValue: 1, isOrdered: false, isReadOnly: false, isDerived: false, isDerivedUnion: false, isUnique: true, defaultValue: "false")] [Implements(implementation: "IType.IsSufficient")] @@ -531,7 +531,7 @@ bool Systems.DefinitionAndUsage.IDefinition.IsVariation public List ownedMembership { get; internal set; } = []; /// - /// The MetadataUsages that are ownedUsages of this Definition. + /// The MetadataUsages that are ownedMembers of this Definition. /// [Property(xmiId: "_19_0_4_12e503d9_1661488358064_457109_2881", aggregation: AggregationKind.None, lowerValue: 0, upperValue: int.MaxValue, isOrdered: true, isReadOnly: false, isDerived: true, isDerivedUnion: false, isUnique: true, defaultValue: null)] [SubsettedProperty(propertyName: "_19_0_2_12e503d9_1591482567975_649284_3005")] diff --git a/SysML2.NET/Core/AutoGenDto/EnumerationUsage.cs b/SysML2.NET/Core/AutoGenDto/EnumerationUsage.cs index ef6a96d2b..e86442cb7 100644 --- a/SysML2.NET/Core/AutoGenDto/EnumerationUsage.cs +++ b/SysML2.NET/Core/AutoGenDto/EnumerationUsage.cs @@ -378,11 +378,11 @@ public partial class EnumerationUsage : IEnumerationUsage /// /// Whether all things that meet the classification conditions of this Type must be classified by the - /// Type. (A Type gives conditions that must be met by whatever it - /// classifies, but when isSufficient is false, things may meet those conditions but still not be - /// classified by the Type. For example, a Type Car that is not sufficient could require everything it - /// classifies to have four wheels, but not all four wheeled things would classify as cars. However, if - /// the Type Car were sufficient, it would classify all four-wheeled things.) + /// Type.(A Type gives conditions that must be met by whatever it classifies, but when isSufficient + /// is false, things may meet those conditions but still not be classified by the Type. For example, a + /// Type Car that is not sufficient could require everything it classifies to have four wheels, but not + /// all four wheeled things would classify as cars. However, if the Type Car were sufficient, it would + /// classify all four-wheeled things.) /// [Property(xmiId: "_18_5_3_b9102da_1564072709069_937523_30797", aggregation: AggregationKind.None, lowerValue: 1, upperValue: 1, isOrdered: false, isReadOnly: false, isDerived: false, isDerivedUnion: false, isUnique: true, defaultValue: "false")] [Implements(implementation: "IType.IsSufficient")] @@ -420,9 +420,9 @@ bool Core.Features.IFeature.IsVariable /// Whether this Usage may be time varying (that is, whether it is featured by the snapshots of its /// owningType, rather than being featured by the owningType itself). However, if isConstant is also /// true, then the value of the Usage is nevertheless constant over the entire duration of an instance - /// of its owningType (that is, it has the same value on all snapshots). The - /// property mayTimeVary redefines the KerML property Feature::isVariable, making it derived. The - /// property isConstant is inherited from Feature. + /// of its owningType (that is, it has the same value on all snapshots).The property mayTimeVary + /// redefines the KerML property Feature::isVariable, making it derived. The property isConstant is + /// inherited from Feature. /// [Property(xmiId: "_2022x_2_12e503d9_1737227200362_771035_69", aggregation: AggregationKind.None, lowerValue: 1, upperValue: 1, isOrdered: false, isReadOnly: false, isDerived: true, isDerivedUnion: false, isUnique: true, defaultValue: null)] [RedefinedProperty(propertyName: "_2022x_2_12e503d9_1725998273002_23711_212")] @@ -523,8 +523,8 @@ bool Core.Features.IFeature.IsVariable /// /// The ConnectorAsUsages that are nestedUsages of this Usage. Note that this list includes - /// BindingConnectorAsUsages, SuccessionAsUsages, and FlowConnectionUsages because these are - /// ConnectorAsUsages even though they are not ConnectionUsages. + /// BindingConnectorAsUsages, SuccessionAsUsages, and FlowUsages because these are ConnectorAsUsages + /// even though they are not ConnectionUsages. /// [Property(xmiId: "_19_0_2_12e503d9_1591479754895_422988_1242", aggregation: AggregationKind.None, lowerValue: 0, upperValue: int.MaxValue, isOrdered: true, isReadOnly: false, isDerived: true, isDerivedUnion: false, isUnique: true, defaultValue: null)] [SubsettedProperty(propertyName: "_18_5_3_12e503d9_1565472757327_162097_21259")] @@ -572,7 +572,7 @@ bool Core.Features.IFeature.IsVariable public List nestedItem { get; internal set; } = []; /// - /// The MetadataUsages that are nestedUsages of this of this Usage. + /// The MetadataUsages that are ownedMembers of this of this Usage. /// [Property(xmiId: "_19_0_4_12e503d9_1661488589862_120785_2970", aggregation: AggregationKind.None, lowerValue: 0, upperValue: int.MaxValue, isOrdered: true, isReadOnly: false, isDerived: true, isDerivedUnion: false, isUnique: true, defaultValue: null)] [SubsettedProperty(propertyName: "_19_0_2_12e503d9_1591482421103_284620_2978")] diff --git a/SysML2.NET/Core/AutoGenDto/EventOccurrenceUsage.cs b/SysML2.NET/Core/AutoGenDto/EventOccurrenceUsage.cs index bf342dbed..fb360a4c7 100644 --- a/SysML2.NET/Core/AutoGenDto/EventOccurrenceUsage.cs +++ b/SysML2.NET/Core/AutoGenDto/EventOccurrenceUsage.cs @@ -36,9 +36,9 @@ namespace SysML2.NET.Core.DTO.Systems.Occurrences /// An EventOccurrenceUsage is an OccurrenceUsage that represents another OccurrenceUsage occurring as a /// suboccurrence of the containing occurrence of the EventOccurrenceUsage. Unless it is the /// EventOccurrenceUsage itself, the referenced OccurrenceUsage is related to the EventOccurrenceUsage - /// by a ReferenceSubsetting Relationship. If the EventOccurrenceUsage is owned - /// by an OccurrenceDefinition or OccurrenceUsage, then it also subsets the timeEnclosedOccurrences - /// property of the Class Occurrence from the Kernel Semantic Library model Occurrences. + /// by a ReferenceSubsetting Relationship.If the EventOccurrenceUsage is owned by an + /// OccurrenceDefinition or OccurrenceUsage, then it also subsets the timeEnclosedOccurrences property + /// of the Class Occurrence from the Kernel Semantic Library model Occurrences. /// [Class(xmiId: "_19_0_4_12e503d9_1622831611763_442921_132", isAbstract: false, isFinalSpecialization: false, isActive: false)] [GeneratedCode("SysML2.NET", "latest")] @@ -389,11 +389,11 @@ public partial class EventOccurrenceUsage : IEventOccurrenceUsage /// /// Whether all things that meet the classification conditions of this Type must be classified by the - /// Type. (A Type gives conditions that must be met by whatever it - /// classifies, but when isSufficient is false, things may meet those conditions but still not be - /// classified by the Type. For example, a Type Car that is not sufficient could require everything it - /// classifies to have four wheels, but not all four wheeled things would classify as cars. However, if - /// the Type Car were sufficient, it would classify all four-wheeled things.) + /// Type.(A Type gives conditions that must be met by whatever it classifies, but when isSufficient + /// is false, things may meet those conditions but still not be classified by the Type. For example, a + /// Type Car that is not sufficient could require everything it classifies to have four wheels, but not + /// all four wheeled things would classify as cars. However, if the Type Car were sufficient, it would + /// classify all four-wheeled things.) /// [Property(xmiId: "_18_5_3_b9102da_1564072709069_937523_30797", aggregation: AggregationKind.None, lowerValue: 1, upperValue: 1, isOrdered: false, isReadOnly: false, isDerived: false, isDerivedUnion: false, isUnique: true, defaultValue: "false")] [Implements(implementation: "IType.IsSufficient")] @@ -431,9 +431,9 @@ bool Core.Features.IFeature.IsVariable /// Whether this Usage may be time varying (that is, whether it is featured by the snapshots of its /// owningType, rather than being featured by the owningType itself). However, if isConstant is also /// true, then the value of the Usage is nevertheless constant over the entire duration of an instance - /// of its owningType (that is, it has the same value on all snapshots). The - /// property mayTimeVary redefines the KerML property Feature::isVariable, making it derived. The - /// property isConstant is inherited from Feature. + /// of its owningType (that is, it has the same value on all snapshots).The property mayTimeVary + /// redefines the KerML property Feature::isVariable, making it derived. The property isConstant is + /// inherited from Feature. /// [Property(xmiId: "_2022x_2_12e503d9_1737227200362_771035_69", aggregation: AggregationKind.None, lowerValue: 1, upperValue: 1, isOrdered: false, isReadOnly: false, isDerived: true, isDerivedUnion: false, isUnique: true, defaultValue: null)] [RedefinedProperty(propertyName: "_2022x_2_12e503d9_1725998273002_23711_212")] @@ -534,8 +534,8 @@ bool Core.Features.IFeature.IsVariable /// /// The ConnectorAsUsages that are nestedUsages of this Usage. Note that this list includes - /// BindingConnectorAsUsages, SuccessionAsUsages, and FlowConnectionUsages because these are - /// ConnectorAsUsages even though they are not ConnectionUsages. + /// BindingConnectorAsUsages, SuccessionAsUsages, and FlowUsages because these are ConnectorAsUsages + /// even though they are not ConnectionUsages. /// [Property(xmiId: "_19_0_2_12e503d9_1591479754895_422988_1242", aggregation: AggregationKind.None, lowerValue: 0, upperValue: int.MaxValue, isOrdered: true, isReadOnly: false, isDerived: true, isDerivedUnion: false, isUnique: true, defaultValue: null)] [SubsettedProperty(propertyName: "_18_5_3_12e503d9_1565472757327_162097_21259")] @@ -583,7 +583,7 @@ bool Core.Features.IFeature.IsVariable public List nestedItem { get; internal set; } = []; /// - /// The MetadataUsages that are nestedUsages of this of this Usage. + /// The MetadataUsages that are ownedMembers of this of this Usage. /// [Property(xmiId: "_19_0_4_12e503d9_1661488589862_120785_2970", aggregation: AggregationKind.None, lowerValue: 0, upperValue: int.MaxValue, isOrdered: true, isReadOnly: false, isDerived: true, isDerivedUnion: false, isUnique: true, defaultValue: null)] [SubsettedProperty(propertyName: "_19_0_2_12e503d9_1591482421103_284620_2978")] diff --git a/SysML2.NET/Core/AutoGenDto/ExhibitStateUsage.cs b/SysML2.NET/Core/AutoGenDto/ExhibitStateUsage.cs index 8610813c5..5c277741a 100644 --- a/SysML2.NET/Core/AutoGenDto/ExhibitStateUsage.cs +++ b/SysML2.NET/Core/AutoGenDto/ExhibitStateUsage.cs @@ -455,11 +455,11 @@ public partial class ExhibitStateUsage : IExhibitStateUsage /// /// Whether all things that meet the classification conditions of this Type must be classified by the - /// Type. (A Type gives conditions that must be met by whatever it - /// classifies, but when isSufficient is false, things may meet those conditions but still not be - /// classified by the Type. For example, a Type Car that is not sufficient could require everything it - /// classifies to have four wheels, but not all four wheeled things would classify as cars. However, if - /// the Type Car were sufficient, it would classify all four-wheeled things.) + /// Type.(A Type gives conditions that must be met by whatever it classifies, but when isSufficient + /// is false, things may meet those conditions but still not be classified by the Type. For example, a + /// Type Car that is not sufficient could require everything it classifies to have four wheels, but not + /// all four wheeled things would classify as cars. However, if the Type Car were sufficient, it would + /// classify all four-wheeled things.) /// [Property(xmiId: "_18_5_3_b9102da_1564072709069_937523_30797", aggregation: AggregationKind.None, lowerValue: 1, upperValue: 1, isOrdered: false, isReadOnly: false, isDerived: false, isDerivedUnion: false, isUnique: true, defaultValue: "false")] [Implements(implementation: "IType.IsSufficient")] @@ -497,9 +497,9 @@ bool Core.Features.IFeature.IsVariable /// Whether this Usage may be time varying (that is, whether it is featured by the snapshots of its /// owningType, rather than being featured by the owningType itself). However, if isConstant is also /// true, then the value of the Usage is nevertheless constant over the entire duration of an instance - /// of its owningType (that is, it has the same value on all snapshots). The - /// property mayTimeVary redefines the KerML property Feature::isVariable, making it derived. The - /// property isConstant is inherited from Feature. + /// of its owningType (that is, it has the same value on all snapshots).The property mayTimeVary + /// redefines the KerML property Feature::isVariable, making it derived. The property isConstant is + /// inherited from Feature. /// [Property(xmiId: "_2022x_2_12e503d9_1737227200362_771035_69", aggregation: AggregationKind.None, lowerValue: 1, upperValue: 1, isOrdered: false, isReadOnly: false, isDerived: true, isDerivedUnion: false, isUnique: true, defaultValue: null)] [RedefinedProperty(propertyName: "_2022x_2_12e503d9_1725998273002_23711_212")] @@ -600,8 +600,8 @@ bool Core.Features.IFeature.IsVariable /// /// The ConnectorAsUsages that are nestedUsages of this Usage. Note that this list includes - /// BindingConnectorAsUsages, SuccessionAsUsages, and FlowConnectionUsages because these are - /// ConnectorAsUsages even though they are not ConnectionUsages. + /// BindingConnectorAsUsages, SuccessionAsUsages, and FlowUsages because these are ConnectorAsUsages + /// even though they are not ConnectionUsages. /// [Property(xmiId: "_19_0_2_12e503d9_1591479754895_422988_1242", aggregation: AggregationKind.None, lowerValue: 0, upperValue: int.MaxValue, isOrdered: true, isReadOnly: false, isDerived: true, isDerivedUnion: false, isUnique: true, defaultValue: null)] [SubsettedProperty(propertyName: "_18_5_3_12e503d9_1565472757327_162097_21259")] @@ -649,7 +649,7 @@ bool Core.Features.IFeature.IsVariable public List nestedItem { get; internal set; } = []; /// - /// The MetadataUsages that are nestedUsages of this of this Usage. + /// The MetadataUsages that are ownedMembers of this of this Usage. /// [Property(xmiId: "_19_0_4_12e503d9_1661488589862_120785_2970", aggregation: AggregationKind.None, lowerValue: 0, upperValue: int.MaxValue, isOrdered: true, isReadOnly: false, isDerived: true, isDerivedUnion: false, isUnique: true, defaultValue: null)] [SubsettedProperty(propertyName: "_19_0_2_12e503d9_1591482421103_284620_2978")] diff --git a/SysML2.NET/Core/AutoGenDto/Expression.cs b/SysML2.NET/Core/AutoGenDto/Expression.cs index 1c1f7b3c7..283607fa7 100644 --- a/SysML2.NET/Core/AutoGenDto/Expression.cs +++ b/SysML2.NET/Core/AutoGenDto/Expression.cs @@ -354,11 +354,11 @@ public partial class Expression : IExpression /// /// Whether all things that meet the classification conditions of this Type must be classified by the - /// Type. (A Type gives conditions that must be met by whatever it - /// classifies, but when isSufficient is false, things may meet those conditions but still not be - /// classified by the Type. For example, a Type Car that is not sufficient could require everything it - /// classifies to have four wheels, but not all four wheeled things would classify as cars. However, if - /// the Type Car were sufficient, it would classify all four-wheeled things.) + /// Type.(A Type gives conditions that must be met by whatever it classifies, but when isSufficient + /// is false, things may meet those conditions but still not be classified by the Type. For example, a + /// Type Car that is not sufficient could require everything it classifies to have four wheels, but not + /// all four wheeled things would classify as cars. However, if the Type Car were sufficient, it would + /// classify all four-wheeled things.) /// [Property(xmiId: "_18_5_3_b9102da_1564072709069_937523_30797", aggregation: AggregationKind.None, lowerValue: 1, upperValue: 1, isOrdered: false, isReadOnly: false, isDerived: false, isDerivedUnion: false, isUnique: true, defaultValue: "false")] [Implements(implementation: "IType.IsSufficient")] diff --git a/SysML2.NET/Core/AutoGenDto/Feature.cs b/SysML2.NET/Core/AutoGenDto/Feature.cs index 8d0c7b337..64a577444 100644 --- a/SysML2.NET/Core/AutoGenDto/Feature.cs +++ b/SysML2.NET/Core/AutoGenDto/Feature.cs @@ -36,19 +36,18 @@ namespace SysML2.NET.Core.DTO.Core.Features /// A Feature is a Type that classifies relations between multiple things (in the universe). The domain /// of the relation is the intersection of the featuringTypes of the Feature. (The domain of a Feature /// with no featuringTyps is implicitly the most general Type Base::Anything from the Kernel Semantic - /// Library.) The co-domain of the relation is the intersection of the types of the Feature. - /// In the simplest cases, the featuringTypes and types are Classifiers and the Feature - /// relates two things, one from the domain and one from the range. Examples include cars paired with - /// wheels, people paired with other people, and cars paired with numbers representing the car length. - /// Since Features are Types, their featuringTypes and types can be Features. In - /// this case, the Feature effectively classifies relations between relations, which can be interpreted - /// as the sequence of things related by the domain Feature concatenated with the sequence of things - /// related by the co-domain Feature. The values of a Feature for a given - /// instance of its domain are all the instances of its co-domain that are related to that domain - /// instance by the Feature. The values of a Feature with chainingFeatures are the same as values of the - /// last Feature in the chain, which can be found by starting with values of the first Feature, then - /// using those values as domain instances to obtain valus of the second Feature, and so on, to values - /// of the last Feature. + /// Library.) The co-domain of the relation is the intersection of the types of the Feature.In the + /// simplest cases, the featuringTypes and types are Classifiers and the Feature relates two things, one + /// from the domain and one from the range. Examples include cars paired with wheels, people paired with + /// other people, and cars paired with numbers representing the car length.Since Features are Types, + /// their featuringTypes and types can be Features. In this case, the Feature effectively classifies + /// relations between relations, which can be interpreted as the sequence of things related by the + /// domain Feature concatenated with the sequence of things related by the co-domain Feature.The values + /// of a Feature for a given instance of its domain are all the instances of its co-domain that are + /// related to that domain instance by the Feature. The values of a Feature with chainingFeatures are + /// the same as values of the last Feature in the chain, which can be found by starting with values of + /// the first Feature, then using those values as domain instances to obtain valus of the second + /// Feature, and so on, to values of the last Feature. /// [Class(xmiId: "_18_5_3_12e503d9_1533160651684_893483_42160", isAbstract: false, isFinalSpecialization: false, isActive: false)] [GeneratedCode("SysML2.NET", "latest")] @@ -339,11 +338,11 @@ public partial class Feature : IFeature /// /// Whether all things that meet the classification conditions of this Type must be classified by the - /// Type. (A Type gives conditions that must be met by whatever it - /// classifies, but when isSufficient is false, things may meet those conditions but still not be - /// classified by the Type. For example, a Type Car that is not sufficient could require everything it - /// classifies to have four wheels, but not all four wheeled things would classify as cars. However, if - /// the Type Car were sufficient, it would classify all four-wheeled things.) + /// Type.(A Type gives conditions that must be met by whatever it classifies, but when isSufficient + /// is false, things may meet those conditions but still not be classified by the Type. For example, a + /// Type Car that is not sufficient could require everything it classifies to have four wheels, but not + /// all four wheeled things would classify as cars. However, if the Type Car were sufficient, it would + /// classify all four-wheeled things.) /// [Property(xmiId: "_18_5_3_b9102da_1564072709069_937523_30797", aggregation: AggregationKind.None, lowerValue: 1, upperValue: 1, isOrdered: false, isReadOnly: false, isDerived: false, isDerivedUnion: false, isUnique: true, defaultValue: "false")] [Implements(implementation: "IType.IsSufficient")] diff --git a/SysML2.NET/Core/AutoGenDto/FeatureChainExpression.cs b/SysML2.NET/Core/AutoGenDto/FeatureChainExpression.cs index e66af8c57..1ff8f4c7f 100644 --- a/SysML2.NET/Core/AutoGenDto/FeatureChainExpression.cs +++ b/SysML2.NET/Core/AutoGenDto/FeatureChainExpression.cs @@ -57,8 +57,8 @@ public partial class FeatureChainExpression : IFeatureChainExpression /// /// The Expressions whose results are bound to features of the instantiatedType. The arguments are /// ordered consistent with the order of the features, though they may not be one-to-one with all the - /// features. Note. The derivation of argument is given in - /// the concrete subclasses of InstantiationExpression. + /// features.Note. The derivation of argument is given in the concrete subclasses of + /// InstantiationExpression. /// [Property(xmiId: "_2022x_2_12e503d9_1739134437590_328753_108", aggregation: AggregationKind.None, lowerValue: 0, upperValue: int.MaxValue, isOrdered: true, isReadOnly: false, isDerived: true, isDerivedUnion: false, isUnique: true, defaultValue: null)] [Implements(implementation: "IInstantiationExpression.Argument")] @@ -369,11 +369,11 @@ public partial class FeatureChainExpression : IFeatureChainExpression /// /// Whether all things that meet the classification conditions of this Type must be classified by the - /// Type. (A Type gives conditions that must be met by whatever it - /// classifies, but when isSufficient is false, things may meet those conditions but still not be - /// classified by the Type. For example, a Type Car that is not sufficient could require everything it - /// classifies to have four wheels, but not all four wheeled things would classify as cars. However, if - /// the Type Car were sufficient, it would classify all four-wheeled things.) + /// Type.(A Type gives conditions that must be met by whatever it classifies, but when isSufficient + /// is false, things may meet those conditions but still not be classified by the Type. For example, a + /// Type Car that is not sufficient could require everything it classifies to have four wheels, but not + /// all four wheeled things would classify as cars. However, if the Type Car were sufficient, it would + /// classify all four-wheeled things.) /// [Property(xmiId: "_18_5_3_b9102da_1564072709069_937523_30797", aggregation: AggregationKind.None, lowerValue: 1, upperValue: 1, isOrdered: false, isReadOnly: false, isDerived: false, isDerivedUnion: false, isUnique: true, defaultValue: "false")] [Implements(implementation: "IType.IsSufficient")] diff --git a/SysML2.NET/Core/AutoGenDto/FeatureReferenceExpression.cs b/SysML2.NET/Core/AutoGenDto/FeatureReferenceExpression.cs index 5ce4c3d0a..aa25208d8 100644 --- a/SysML2.NET/Core/AutoGenDto/FeatureReferenceExpression.cs +++ b/SysML2.NET/Core/AutoGenDto/FeatureReferenceExpression.cs @@ -350,11 +350,11 @@ public partial class FeatureReferenceExpression : IFeatureReferenceExpression /// /// Whether all things that meet the classification conditions of this Type must be classified by the - /// Type. (A Type gives conditions that must be met by whatever it - /// classifies, but when isSufficient is false, things may meet those conditions but still not be - /// classified by the Type. For example, a Type Car that is not sufficient could require everything it - /// classifies to have four wheels, but not all four wheeled things would classify as cars. However, if - /// the Type Car were sufficient, it would classify all four-wheeled things.) + /// Type.(A Type gives conditions that must be met by whatever it classifies, but when isSufficient + /// is false, things may meet those conditions but still not be classified by the Type. For example, a + /// Type Car that is not sufficient could require everything it classifies to have four wheels, but not + /// all four wheeled things would classify as cars. However, if the Type Car were sufficient, it would + /// classify all four-wheeled things.) /// [Property(xmiId: "_18_5_3_b9102da_1564072709069_937523_30797", aggregation: AggregationKind.None, lowerValue: 1, upperValue: 1, isOrdered: false, isReadOnly: false, isDerived: false, isDerivedUnion: false, isUnique: true, defaultValue: "false")] [Implements(implementation: "IType.IsSufficient")] diff --git a/SysML2.NET/Core/AutoGenDto/FeatureValue.cs b/SysML2.NET/Core/AutoGenDto/FeatureValue.cs index 7f717d86b..e916534b3 100644 --- a/SysML2.NET/Core/AutoGenDto/FeatureValue.cs +++ b/SysML2.NET/Core/AutoGenDto/FeatureValue.cs @@ -36,14 +36,13 @@ namespace SysML2.NET.Core.DTO.Kernel.FeatureValues /// A FeatureValue is a Membership that identifies a particular member Expression that provides the /// value of the Feature that owns the FeatureValue. The value is specified as either a bound value or /// an initial value, and as either a concrete or default value. A Feature can have at most one - /// FeatureValue. The result of the value Expression is bound to the - /// featureWithValue using a BindingConnector. If isInitial = false, then the featuringType of the - /// BindingConnector is the same as the featuringType of the featureWithValue. If isInitial = true, then - /// the featuringType of the BindingConnector is restricted to its startShot. If - /// isDefault = false, then the above semantics of the FeatureValue are realized for the given - /// featureWithValue. Otherwise, the semantics are realized for any individual of the featuringType of - /// the featureWithValue, unless another value is explicitly given for the featureWithValue for that - /// individual. + /// FeatureValue.The result of the value Expression is bound to the featureWithValue using a + /// BindingConnector. If isInitial = false, then the featuringType of the BindingConnector is the same + /// as the featuringType of the featureWithValue. If isInitial = true, then the featuringType of the + /// BindingConnector is restricted to its startShot.If isDefault = false, then the above semantics of + /// the FeatureValue are realized for the given featureWithValue. Otherwise, the semantics are realized + /// for any individual of the featuringType of the featureWithValue, unless another value is explicitly + /// given for the featureWithValue for that individual. /// [Class(xmiId: "_18_5_3_12e503d9_1543180279304_499907_20659", isAbstract: false, isFinalSpecialization: false, isActive: false)] [GeneratedCode("SysML2.NET", "latest")] diff --git a/SysML2.NET/Core/AutoGenDto/Flow.cs b/SysML2.NET/Core/AutoGenDto/Flow.cs index 291fb075a..c8653a839 100644 --- a/SysML2.NET/Core/AutoGenDto/Flow.cs +++ b/SysML2.NET/Core/AutoGenDto/Flow.cs @@ -391,11 +391,11 @@ public partial class Flow : IFlow /// /// Whether all things that meet the classification conditions of this Type must be classified by the - /// Type. (A Type gives conditions that must be met by whatever it - /// classifies, but when isSufficient is false, things may meet those conditions but still not be - /// classified by the Type. For example, a Type Car that is not sufficient could require everything it - /// classifies to have four wheels, but not all four wheeled things would classify as cars. However, if - /// the Type Car were sufficient, it would classify all four-wheeled things.) + /// Type.(A Type gives conditions that must be met by whatever it classifies, but when isSufficient + /// is false, things may meet those conditions but still not be classified by the Type. For example, a + /// Type Car that is not sufficient could require everything it classifies to have four wheels, but not + /// all four wheeled things would classify as cars. However, if the Type Car were sufficient, it would + /// classify all four-wheeled things.) /// [Property(xmiId: "_18_5_3_b9102da_1564072709069_937523_30797", aggregation: AggregationKind.None, lowerValue: 1, upperValue: 1, isOrdered: false, isReadOnly: false, isDerived: false, isDerivedUnion: false, isUnique: true, defaultValue: "false")] [Implements(implementation: "IType.IsSufficient")] diff --git a/SysML2.NET/Core/AutoGenDto/FlowDefinition.cs b/SysML2.NET/Core/AutoGenDto/FlowDefinition.cs index a4699da01..4a45cdc7b 100644 --- a/SysML2.NET/Core/AutoGenDto/FlowDefinition.cs +++ b/SysML2.NET/Core/AutoGenDto/FlowDefinition.cs @@ -268,11 +268,11 @@ public partial class FlowDefinition : IFlowDefinition /// /// Whether all things that meet the classification conditions of this Type must be classified by the - /// Type. (A Type gives conditions that must be met by whatever it - /// classifies, but when isSufficient is false, things may meet those conditions but still not be - /// classified by the Type. For example, a Type Car that is not sufficient could require everything it - /// classifies to have four wheels, but not all four wheeled things would classify as cars. However, if - /// the Type Car were sufficient, it would classify all four-wheeled things.) + /// Type.(A Type gives conditions that must be met by whatever it classifies, but when isSufficient + /// is false, things may meet those conditions but still not be classified by the Type. For example, a + /// Type Car that is not sufficient could require everything it classifies to have four wheels, but not + /// all four wheeled things would classify as cars. However, if the Type Car were sufficient, it would + /// classify all four-wheeled things.) /// [Property(xmiId: "_18_5_3_b9102da_1564072709069_937523_30797", aggregation: AggregationKind.None, lowerValue: 1, upperValue: 1, isOrdered: false, isReadOnly: false, isDerived: false, isDerivedUnion: false, isUnique: true, defaultValue: "false")] [Implements(implementation: "IType.IsSufficient")] @@ -550,7 +550,7 @@ public partial class FlowDefinition : IFlowDefinition public List ownedMembership { get; internal set; } = []; /// - /// The MetadataUsages that are ownedUsages of this Definition. + /// The MetadataUsages that are ownedMembers of this Definition. /// [Property(xmiId: "_19_0_4_12e503d9_1661488358064_457109_2881", aggregation: AggregationKind.None, lowerValue: 0, upperValue: int.MaxValue, isOrdered: true, isReadOnly: false, isDerived: true, isDerivedUnion: false, isUnique: true, defaultValue: null)] [SubsettedProperty(propertyName: "_19_0_2_12e503d9_1591482567975_649284_3005")] diff --git a/SysML2.NET/Core/AutoGenDto/FlowEnd.cs b/SysML2.NET/Core/AutoGenDto/FlowEnd.cs index 7ccf10e4d..215637af9 100644 --- a/SysML2.NET/Core/AutoGenDto/FlowEnd.cs +++ b/SysML2.NET/Core/AutoGenDto/FlowEnd.cs @@ -327,11 +327,11 @@ public partial class FlowEnd : IFlowEnd /// /// Whether all things that meet the classification conditions of this Type must be classified by the - /// Type. (A Type gives conditions that must be met by whatever it - /// classifies, but when isSufficient is false, things may meet those conditions but still not be - /// classified by the Type. For example, a Type Car that is not sufficient could require everything it - /// classifies to have four wheels, but not all four wheeled things would classify as cars. However, if - /// the Type Car were sufficient, it would classify all four-wheeled things.) + /// Type.(A Type gives conditions that must be met by whatever it classifies, but when isSufficient + /// is false, things may meet those conditions but still not be classified by the Type. For example, a + /// Type Car that is not sufficient could require everything it classifies to have four wheels, but not + /// all four wheeled things would classify as cars. However, if the Type Car were sufficient, it would + /// classify all four-wheeled things.) /// [Property(xmiId: "_18_5_3_b9102da_1564072709069_937523_30797", aggregation: AggregationKind.None, lowerValue: 1, upperValue: 1, isOrdered: false, isReadOnly: false, isDerived: false, isDerivedUnion: false, isUnique: true, defaultValue: "false")] [Implements(implementation: "IType.IsSufficient")] diff --git a/SysML2.NET/Core/AutoGenDto/FlowUsage.cs b/SysML2.NET/Core/AutoGenDto/FlowUsage.cs index d79907fdd..a6b28fe0b 100644 --- a/SysML2.NET/Core/AutoGenDto/FlowUsage.cs +++ b/SysML2.NET/Core/AutoGenDto/FlowUsage.cs @@ -455,11 +455,11 @@ public partial class FlowUsage : IFlowUsage /// /// Whether all things that meet the classification conditions of this Type must be classified by the - /// Type. (A Type gives conditions that must be met by whatever it - /// classifies, but when isSufficient is false, things may meet those conditions but still not be - /// classified by the Type. For example, a Type Car that is not sufficient could require everything it - /// classifies to have four wheels, but not all four wheeled things would classify as cars. However, if - /// the Type Car were sufficient, it would classify all four-wheeled things.) + /// Type.(A Type gives conditions that must be met by whatever it classifies, but when isSufficient + /// is false, things may meet those conditions but still not be classified by the Type. For example, a + /// Type Car that is not sufficient could require everything it classifies to have four wheels, but not + /// all four wheeled things would classify as cars. However, if the Type Car were sufficient, it would + /// classify all four-wheeled things.) /// [Property(xmiId: "_18_5_3_b9102da_1564072709069_937523_30797", aggregation: AggregationKind.None, lowerValue: 1, upperValue: 1, isOrdered: false, isReadOnly: false, isDerived: false, isDerivedUnion: false, isUnique: true, defaultValue: "false")] [Implements(implementation: "IType.IsSufficient")] @@ -497,9 +497,9 @@ bool Core.Features.IFeature.IsVariable /// Whether this Usage may be time varying (that is, whether it is featured by the snapshots of its /// owningType, rather than being featured by the owningType itself). However, if isConstant is also /// true, then the value of the Usage is nevertheless constant over the entire duration of an instance - /// of its owningType (that is, it has the same value on all snapshots). The - /// property mayTimeVary redefines the KerML property Feature::isVariable, making it derived. The - /// property isConstant is inherited from Feature. + /// of its owningType (that is, it has the same value on all snapshots).The property mayTimeVary + /// redefines the KerML property Feature::isVariable, making it derived. The property isConstant is + /// inherited from Feature. /// [Property(xmiId: "_2022x_2_12e503d9_1737227200362_771035_69", aggregation: AggregationKind.None, lowerValue: 1, upperValue: 1, isOrdered: false, isReadOnly: false, isDerived: true, isDerivedUnion: false, isUnique: true, defaultValue: null)] [RedefinedProperty(propertyName: "_2022x_2_12e503d9_1725998273002_23711_212")] @@ -600,8 +600,8 @@ bool Core.Features.IFeature.IsVariable /// /// The ConnectorAsUsages that are nestedUsages of this Usage. Note that this list includes - /// BindingConnectorAsUsages, SuccessionAsUsages, and FlowConnectionUsages because these are - /// ConnectorAsUsages even though they are not ConnectionUsages. + /// BindingConnectorAsUsages, SuccessionAsUsages, and FlowUsages because these are ConnectorAsUsages + /// even though they are not ConnectionUsages. /// [Property(xmiId: "_19_0_2_12e503d9_1591479754895_422988_1242", aggregation: AggregationKind.None, lowerValue: 0, upperValue: int.MaxValue, isOrdered: true, isReadOnly: false, isDerived: true, isDerivedUnion: false, isUnique: true, defaultValue: null)] [SubsettedProperty(propertyName: "_18_5_3_12e503d9_1565472757327_162097_21259")] @@ -649,7 +649,7 @@ bool Core.Features.IFeature.IsVariable public List nestedItem { get; internal set; } = []; /// - /// The MetadataUsages that are nestedUsages of this of this Usage. + /// The MetadataUsages that are ownedMembers of this of this Usage. /// [Property(xmiId: "_19_0_4_12e503d9_1661488589862_120785_2970", aggregation: AggregationKind.None, lowerValue: 0, upperValue: int.MaxValue, isOrdered: true, isReadOnly: false, isDerived: true, isDerivedUnion: false, isUnique: true, defaultValue: null)] [SubsettedProperty(propertyName: "_19_0_2_12e503d9_1591482421103_284620_2978")] diff --git a/SysML2.NET/Core/AutoGenDto/ForLoopActionUsage.cs b/SysML2.NET/Core/AutoGenDto/ForLoopActionUsage.cs index 397405dbe..ed6a81ded 100644 --- a/SysML2.NET/Core/AutoGenDto/ForLoopActionUsage.cs +++ b/SysML2.NET/Core/AutoGenDto/ForLoopActionUsage.cs @@ -396,11 +396,11 @@ public partial class ForLoopActionUsage : IForLoopActionUsage /// /// Whether all things that meet the classification conditions of this Type must be classified by the - /// Type. (A Type gives conditions that must be met by whatever it - /// classifies, but when isSufficient is false, things may meet those conditions but still not be - /// classified by the Type. For example, a Type Car that is not sufficient could require everything it - /// classifies to have four wheels, but not all four wheeled things would classify as cars. However, if - /// the Type Car were sufficient, it would classify all four-wheeled things.) + /// Type.(A Type gives conditions that must be met by whatever it classifies, but when isSufficient + /// is false, things may meet those conditions but still not be classified by the Type. For example, a + /// Type Car that is not sufficient could require everything it classifies to have four wheels, but not + /// all four wheeled things would classify as cars. However, if the Type Car were sufficient, it would + /// classify all four-wheeled things.) /// [Property(xmiId: "_18_5_3_b9102da_1564072709069_937523_30797", aggregation: AggregationKind.None, lowerValue: 1, upperValue: 1, isOrdered: false, isReadOnly: false, isDerived: false, isDerivedUnion: false, isUnique: true, defaultValue: "false")] [Implements(implementation: "IType.IsSufficient")] @@ -447,9 +447,9 @@ bool Core.Features.IFeature.IsVariable /// Whether this Usage may be time varying (that is, whether it is featured by the snapshots of its /// owningType, rather than being featured by the owningType itself). However, if isConstant is also /// true, then the value of the Usage is nevertheless constant over the entire duration of an instance - /// of its owningType (that is, it has the same value on all snapshots). The - /// property mayTimeVary redefines the KerML property Feature::isVariable, making it derived. The - /// property isConstant is inherited from Feature. + /// of its owningType (that is, it has the same value on all snapshots).The property mayTimeVary + /// redefines the KerML property Feature::isVariable, making it derived. The property isConstant is + /// inherited from Feature. /// [Property(xmiId: "_2022x_2_12e503d9_1737227200362_771035_69", aggregation: AggregationKind.None, lowerValue: 1, upperValue: 1, isOrdered: false, isReadOnly: false, isDerived: true, isDerivedUnion: false, isUnique: true, defaultValue: null)] [RedefinedProperty(propertyName: "_2022x_2_12e503d9_1725998273002_23711_212")] @@ -550,8 +550,8 @@ bool Core.Features.IFeature.IsVariable /// /// The ConnectorAsUsages that are nestedUsages of this Usage. Note that this list includes - /// BindingConnectorAsUsages, SuccessionAsUsages, and FlowConnectionUsages because these are - /// ConnectorAsUsages even though they are not ConnectionUsages. + /// BindingConnectorAsUsages, SuccessionAsUsages, and FlowUsages because these are ConnectorAsUsages + /// even though they are not ConnectionUsages. /// [Property(xmiId: "_19_0_2_12e503d9_1591479754895_422988_1242", aggregation: AggregationKind.None, lowerValue: 0, upperValue: int.MaxValue, isOrdered: true, isReadOnly: false, isDerived: true, isDerivedUnion: false, isUnique: true, defaultValue: null)] [SubsettedProperty(propertyName: "_18_5_3_12e503d9_1565472757327_162097_21259")] @@ -599,7 +599,7 @@ bool Core.Features.IFeature.IsVariable public List nestedItem { get; internal set; } = []; /// - /// The MetadataUsages that are nestedUsages of this of this Usage. + /// The MetadataUsages that are ownedMembers of this of this Usage. /// [Property(xmiId: "_19_0_4_12e503d9_1661488589862_120785_2970", aggregation: AggregationKind.None, lowerValue: 0, upperValue: int.MaxValue, isOrdered: true, isReadOnly: false, isDerived: true, isDerivedUnion: false, isUnique: true, defaultValue: null)] [SubsettedProperty(propertyName: "_19_0_2_12e503d9_1591482421103_284620_2978")] diff --git a/SysML2.NET/Core/AutoGenDto/ForkNode.cs b/SysML2.NET/Core/AutoGenDto/ForkNode.cs index ec5e66eae..05f15ea16 100644 --- a/SysML2.NET/Core/AutoGenDto/ForkNode.cs +++ b/SysML2.NET/Core/AutoGenDto/ForkNode.cs @@ -387,11 +387,11 @@ public partial class ForkNode : IForkNode /// /// Whether all things that meet the classification conditions of this Type must be classified by the - /// Type. (A Type gives conditions that must be met by whatever it - /// classifies, but when isSufficient is false, things may meet those conditions but still not be - /// classified by the Type. For example, a Type Car that is not sufficient could require everything it - /// classifies to have four wheels, but not all four wheeled things would classify as cars. However, if - /// the Type Car were sufficient, it would classify all four-wheeled things.) + /// Type.(A Type gives conditions that must be met by whatever it classifies, but when isSufficient + /// is false, things may meet those conditions but still not be classified by the Type. For example, a + /// Type Car that is not sufficient could require everything it classifies to have four wheels, but not + /// all four wheeled things would classify as cars. However, if the Type Car were sufficient, it would + /// classify all four-wheeled things.) /// [Property(xmiId: "_18_5_3_b9102da_1564072709069_937523_30797", aggregation: AggregationKind.None, lowerValue: 1, upperValue: 1, isOrdered: false, isReadOnly: false, isDerived: false, isDerivedUnion: false, isUnique: true, defaultValue: "false")] [Implements(implementation: "IType.IsSufficient")] @@ -429,9 +429,9 @@ bool Core.Features.IFeature.IsVariable /// Whether this Usage may be time varying (that is, whether it is featured by the snapshots of its /// owningType, rather than being featured by the owningType itself). However, if isConstant is also /// true, then the value of the Usage is nevertheless constant over the entire duration of an instance - /// of its owningType (that is, it has the same value on all snapshots). The - /// property mayTimeVary redefines the KerML property Feature::isVariable, making it derived. The - /// property isConstant is inherited from Feature. + /// of its owningType (that is, it has the same value on all snapshots).The property mayTimeVary + /// redefines the KerML property Feature::isVariable, making it derived. The property isConstant is + /// inherited from Feature. /// [Property(xmiId: "_2022x_2_12e503d9_1737227200362_771035_69", aggregation: AggregationKind.None, lowerValue: 1, upperValue: 1, isOrdered: false, isReadOnly: false, isDerived: true, isDerivedUnion: false, isUnique: true, defaultValue: null)] [RedefinedProperty(propertyName: "_2022x_2_12e503d9_1725998273002_23711_212")] @@ -532,8 +532,8 @@ bool Core.Features.IFeature.IsVariable /// /// The ConnectorAsUsages that are nestedUsages of this Usage. Note that this list includes - /// BindingConnectorAsUsages, SuccessionAsUsages, and FlowConnectionUsages because these are - /// ConnectorAsUsages even though they are not ConnectionUsages. + /// BindingConnectorAsUsages, SuccessionAsUsages, and FlowUsages because these are ConnectorAsUsages + /// even though they are not ConnectionUsages. /// [Property(xmiId: "_19_0_2_12e503d9_1591479754895_422988_1242", aggregation: AggregationKind.None, lowerValue: 0, upperValue: int.MaxValue, isOrdered: true, isReadOnly: false, isDerived: true, isDerivedUnion: false, isUnique: true, defaultValue: null)] [SubsettedProperty(propertyName: "_18_5_3_12e503d9_1565472757327_162097_21259")] @@ -581,7 +581,7 @@ bool Core.Features.IFeature.IsVariable public List nestedItem { get; internal set; } = []; /// - /// The MetadataUsages that are nestedUsages of this of this Usage. + /// The MetadataUsages that are ownedMembers of this of this Usage. /// [Property(xmiId: "_19_0_4_12e503d9_1661488589862_120785_2970", aggregation: AggregationKind.None, lowerValue: 0, upperValue: int.MaxValue, isOrdered: true, isReadOnly: false, isDerived: true, isDerivedUnion: false, isUnique: true, defaultValue: null)] [SubsettedProperty(propertyName: "_19_0_2_12e503d9_1591482421103_284620_2978")] diff --git a/SysML2.NET/Core/AutoGenDto/Function.cs b/SysML2.NET/Core/AutoGenDto/Function.cs index f2ae04469..cb0b5c087 100644 --- a/SysML2.NET/Core/AutoGenDto/Function.cs +++ b/SysML2.NET/Core/AutoGenDto/Function.cs @@ -225,9 +225,9 @@ public partial class Function : IFunction /// /// Whether this Function can be used as the function of a model-level evaluable InvocationExpression. /// Certain Functions from the Kernel Functions Library are considered to have isModelLevelEvaluable = - /// true. For all other Functions it is false. Note: See the - /// specification of the KerML concrete syntax notation for Expressions for an identification of which - /// library Functions are model-level evaluable. + /// true. For all other Functions it is false.Note: See the specification of the KerML + /// concrete syntax notation for Expressions for an identification of which library Functions are + /// model-level evaluable. /// [Property(xmiId: "_19_0_4_12e503d9_1617395221463_139517_26381", aggregation: AggregationKind.None, lowerValue: 1, upperValue: 1, isOrdered: false, isReadOnly: false, isDerived: true, isDerivedUnion: false, isUnique: true, defaultValue: null)] [Implements(implementation: "IFunction.IsModelLevelEvaluable")] @@ -235,11 +235,11 @@ public partial class Function : IFunction /// /// Whether all things that meet the classification conditions of this Type must be classified by the - /// Type. (A Type gives conditions that must be met by whatever it - /// classifies, but when isSufficient is false, things may meet those conditions but still not be - /// classified by the Type. For example, a Type Car that is not sufficient could require everything it - /// classifies to have four wheels, but not all four wheeled things would classify as cars. However, if - /// the Type Car were sufficient, it would classify all four-wheeled things.) + /// Type.(A Type gives conditions that must be met by whatever it classifies, but when isSufficient + /// is false, things may meet those conditions but still not be classified by the Type. For example, a + /// Type Car that is not sufficient could require everything it classifies to have four wheels, but not + /// all four wheeled things would classify as cars. However, if the Type Car were sufficient, it would + /// classify all four-wheeled things.) /// [Property(xmiId: "_18_5_3_b9102da_1564072709069_937523_30797", aggregation: AggregationKind.None, lowerValue: 1, upperValue: 1, isOrdered: false, isReadOnly: false, isDerived: false, isDerivedUnion: false, isUnique: true, defaultValue: "false")] [Implements(implementation: "IType.IsSufficient")] diff --git a/SysML2.NET/Core/AutoGenDto/IAttributeDefinition.cs b/SysML2.NET/Core/AutoGenDto/IAttributeDefinition.cs index 7cc1f7055..5edce53ca 100644 --- a/SysML2.NET/Core/AutoGenDto/IAttributeDefinition.cs +++ b/SysML2.NET/Core/AutoGenDto/IAttributeDefinition.cs @@ -35,9 +35,9 @@ namespace SysML2.NET.Core.DTO.Systems.Attributes /// /// An AttributeDefinition is a Definition and a DataType of information about a quality or /// characteristic of a system or part of a system that has no independent identity other than its - /// value. All features of an AttributeDefinition must be referential (non-composite). - /// As a DataType, an AttributeDefinition must specialize, directly or indirectly, the base - /// DataType Base::DataValue from the Kernel Semantic Library. + /// value. All features of an AttributeDefinition must be referential (non-composite).As a DataType, an + /// AttributeDefinition must specialize, directly or indirectly, the base DataType Base::DataValue from + /// the Kernel Semantic Library. /// [Class(xmiId: "_18_5_3_12e503d9_1565471213468_167708_20650", isAbstract: false, isFinalSpecialization: false, isActive: false)] [GeneratedCode("SysML2.NET", "latest")] diff --git a/SysML2.NET/Core/AutoGenDto/IAttributeUsage.cs b/SysML2.NET/Core/AutoGenDto/IAttributeUsage.cs index 4804d249b..3712a7810 100644 --- a/SysML2.NET/Core/AutoGenDto/IAttributeUsage.cs +++ b/SysML2.NET/Core/AutoGenDto/IAttributeUsage.cs @@ -37,9 +37,8 @@ namespace SysML2.NET.Core.DTO.Systems.Attributes /// AttributeDefinition, an AttributeUsage is a usage of a AttributeDefinition to represent the value of /// some system quality or characteristic. However, other kinds of kernel DataTypes are also allowed, to /// permit use of DataTypes from the Kernel Model Libraries. An AttributeUsage itself as well as all its - /// nested features must be referential (non-composite). An AttributeUsage must - /// specialize, directly or indirectly, the base Feature Base::dataValues from the Kernel Semantic - /// Library. + /// nested features must be referential (non-composite).An AttributeUsage must specialize, directly or + /// indirectly, the base Feature Base::dataValues from the Kernel Semantic Library. /// [Class(xmiId: "_18_5_3_12e503d9_1565471291545_950196_20762", isAbstract: false, isFinalSpecialization: false, isActive: false)] [GeneratedCode("SysML2.NET", "latest")] diff --git a/SysML2.NET/Core/AutoGenDto/IClassifier.cs b/SysML2.NET/Core/AutoGenDto/IClassifier.cs index ac171c2fc..3b74a3ade 100644 --- a/SysML2.NET/Core/AutoGenDto/IClassifier.cs +++ b/SysML2.NET/Core/AutoGenDto/IClassifier.cs @@ -32,13 +32,12 @@ namespace SysML2.NET.Core.DTO.Core.Classifiers using SysML2.NET.Decorators; /// - /// A Classifier is a Type that classifies:
    - ///
  • Things (in the universe) regardless of how Features relate them. (These are interpreted - /// semantically as sequences of exactly one thing.)
  • How the above - /// things are related by Features. (These are interpreted semantically as sequences of multiple things, - /// such that the last thing in the sequence is also classified by the Classifier. Note that this means - /// that a Classifier modeled as specializing a Feature cannot classify anything.)
  • - ///
+ /// A Classifier is a Type that classifies:
  • Things (in the universe) regardless of how Features + /// relate them. (These are interpreted semantically as sequences of exactly one thing.)
  • How + /// the above things are related by Features. (These are interpreted semantically as sequences of + /// multiple things, such that the last thing in the sequence is also classified by the Classifier. Note + /// that this means that a Classifier modeled as specializing a Feature cannot classify + /// anything.)
///
[Class(xmiId: "_18_5_3_12e503d9_1533160651676_375105_42143", isAbstract: false, isFinalSpecialization: false, isActive: false)] [GeneratedCode("SysML2.NET", "latest")] diff --git a/SysML2.NET/Core/AutoGenDto/IConcernUsage.cs b/SysML2.NET/Core/AutoGenDto/IConcernUsage.cs index 31ed9a751..c8d0c12e4 100644 --- a/SysML2.NET/Core/AutoGenDto/IConcernUsage.cs +++ b/SysML2.NET/Core/AutoGenDto/IConcernUsage.cs @@ -33,10 +33,10 @@ namespace SysML2.NET.Core.DTO.Systems.Requirements using SysML2.NET.Decorators; /// - /// A ConcernUsage is a Usage of a ConcernDefinition. The ownedStakeholder - /// features of the ConcernUsage shall all subset the ConcernCheck::concernedStakeholders feature. If - /// the ConcernUsage is an ownedFeature of a StakeholderDefinition or StakeholderUsage, then the - /// ConcernUsage shall have an ownedStakeholder feature that is bound to the self feature of its owner. + /// A ConcernUsage is a Usage of a ConcernDefinition. The ownedStakeholder features of the ConcernUsage + /// shall all subset the ConcernCheck::concernedStakeholders feature. If the ConcernUsage is an + /// ownedFeature of a StakeholderDefinition or StakeholderUsage, then the ConcernUsage shall have an + /// ownedStakeholder feature that is bound to the self feature of its owner. /// [Class(xmiId: "_19_0_4_12e503d9_1617051561652_163085_1288", isAbstract: false, isFinalSpecialization: false, isActive: false)] [GeneratedCode("SysML2.NET", "latest")] diff --git a/SysML2.NET/Core/AutoGenDto/IConjugation.cs b/SysML2.NET/Core/AutoGenDto/IConjugation.cs index 0818c897d..57e8bbe9b 100644 --- a/SysML2.NET/Core/AutoGenDto/IConjugation.cs +++ b/SysML2.NET/Core/AutoGenDto/IConjugation.cs @@ -37,9 +37,9 @@ namespace SysML2.NET.Core.DTO.Core.Types /// with a direction in relative to the originalType are considered to have an effective direction of /// out relative to the conjugatedType and, similarly, Features with direction out in the originalType /// are considered to have an effective direction of in in the conjugatedType. Features with direction - /// inout, or with no direction, in the originalType, are inherited without change. - /// A Type may participate as a conjugatedType in at most one Conjugation relationship, and such a - /// Type may not also be the specific Type in any Specialization relationship. + /// inout, or with no direction, in the originalType, are inherited without change.A Type may + /// participate as a conjugatedType in at most one Conjugation relationship, and such a Type may not + /// also be the specific Type in any Specialization relationship. /// [Class(xmiId: "_19_0_2_12e503d9_1575482328287_696279_181", isAbstract: false, isFinalSpecialization: false, isActive: false)] [GeneratedCode("SysML2.NET", "latest")] diff --git a/SysML2.NET/Core/AutoGenDto/IConnectorAsUsage.cs b/SysML2.NET/Core/AutoGenDto/IConnectorAsUsage.cs index 107d4ea33..39a36a17b 100644 --- a/SysML2.NET/Core/AutoGenDto/IConnectorAsUsage.cs +++ b/SysML2.NET/Core/AutoGenDto/IConnectorAsUsage.cs @@ -36,7 +36,7 @@ namespace SysML2.NET.Core.DTO.Systems.Connections /// /// A ConnectorAsUsage is both a Connector and a Usage. ConnectorAsUsage cannot itself be instantiated /// in a SysML model, but it is a base class for the concrete classes BindingConnectorAsUsage, - /// SuccessionAsUsage, ConnectionUsage and FlowConnectionUsage. + /// SuccessionAsUsage, ConnectionUsage and FlowUsage. /// [Class(xmiId: "_19_0_4_12e503d9_1624053320057_820842_471", isAbstract: true, isFinalSpecialization: false, isActive: false)] [GeneratedCode("SysML2.NET", "latest")] diff --git a/SysML2.NET/Core/AutoGenDto/ICrossSubsetting.cs b/SysML2.NET/Core/AutoGenDto/ICrossSubsetting.cs index 9b16a08a3..0e553a390 100644 --- a/SysML2.NET/Core/AutoGenDto/ICrossSubsetting.cs +++ b/SysML2.NET/Core/AutoGenDto/ICrossSubsetting.cs @@ -34,18 +34,17 @@ namespace SysML2.NET.Core.DTO.Core.Features /// CrossSubsetting is a kind of Subsetting for end Features, as identified by crossingFeature, to /// subset a chained Feature, identified by crossedFeature. It navigates to instances of the end /// Feature’s type from instances of other end Feature types on the same owningType (at least two end - /// Features are required for any of them to have a CrossSubsetting). The - /// crossedFeature of a CrossSubsetting must have a feature chain of exactly two Features. The second - /// Feature in the chain is the crossFeature of the crossingFeature (end Feature), which has the same - /// type as the crossingFeature. When the owningType of the crossingFeature has exactly two end - /// Features, the first Feature in the chain of the crossedFeature is the other end Feature. The - /// crossFeature’s featuringType in this case is the other end Feature. When the owningType has more - /// than two end Features, the first Feature in the chain is a Feature that CrossMultiplies all the - /// other end Features, which is also the featuringType of the crossFeature. A - /// crossFeature must be owned by its featureCrossing (end Feature) when the featureCrossing owningType - /// has more than two end Features. Otherwise, for exactly two end Features, the crossFeatures of each - /// the ends can instead optionally be inherited by the other end from one of its types or a subsetted - /// Feature. + /// Features are required for any of them to have a CrossSubsetting).The crossedFeature of a + /// CrossSubsetting must have a feature chain of exactly two Features. The second Feature in the chain + /// is the crossFeature of the crossingFeature (end Feature), which has the same type as the + /// crossingFeature. When the owningType of the crossingFeature has exactly two end Features, the first + /// Feature in the chain of the crossedFeature is the other end Feature. The crossFeature’s + /// featuringType in this case is the other end Feature. When the owningType has more than two end + /// Features, the first Feature in the chain is a Feature that CrossMultiplies all the other end + /// Features, which is also the featuringType of the crossFeature.A crossFeature must be owned by its + /// featureCrossing (end Feature) when the featureCrossing owningType has more than two end Features. + /// Otherwise, for exactly two end Features, the crossFeatures of each the ends can instead optionally + /// be inherited by the other end from one of its types or a subsetted Feature. /// [Class(xmiId: "_19_0_4_b9102da_1689616180239_998062_127", isAbstract: false, isFinalSpecialization: false, isActive: false)] [GeneratedCode("SysML2.NET", "latest")] diff --git a/SysML2.NET/Core/AutoGenDto/IDataType.cs b/SysML2.NET/Core/AutoGenDto/IDataType.cs index 72b8e2b23..483c734c7 100644 --- a/SysML2.NET/Core/AutoGenDto/IDataType.cs +++ b/SysML2.NET/Core/AutoGenDto/IDataType.cs @@ -34,11 +34,10 @@ namespace SysML2.NET.Core.DTO.Kernel.DataTypes /// /// A DataType is a Classifier of things (in the universe) that can only be distinguished by how they /// are related to other things (via Features). This means multiple things classified by the same - /// DataType
  • Cannot be distinguished when they - /// are related to other things in exactly the same way, even when they are intended to be about - /// different things.
  • Can be distinguished when they are related to - /// other things in different ways, even when they are intended to be about the same thing.
  • - ///
+ /// DataType
  • Cannot be distinguished when they are related to other things in exactly the same + /// way, even when they are intended to be about different things.
  • Can be distinguished when + /// they are related to other things in different ways, even when they are intended to be about the same + /// thing.
///
[Class(xmiId: "_18_5_3_12e503d9_1557527599533_240072_110321", isAbstract: false, isFinalSpecialization: false, isActive: false)] [GeneratedCode("SysML2.NET", "latest")] diff --git a/SysML2.NET/Core/AutoGenDto/IDefinition.cs b/SysML2.NET/Core/AutoGenDto/IDefinition.cs index dc18ff290..ff92dbd07 100644 --- a/SysML2.NET/Core/AutoGenDto/IDefinition.cs +++ b/SysML2.NET/Core/AutoGenDto/IDefinition.cs @@ -33,15 +33,15 @@ namespace SysML2.NET.Core.DTO.Systems.DefinitionAndUsage /// /// 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 + /// 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. + /// 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. /// [Class(xmiId: "_18_5_3_12e503d9_1565479032244_336549_22524", isAbstract: false, isFinalSpecialization: false, isActive: false)] [GeneratedCode("SysML2.NET", "latest")] @@ -155,7 +155,7 @@ public partial interface IDefinition : IClassifier List ownedItem { get; } /// - /// The MetadataUsages that are ownedUsages of this Definition. + /// The MetadataUsages that are ownedMembers of this Definition. /// [Property(xmiId: "_19_0_4_12e503d9_1661488358064_457109_2881", aggregation: AggregationKind.None, lowerValue: 0, upperValue: int.MaxValue, isOrdered: true, isReadOnly: false, isDerived: true, isDerivedUnion: false, isUnique: true, defaultValue: null)] [SubsettedProperty(propertyName: "_19_0_2_12e503d9_1591482567975_649284_3005")] diff --git a/SysML2.NET/Core/AutoGenDto/IDependency.cs b/SysML2.NET/Core/AutoGenDto/IDependency.cs index 19c8a8a87..5b8655505 100644 --- a/SysML2.NET/Core/AutoGenDto/IDependency.cs +++ b/SysML2.NET/Core/AutoGenDto/IDependency.cs @@ -34,9 +34,8 @@ namespace SysML2.NET.Core.DTO.Root.Dependencies /// /// A Dependency is a Relationship that indicates that one or more client Elements require one more /// supplier Elements for their complete specification. In general, this means that a change to one of - /// the supplier Elements may necessitate a change to, or re-specification of, the client Elements. - /// Note that a Dependency is entirely a model-level Relationship, without - /// instance-level semantics. + /// the supplier Elements may necessitate a change to, or re-specification of, the client Elements.Note + /// that a Dependency is entirely a model-level Relationship, without instance-level semantics. /// [Class(xmiId: "_19_0_2_12e503d9_1594006219028_628649_74", isAbstract: false, isFinalSpecialization: false, isActive: false)] [GeneratedCode("SysML2.NET", "latest")] diff --git a/SysML2.NET/Core/AutoGenDto/IEventOccurrenceUsage.cs b/SysML2.NET/Core/AutoGenDto/IEventOccurrenceUsage.cs index 97125d758..ab9e6b8de 100644 --- a/SysML2.NET/Core/AutoGenDto/IEventOccurrenceUsage.cs +++ b/SysML2.NET/Core/AutoGenDto/IEventOccurrenceUsage.cs @@ -36,9 +36,9 @@ namespace SysML2.NET.Core.DTO.Systems.Occurrences /// An EventOccurrenceUsage is an OccurrenceUsage that represents another OccurrenceUsage occurring as a /// suboccurrence of the containing occurrence of the EventOccurrenceUsage. Unless it is the /// EventOccurrenceUsage itself, the referenced OccurrenceUsage is related to the EventOccurrenceUsage - /// by a ReferenceSubsetting Relationship. If the EventOccurrenceUsage is owned - /// by an OccurrenceDefinition or OccurrenceUsage, then it also subsets the timeEnclosedOccurrences - /// property of the Class Occurrence from the Kernel Semantic Library model Occurrences. + /// by a ReferenceSubsetting Relationship.If the EventOccurrenceUsage is owned by an + /// OccurrenceDefinition or OccurrenceUsage, then it also subsets the timeEnclosedOccurrences property + /// of the Class Occurrence from the Kernel Semantic Library model Occurrences. /// [Class(xmiId: "_19_0_4_12e503d9_1622831611763_442921_132", isAbstract: false, isFinalSpecialization: false, isActive: false)] [GeneratedCode("SysML2.NET", "latest")] diff --git a/SysML2.NET/Core/AutoGenDto/IFeature.cs b/SysML2.NET/Core/AutoGenDto/IFeature.cs index 7b4c99c33..289f204f8 100644 --- a/SysML2.NET/Core/AutoGenDto/IFeature.cs +++ b/SysML2.NET/Core/AutoGenDto/IFeature.cs @@ -36,19 +36,18 @@ namespace SysML2.NET.Core.DTO.Core.Features /// A Feature is a Type that classifies relations between multiple things (in the universe). The domain /// of the relation is the intersection of the featuringTypes of the Feature. (The domain of a Feature /// with no featuringTyps is implicitly the most general Type Base::Anything from the Kernel Semantic - /// Library.) The co-domain of the relation is the intersection of the types of the Feature. - /// In the simplest cases, the featuringTypes and types are Classifiers and the Feature - /// relates two things, one from the domain and one from the range. Examples include cars paired with - /// wheels, people paired with other people, and cars paired with numbers representing the car length. - /// Since Features are Types, their featuringTypes and types can be Features. In - /// this case, the Feature effectively classifies relations between relations, which can be interpreted - /// as the sequence of things related by the domain Feature concatenated with the sequence of things - /// related by the co-domain Feature. The values of a Feature for a given - /// instance of its domain are all the instances of its co-domain that are related to that domain - /// instance by the Feature. The values of a Feature with chainingFeatures are the same as values of the - /// last Feature in the chain, which can be found by starting with values of the first Feature, then - /// using those values as domain instances to obtain valus of the second Feature, and so on, to values - /// of the last Feature. + /// Library.) The co-domain of the relation is the intersection of the types of the Feature.In the + /// simplest cases, the featuringTypes and types are Classifiers and the Feature relates two things, one + /// from the domain and one from the range. Examples include cars paired with wheels, people paired with + /// other people, and cars paired with numbers representing the car length.Since Features are Types, + /// their featuringTypes and types can be Features. In this case, the Feature effectively classifies + /// relations between relations, which can be interpreted as the sequence of things related by the + /// domain Feature concatenated with the sequence of things related by the co-domain Feature.The values + /// of a Feature for a given instance of its domain are all the instances of its co-domain that are + /// related to that domain instance by the Feature. The values of a Feature with chainingFeatures are + /// the same as values of the last Feature in the chain, which can be found by starting with values of + /// the first Feature, then using those values as domain instances to obtain valus of the second + /// Feature, and so on, to values of the last Feature. /// [Class(xmiId: "_18_5_3_12e503d9_1533160651684_893483_42160", isAbstract: false, isFinalSpecialization: false, isActive: false)] [GeneratedCode("SysML2.NET", "latest")] diff --git a/SysML2.NET/Core/AutoGenDto/IFeatureValue.cs b/SysML2.NET/Core/AutoGenDto/IFeatureValue.cs index 8444278af..9b342f3fb 100644 --- a/SysML2.NET/Core/AutoGenDto/IFeatureValue.cs +++ b/SysML2.NET/Core/AutoGenDto/IFeatureValue.cs @@ -36,14 +36,13 @@ namespace SysML2.NET.Core.DTO.Kernel.FeatureValues /// A FeatureValue is a Membership that identifies a particular member Expression that provides the /// value of the Feature that owns the FeatureValue. The value is specified as either a bound value or /// an initial value, and as either a concrete or default value. A Feature can have at most one - /// FeatureValue. The result of the value Expression is bound to the - /// featureWithValue using a BindingConnector. If isInitial = false, then the featuringType of the - /// BindingConnector is the same as the featuringType of the featureWithValue. If isInitial = true, then - /// the featuringType of the BindingConnector is restricted to its startShot. If - /// isDefault = false, then the above semantics of the FeatureValue are realized for the given - /// featureWithValue. Otherwise, the semantics are realized for any individual of the featuringType of - /// the featureWithValue, unless another value is explicitly given for the featureWithValue for that - /// individual. + /// FeatureValue.The result of the value Expression is bound to the featureWithValue using a + /// BindingConnector. If isInitial = false, then the featuringType of the BindingConnector is the same + /// as the featuringType of the featureWithValue. If isInitial = true, then the featuringType of the + /// BindingConnector is restricted to its startShot.If isDefault = false, then the above semantics of + /// the FeatureValue are realized for the given featureWithValue. Otherwise, the semantics are realized + /// for any individual of the featuringType of the featureWithValue, unless another value is explicitly + /// given for the featureWithValue for that individual. /// [Class(xmiId: "_18_5_3_12e503d9_1543180279304_499907_20659", isAbstract: false, isFinalSpecialization: false, isActive: false)] [GeneratedCode("SysML2.NET", "latest")] diff --git a/SysML2.NET/Core/AutoGenDto/IFunction.cs b/SysML2.NET/Core/AutoGenDto/IFunction.cs index 3d495ada1..fa9cd3ac6 100644 --- a/SysML2.NET/Core/AutoGenDto/IFunction.cs +++ b/SysML2.NET/Core/AutoGenDto/IFunction.cs @@ -50,9 +50,9 @@ public partial interface IFunction : IBehavior /// /// Whether this Function can be used as the function of a model-level evaluable InvocationExpression. /// Certain Functions from the Kernel Functions Library are considered to have isModelLevelEvaluable = - /// true. For all other Functions it is false. Note: See the - /// specification of the KerML concrete syntax notation for Expressions for an identification of which - /// library Functions are model-level evaluable. + /// true. For all other Functions it is false.Note: See the specification of the KerML + /// concrete syntax notation for Expressions for an identification of which library Functions are + /// model-level evaluable. /// [Property(xmiId: "_19_0_4_12e503d9_1617395221463_139517_26381", aggregation: AggregationKind.None, lowerValue: 1, upperValue: 1, isOrdered: false, isReadOnly: false, isDerived: true, isDerivedUnion: false, isUnique: true, defaultValue: null)] bool isModelLevelEvaluable { get; } diff --git a/SysML2.NET/Core/AutoGenDto/IInstantiationExpression.cs b/SysML2.NET/Core/AutoGenDto/IInstantiationExpression.cs index 465ae87b6..1e1753ac8 100644 --- a/SysML2.NET/Core/AutoGenDto/IInstantiationExpression.cs +++ b/SysML2.NET/Core/AutoGenDto/IInstantiationExpression.cs @@ -34,9 +34,8 @@ namespace SysML2.NET.Core.DTO.Kernel.Expressions /// /// An InstantiationExpression is an Expression that instantiates its instantiatedType, binding some or - /// all of the features of that Type to the results of its arguments. - /// InstantiationExpression is abstract, with concrete subclasses InvocationExpression and - /// ConstructorExpression. + /// all of the features of that Type to the results of its arguments.InstantiationExpression is + /// abstract, with concrete subclasses InvocationExpression and ConstructorExpression. /// [Class(xmiId: "_2022x_2_12e503d9_1739136879941_579104_183", isAbstract: true, isFinalSpecialization: false, isActive: false)] [GeneratedCode("SysML2.NET", "latest")] @@ -45,8 +44,8 @@ public partial interface IInstantiationExpression : IExpression /// /// The Expressions whose results are bound to features of the instantiatedType. The arguments are /// ordered consistent with the order of the features, though they may not be one-to-one with all the - /// features. Note. The derivation of argument is given in - /// the concrete subclasses of InstantiationExpression. + /// features.Note. The derivation of argument is given in the concrete subclasses of + /// InstantiationExpression. /// [Property(xmiId: "_2022x_2_12e503d9_1739134437590_328753_108", aggregation: AggregationKind.None, lowerValue: 0, upperValue: int.MaxValue, isOrdered: true, isReadOnly: false, isDerived: true, isDerivedUnion: false, isUnique: true, defaultValue: null)] List argument { get; } diff --git a/SysML2.NET/Core/AutoGenDto/IInteraction.cs b/SysML2.NET/Core/AutoGenDto/IInteraction.cs index 396d67c51..a2f096ca8 100644 --- a/SysML2.NET/Core/AutoGenDto/IInteraction.cs +++ b/SysML2.NET/Core/AutoGenDto/IInteraction.cs @@ -38,7 +38,7 @@ namespace SysML2.NET.Core.DTO.Kernel.Interactions /// [Class(xmiId: "_18_5_3_b9102da_1536782424772_574530_21292", isAbstract: false, isFinalSpecialization: false, isActive: false)] [GeneratedCode("SysML2.NET", "latest")] - public partial interface IInteraction : IAssociation, IBehavior + public partial interface IInteraction : IBehavior, IAssociation { } } diff --git a/SysML2.NET/Core/AutoGenDto/IItemUsage.cs b/SysML2.NET/Core/AutoGenDto/IItemUsage.cs index b778bd7f2..b49b87cc1 100644 --- a/SysML2.NET/Core/AutoGenDto/IItemUsage.cs +++ b/SysML2.NET/Core/AutoGenDto/IItemUsage.cs @@ -34,9 +34,9 @@ namespace SysML2.NET.Core.DTO.Systems.Items using SysML2.NET.Decorators; /// - /// An ItemUsage is a ItemUsage whose definition is a Structure. Nominally, if the definition is an - /// ItemDefinition, an ItemUsage is a ItemUsage of that ItemDefinition within a system. However, other - /// kinds of Kernel Structures are also allowed, to permit use of Structures from the Kernel Model + /// An ItemUsage is an OccurrenceUsage whose definition is a Structure. Nominally, if the definition is + /// an ItemDefinition, an ItemUsage is a ItemUsage of that ItemDefinition within a system. However, + /// other kinds of Kernel Structures are also allowed, to permit use of Structures from the Kernel Model /// Libraries. /// [Class(xmiId: "_18_5_3_12e503d9_1565480460114_846184_24270", isAbstract: false, isFinalSpecialization: false, isActive: false)] diff --git a/SysML2.NET/Core/AutoGenDto/IMembership.cs b/SysML2.NET/Core/AutoGenDto/IMembership.cs index f81213e93..6bbba9da4 100644 --- a/SysML2.NET/Core/AutoGenDto/IMembership.cs +++ b/SysML2.NET/Core/AutoGenDto/IMembership.cs @@ -36,11 +36,10 @@ namespace SysML2.NET.Core.DTO.Root.Namespaces /// A Membership is a Relationship between a Namespace and an Element that indicates the Element is a /// member of (i.e., is contained in) the Namespace. Any memberNames specify how the memberElement is /// identified in the Namespace and the visibility specifies whether or not the memberElement is - /// publicly visible from outside the Namespace. If a Membership is an - /// OwningMembership, then it owns its memberElement, which becomes an ownedMember of the - /// membershipOwningNamespace. Otherwise, the memberNames of a Membership are effectively aliases within - /// the membershipOwningNamespace for an Element with a separate OwningMembership in the same or a - /// different Namespace. + /// publicly visible from outside the Namespace.If a Membership is an OwningMembership, then it owns its + /// memberElement, which becomes an ownedMember of the membershipOwningNamespace. Otherwise, the + /// memberNames of a Membership are effectively aliases within the membershipOwningNamespace for an + /// Element with a separate OwningMembership in the same or a different Namespace. /// [Class(xmiId: "_18_5_3_12e503d9_1533160651680_888716_42152", isAbstract: false, isFinalSpecialization: false, isActive: false)] [GeneratedCode("SysML2.NET", "latest")] diff --git a/SysML2.NET/Core/AutoGenDto/IMultiplicity.cs b/SysML2.NET/Core/AutoGenDto/IMultiplicity.cs index ac507d103..577994e4a 100644 --- a/SysML2.NET/Core/AutoGenDto/IMultiplicity.cs +++ b/SysML2.NET/Core/AutoGenDto/IMultiplicity.cs @@ -35,16 +35,15 @@ namespace SysML2.NET.Core.DTO.Core.Types /// /// A Multiplicity is a Feature whose co-domain is a set of natural numbers giving the allowed /// cardinalities of each typeWithMultiplicity. The cardinality of a Type is defined as follows, - /// depending on whether the Type is a Classifier or Feature.
    - ///
  • Classifier – The number of basic instances of the Classifier, that is, those instances - /// representing things, which are not instances of any subtypes of the Classifier that are Features. - ///
  • Features – The number of instances with the same featuring instances. In the - /// case of a Feature with a Classifier as its featuringType, this is the number of values of Feature - /// for each basic instance of the Classifier. Note that, for non-unique Features, all duplicate values - /// are included in this count.
Multiplicity - /// co-domains (in models) can be specified by Expression that might vary in their results. If the - /// typeWithMultiplicity is a Classifier, the domain of the Multiplicity shall be Base::Anything. If - /// the typeWithMultiplicity is a Feature, the Multiplicity shall have the same domain as the + /// depending on whether the Type is a Classifier or Feature.
  • Classifier – The number of basic + /// instances of the Classifier, that is, those instances representing things, which are not instances + /// of any subtypes of the Classifier that are Features.
  • Features – The number of instances with the + /// same featuring instances. In the case of a Feature with a Classifier as its featuringType, this is + /// the number of values of Feature for each basic instance of the Classifier. Note that, for non-unique + /// Features, all duplicate values are included in this count.
Multiplicity co-domains (in + /// models) can be specified by Expression that might vary in their results. If the typeWithMultiplicity + /// is a Classifier, the domain of the Multiplicity shall be Base::Anything. If the + /// typeWithMultiplicity is a Feature, the Multiplicity shall have the same domain as the /// typeWithMultiplicity. ///
[Class(xmiId: "_19_0_2_12e503d9_1573083797505_495205_3879", isAbstract: false, isFinalSpecialization: false, isActive: false)] diff --git a/SysML2.NET/Core/AutoGenDto/INamespace.cs b/SysML2.NET/Core/AutoGenDto/INamespace.cs index 8930ccffe..2cd86f4db 100644 --- a/SysML2.NET/Core/AutoGenDto/INamespace.cs +++ b/SysML2.NET/Core/AutoGenDto/INamespace.cs @@ -34,14 +34,13 @@ namespace SysML2.NET.Core.DTO.Root.Namespaces /// /// A Namespace is an Element that contains other Elements, known as its members, via Membership /// Relationships with those Elements. The members of a Namespace may be owned by the Namespace, aliased - /// in the Namespace, or imported into the Namespace via Import Relationships. A - /// Namespace can provide names for its members via the memberNames and memberShortNames specified by - /// the Memberships in the Namespace. If a Membership specifies a memberName and/or memberShortName, - /// then those are names of the corresponding memberElement relative to the Namespace. For an - /// OwningMembership, the ownedMemberName and ownedMemberShortName are given by the Element name and - /// shortName. Note that the same Element may be the memberElement of multiple Memberships in a - /// Namespace (though it may be owned at most once), each of which may define a separate alias for the - /// Element relative to the Namespace. + /// in the Namespace, or imported into the Namespace via Import Relationships.A Namespace can provide + /// names for its members via the memberNames and memberShortNames specified by the Memberships in the + /// Namespace. If a Membership specifies a memberName and/or memberShortName, then those are names of + /// the corresponding memberElement relative to the Namespace. For an OwningMembership, the + /// ownedMemberName and ownedMemberShortName are given by the Element name and shortName. Note that the + /// same Element may be the memberElement of multiple Memberships in a Namespace (though it may be owned + /// at most once), each of which may define a separate alias for the Element relative to the Namespace. /// [Class(xmiId: "_18_5_3_12e503d9_1533160651694_110063_42176", isAbstract: false, isFinalSpecialization: false, isActive: false)] [GeneratedCode("SysML2.NET", "latest")] diff --git a/SysML2.NET/Core/AutoGenDto/IPartUsage.cs b/SysML2.NET/Core/AutoGenDto/IPartUsage.cs index 68fd5e6ed..8db82ed5b 100644 --- a/SysML2.NET/Core/AutoGenDto/IPartUsage.cs +++ b/SysML2.NET/Core/AutoGenDto/IPartUsage.cs @@ -35,8 +35,8 @@ namespace SysML2.NET.Core.DTO.Systems.Parts /// /// A PartUsage is a usage of a PartDefinition to represent a system or a part of a system. At least one - /// of the itemDefinitions of the PartUsage must be a PartDefinition. A PartUsage - /// must subset, directly or indirectly, the base PartUsage parts from the Systems Model Library. + /// of the itemDefinitions of the PartUsage must be a PartDefinition.A PartUsage must subset, directly + /// or indirectly, the base PartUsage parts from the Systems Model Library. /// [Class(xmiId: "_18_5_3_12e503d9_1565471239590_312157_20701", isAbstract: false, isFinalSpecialization: false, isActive: false)] [GeneratedCode("SysML2.NET", "latest")] diff --git a/SysML2.NET/Core/AutoGenDto/IPortDefinition.cs b/SysML2.NET/Core/AutoGenDto/IPortDefinition.cs index c66d4742a..b73aad3a9 100644 --- a/SysML2.NET/Core/AutoGenDto/IPortDefinition.cs +++ b/SysML2.NET/Core/AutoGenDto/IPortDefinition.cs @@ -42,7 +42,7 @@ namespace SysML2.NET.Core.DTO.Systems.Ports public partial interface IPortDefinition : IOccurrenceDefinition, IStructure { /// - /// The <> that is conjugate to this PortDefinition. + /// The ConjugatedPortDefinition that is conjugate to this PortDefinition. /// [Property(xmiId: "_19_0_2_12e503d9_1575484364015_206236_989", aggregation: AggregationKind.None, lowerValue: 0, upperValue: 1, isOrdered: false, isReadOnly: false, isDerived: true, isDerivedUnion: false, isUnique: true, defaultValue: null)] [SubsettedProperty(propertyName: "_18_5_3_12e503d9_1533160674979_259543_43268")] diff --git a/SysML2.NET/Core/AutoGenDto/IReferenceSubsetting.cs b/SysML2.NET/Core/AutoGenDto/IReferenceSubsetting.cs index 1252c8e81..54cb80ba3 100644 --- a/SysML2.NET/Core/AutoGenDto/IReferenceSubsetting.cs +++ b/SysML2.NET/Core/AutoGenDto/IReferenceSubsetting.cs @@ -35,8 +35,8 @@ namespace SysML2.NET.Core.DTO.Core.Features /// distinguished from other Features subsetted by the referencingFeature. ReferenceSubsetting has the /// same semantics as Subsetting, but the referencedFeature may have a special purpose relative to the /// referencingFeature. For instance, ReferenceSubsetting is used to identify the relatedFeatures of a - /// Connector. ReferenceSubsetting is always an ownedRelationship of its - /// referencingFeature. A Feature can have at most one ownedReferenceSubsetting. + /// Connector.ReferenceSubsetting is always an ownedRelationship of its referencingFeature. A Feature + /// can have at most one ownedReferenceSubsetting. /// [Class(xmiId: "_19_0_4_12e503d9_1661554793960_500657_60", isAbstract: false, isFinalSpecialization: false, isActive: false)] [GeneratedCode("SysML2.NET", "latest")] diff --git a/SysML2.NET/Core/AutoGenDto/IRelationship.cs b/SysML2.NET/Core/AutoGenDto/IRelationship.cs index 70f2dcdf5..5db402593 100644 --- a/SysML2.NET/Core/AutoGenDto/IRelationship.cs +++ b/SysML2.NET/Core/AutoGenDto/IRelationship.cs @@ -35,14 +35,14 @@ namespace SysML2.NET.Core.DTO.Root.Elements /// in which case those ownedRelatedElements will be deleted from a model if their owningRelationship /// is. A Relationship may also be owned by another Element, in which case the ownedRelatedElements of /// the Relationship are also considered to be transitively owned by the owningRelatedElement of the - /// Relationship. The relatedElements of a Relationship are divided into source - /// and target Elements. The Relationship is considered to be directed from the source to the target - /// Elements. An undirected Relationship may have either all source or all target Elements. - /// A "relationship Element" in the abstract syntax is generically any Element that - /// is an instance of either Relationship or a direct or indirect specialization of Relationship. Any - /// other kind of Element is a "non-relationship Element". It is a convention of that - /// non-relationship Elements are only related via reified relationship Elements. Any meta-associations - /// directly between non-relationship Elements must be derived from underlying reified Relationship. + /// Relationship.The relatedElements of a Relationship are divided into source and target Elements. The + /// Relationship is considered to be directed from the source to the target Elements. An undirected + /// Relationship may have either all source or all target Elements.A "relationship Element" in + /// the abstract syntax is generically any Element that is an instance of either Relationship or a + /// direct or indirect specialization of Relationship. Any other kind of Element is a + /// "non-relationship Element". It is a convention of that non-relationship Elements are only + /// related via reified relationship Elements. Any meta-associations directly between non-relationship + /// Elements must be derived from underlying reified Relationship. /// [Class(xmiId: "_18_5_3_12e503d9_1533160651700_869737_42192", isAbstract: true, isFinalSpecialization: false, isActive: false)] [GeneratedCode("SysML2.NET", "latest")] diff --git a/SysML2.NET/Core/AutoGenDto/IRequirementDefinition.cs b/SysML2.NET/Core/AutoGenDto/IRequirementDefinition.cs index 566f848c0..4faec3831 100644 --- a/SysML2.NET/Core/AutoGenDto/IRequirementDefinition.cs +++ b/SysML2.NET/Core/AutoGenDto/IRequirementDefinition.cs @@ -83,7 +83,7 @@ public partial interface IRequirementDefinition : IConstraintDefinition List requiredConstraint { get; } /// - /// The parameters of this RequirementDefinition that represent stakeholders for th requirement. + /// The parameters of this RequirementDefinition that represent stakeholders for the requirement. /// [Property(xmiId: "_19_0_4_12e503d9_1624033010374_29375_40166", aggregation: AggregationKind.None, lowerValue: 0, upperValue: int.MaxValue, isOrdered: true, isReadOnly: false, isDerived: true, isDerivedUnion: false, isUnique: true, defaultValue: null)] [SubsettedProperty(propertyName: "_18_5_3_12e503d9_1543948010065_362066_20413")] diff --git a/SysML2.NET/Core/AutoGenDto/ISendActionUsage.cs b/SysML2.NET/Core/AutoGenDto/ISendActionUsage.cs index 492c0ef57..bb639b5f5 100644 --- a/SysML2.NET/Core/AutoGenDto/ISendActionUsage.cs +++ b/SysML2.NET/Core/AutoGenDto/ISendActionUsage.cs @@ -47,8 +47,8 @@ public partial interface ISendActionUsage : IActionUsage /// /// An Expression whose result is bound to the payload input parameter of this SendActionUsage. /// - [Property(xmiId: "_19_0_4_12e503d9_1612814399422_336683_143", aggregation: AggregationKind.None, lowerValue: 1, upperValue: 1, isOrdered: false, isReadOnly: false, isDerived: true, isDerivedUnion: false, isUnique: true, defaultValue: null)] - Guid payloadArgument { get; } + [Property(xmiId: "_19_0_4_12e503d9_1612814399422_336683_143", aggregation: AggregationKind.None, lowerValue: 0, upperValue: 1, isOrdered: false, isReadOnly: false, isDerived: true, isDerivedUnion: false, isUnique: true, defaultValue: null)] + Guid? payloadArgument { get; } /// /// An Expression whose result is bound to the receiver input parameter of this SendActionUsage. diff --git a/SysML2.NET/Core/AutoGenDto/IStateDefinition.cs b/SysML2.NET/Core/AutoGenDto/IStateDefinition.cs index 8830af923..b883c26a3 100644 --- a/SysML2.NET/Core/AutoGenDto/IStateDefinition.cs +++ b/SysML2.NET/Core/AutoGenDto/IStateDefinition.cs @@ -33,9 +33,9 @@ namespace SysML2.NET.Core.DTO.Systems.States /// /// A StateDefinition is the Definition of the Behavior of a system or part of a system in a certain - /// state condition. A StateDefinition may be related to up to three of its - /// ownedFeatures by StateBehaviorMembership Relationships, all of different kinds, corresponding to the - /// entry, do and exit actions of the StateDefinition. + /// state condition.A StateDefinition may be related to up to three of its ownedFeatures by + /// StateBehaviorMembership Relationships, all of different kinds, corresponding to the entry, do and + /// exit actions of the StateDefinition. /// [Class(xmiId: "_19_0_2_12e503d9_1575587534200_898246_600", isAbstract: false, isFinalSpecialization: false, isActive: false)] [GeneratedCode("SysML2.NET", "latest")] diff --git a/SysML2.NET/Core/AutoGenDto/IStateUsage.cs b/SysML2.NET/Core/AutoGenDto/IStateUsage.cs index d3b57478e..c70981060 100644 --- a/SysML2.NET/Core/AutoGenDto/IStateUsage.cs +++ b/SysML2.NET/Core/AutoGenDto/IStateUsage.cs @@ -35,10 +35,9 @@ namespace SysML2.NET.Core.DTO.Systems.States /// /// A StateUsage is an ActionUsage that is nominally the Usage of a StateDefinition. However, other - /// kinds of kernel Behaviors are also allowed as types, to permit use of Behaviors - /// A StateUsage may be related to up to three of its ownedFeatures by StateSubactionMembership - /// Relationships, all of different kinds, corresponding to the entry, do and exit actions of the - /// StateUsage. + /// kinds of kernel Behaviors are also allowed as types, to permit use of BehaviorsA StateUsage may be + /// related to up to three of its ownedFeatures by StateSubactionMembership Relationships, all of + /// different kinds, corresponding to the entry, do and exit actions of the StateUsage. /// [Class(xmiId: "_19_0_2_12e503d9_1575587557729_586912_651", isAbstract: false, isFinalSpecialization: false, isActive: false)] [GeneratedCode("SysML2.NET", "latest")] diff --git a/SysML2.NET/Core/AutoGenDto/ITextualRepresentation.cs b/SysML2.NET/Core/AutoGenDto/ITextualRepresentation.cs index 2f1ab3278..e97ff8dc7 100644 --- a/SysML2.NET/Core/AutoGenDto/ITextualRepresentation.cs +++ b/SysML2.NET/Core/AutoGenDto/ITextualRepresentation.cs @@ -35,30 +35,26 @@ namespace SysML2.NET.Core.DTO.Root.Annotations /// given language. The representedElement must be the owner of the TextualRepresentation. The named /// language can be a natural language, in which case the body is an informal representation, or an /// artificial language, in which case the body is expected to be a formal, machine-parsable - /// representation. If the named language of a TextualRepresentation is - /// machine-parsable, then the body text should be legal input text as defined for that language. The - /// interpretation of the named language string shall be case insensitive. The following language names - /// are defined to correspond to the given standard languages: - /// - /// - /// - /// - ///
kerml Kernel Modeling Language
ocl Object Constraint Language
alfAction Language for fUML
Other - /// specifications may define specific language strings, other than those shown above, to be used to - /// indicate the use of languages from those specifications in KerML TextualRepresentation. - /// If the language of a TextualRepresentation is "kerml", then the body text shall - /// be a legal representation of the representedElement in the KerML textual concrete syntax. A - /// conforming tool can use such a TextualRepresentation Annotation to record the original KerML - /// concrete syntax text from which an Element was parsed. In this case, it is a tool responsibility to - /// ensure that the body of the TextualRepresentation remains correct (or the Annotation is removed) if - /// the annotated Element changes other than by re-parsing the body text. An - /// Element with a TextualRepresentation in a language other than KerML is essentially a semantically - /// "opaque" Element specified in the other language. However, a conforming KerML tool may - /// interpret such an element consistently with the specification of the named language. + /// representation.If the named language of a TextualRepresentation is machine-parsable, then the body + /// text should be legal input text as defined for that language. The interpretation of the named + /// language string shall be case insensitive. The following language names are defined to correspond to + /// the given standard languages:
kerml Kernel Modeling Language
ocl Object Constraint + /// Language
alf Action Language for fUML
Other specifications may + /// define specific language strings, other than those shown above, to be used to indicate the use of + /// languages from those specifications in KerML TextualRepresentation.If the language of a + /// TextualRepresentation is "kerml", then the body text shall be a legal representation of + /// the representedElement in the KerML textual concrete syntax. A conforming tool can use such a + /// TextualRepresentation Annotation to record the original KerML concrete syntax text from which an + /// Element was parsed. In this case, it is a tool responsibility to ensure that the body of the + /// TextualRepresentation remains correct (or the Annotation is removed) if the annotated Element + /// changes other than by re-parsing the body text.An Element with a TextualRepresentation in a language + /// other than KerML is essentially a semantically "opaque" Element specified in the other + /// language. However, a conforming KerML tool may interpret such an element consistently with the + /// specification of the named language. ///
[Class(xmiId: "_19_0_2_12e503d9_1594152214531_455349_2448", isAbstract: false, isFinalSpecialization: false, isActive: false)] [GeneratedCode("SysML2.NET", "latest")] diff --git a/SysML2.NET/Core/AutoGenDto/ITransitionUsage.cs b/SysML2.NET/Core/AutoGenDto/ITransitionUsage.cs index d2b9be986..413381328 100644 --- a/SysML2.NET/Core/AutoGenDto/ITransitionUsage.cs +++ b/SysML2.NET/Core/AutoGenDto/ITransitionUsage.cs @@ -37,9 +37,9 @@ namespace SysML2.NET.Core.DTO.Systems.States /// A TransitionUsage is an ActionUsage representing a triggered transition between ActionUsages or /// StateUsages. When triggered by a triggerAction, when its guardExpression is true, the /// TransitionUsage asserts that its source is exited, then its effectAction (if any) is performed, and - /// then its target is entered. A TransitionUsage can be related to some of its - /// ownedFeatures using TransitionFeatureMembership Relationships, corresponding to the triggerAction, - /// guardExpression and effectAction of the TransitionUsage. + /// then its target is entered.A TransitionUsage can be related to some of its ownedFeatures using + /// TransitionFeatureMembership Relationships, corresponding to the triggerAction, guardExpression and + /// effectAction of the TransitionUsage. /// [Class(xmiId: "_19_0_2_12e503d9_1575672078353_626298_450", isAbstract: false, isFinalSpecialization: false, isActive: false)] [GeneratedCode("SysML2.NET", "latest")] diff --git a/SysML2.NET/Core/AutoGenDto/IType.cs b/SysML2.NET/Core/AutoGenDto/IType.cs index 48eda47df..f2768631e 100644 --- a/SysML2.NET/Core/AutoGenDto/IType.cs +++ b/SysML2.NET/Core/AutoGenDto/IType.cs @@ -130,11 +130,11 @@ public partial interface IType : INamespace /// /// Whether all things that meet the classification conditions of this Type must be classified by the - /// Type. (A Type gives conditions that must be met by whatever it - /// classifies, but when isSufficient is false, things may meet those conditions but still not be - /// classified by the Type. For example, a Type Car that is not sufficient could require everything it - /// classifies to have four wheels, but not all four wheeled things would classify as cars. However, if - /// the Type Car were sufficient, it would classify all four-wheeled things.) + /// Type.(A Type gives conditions that must be met by whatever it classifies, but when isSufficient + /// is false, things may meet those conditions but still not be classified by the Type. For example, a + /// Type Car that is not sufficient could require everything it classifies to have four wheels, but not + /// all four wheeled things would classify as cars. However, if the Type Car were sufficient, it would + /// classify all four-wheeled things.) /// [Property(xmiId: "_18_5_3_b9102da_1564072709069_937523_30797", aggregation: AggregationKind.None, lowerValue: 1, upperValue: 1, isOrdered: false, isReadOnly: false, isDerived: false, isDerivedUnion: false, isUnique: true, defaultValue: "false")] bool IsSufficient { get; set; } diff --git a/SysML2.NET/Core/AutoGenDto/IUsage.cs b/SysML2.NET/Core/AutoGenDto/IUsage.cs index 9b6c801ca..a80c2144a 100644 --- a/SysML2.NET/Core/AutoGenDto/IUsage.cs +++ b/SysML2.NET/Core/AutoGenDto/IUsage.cs @@ -33,14 +33,13 @@ namespace SysML2.NET.Core.DTO.Systems.DefinitionAndUsage using SysML2.NET.Decorators; /// - /// A Usage is a usage of a Definition. A Usage may have nestedUsages that model - /// features that apply in the context of the owningUsage. A Usage may also have Definitions nested in - /// it, but this has no semantic significance, other than the nested scoping resulting from the Usage - /// being considered as a Namespace for any nested Definitions. However, if a - /// Usage has isVariation = true, then it represents a variation point Usage. In this case, all of its - /// members must be variant Usages, related to the Usage by VariantMembership Relationships. Rather than - /// being features of the Usage, variant Usages model different concrete alternatives that can be chosen - /// to fill in for the variation point Usage. + /// A Usage is a usage of a Definition.A Usage may have nestedUsages that model features that apply in + /// the context of the owningUsage. A Usage may also have Definitions nested in it, but this has no + /// semantic significance, other than the nested scoping resulting from the Usage being considered as a + /// Namespace for any nested Definitions.However, if a Usage has isVariation = true, then it represents + /// a variation point Usage. In this case, all of its members must be variant Usages, related to the + /// Usage by VariantMembership Relationships. Rather than being features of the Usage, variant Usages + /// model different concrete alternatives that can be chosen to fill in for the variation point Usage. /// [Class(xmiId: "_18_5_3_12e503d9_1565469997820_598571_19982", isAbstract: false, isFinalSpecialization: false, isActive: false)] [GeneratedCode("SysML2.NET", "latest")] @@ -79,9 +78,9 @@ public partial interface IUsage : IFeature /// Whether this Usage may be time varying (that is, whether it is featured by the snapshots of its /// owningType, rather than being featured by the owningType itself). However, if isConstant is also /// true, then the value of the Usage is nevertheless constant over the entire duration of an instance - /// of its owningType (that is, it has the same value on all snapshots). The - /// property mayTimeVary redefines the KerML property Feature::isVariable, making it derived. The - /// property isConstant is inherited from Feature. + /// of its owningType (that is, it has the same value on all snapshots).The property mayTimeVary + /// redefines the KerML property Feature::isVariable, making it derived. The property isConstant is + /// inherited from Feature. /// [Property(xmiId: "_2022x_2_12e503d9_1737227200362_771035_69", aggregation: AggregationKind.None, lowerValue: 1, upperValue: 1, isOrdered: false, isReadOnly: false, isDerived: true, isDerivedUnion: false, isUnique: true, defaultValue: null)] [RedefinedProperty(propertyName: "_2022x_2_12e503d9_1725998273002_23711_212")] @@ -138,8 +137,8 @@ public partial interface IUsage : IFeature /// /// The ConnectorAsUsages that are nestedUsages of this Usage. Note that this list includes - /// BindingConnectorAsUsages, SuccessionAsUsages, and FlowConnectionUsages because these are - /// ConnectorAsUsages even though they are not ConnectionUsages. + /// BindingConnectorAsUsages, SuccessionAsUsages, and FlowUsages because these are ConnectorAsUsages + /// even though they are not ConnectionUsages. /// [Property(xmiId: "_19_0_2_12e503d9_1591479754895_422988_1242", aggregation: AggregationKind.None, lowerValue: 0, upperValue: int.MaxValue, isOrdered: true, isReadOnly: false, isDerived: true, isDerivedUnion: false, isUnique: true, defaultValue: null)] [SubsettedProperty(propertyName: "_18_5_3_12e503d9_1565472757327_162097_21259")] @@ -181,7 +180,7 @@ public partial interface IUsage : IFeature List nestedItem { get; } /// - /// The MetadataUsages that are nestedUsages of this of this Usage. + /// The MetadataUsages that are ownedMembers of this of this Usage. /// [Property(xmiId: "_19_0_4_12e503d9_1661488589862_120785_2970", aggregation: AggregationKind.None, lowerValue: 0, upperValue: int.MaxValue, isOrdered: true, isReadOnly: false, isDerived: true, isDerivedUnion: false, isUnique: true, defaultValue: null)] [SubsettedProperty(propertyName: "_19_0_2_12e503d9_1591482421103_284620_2978")] diff --git a/SysML2.NET/Core/AutoGenDto/IfActionUsage.cs b/SysML2.NET/Core/AutoGenDto/IfActionUsage.cs index 0a7d844c3..c049313d3 100644 --- a/SysML2.NET/Core/AutoGenDto/IfActionUsage.cs +++ b/SysML2.NET/Core/AutoGenDto/IfActionUsage.cs @@ -404,11 +404,11 @@ public partial class IfActionUsage : IIfActionUsage /// /// Whether all things that meet the classification conditions of this Type must be classified by the - /// Type. (A Type gives conditions that must be met by whatever it - /// classifies, but when isSufficient is false, things may meet those conditions but still not be - /// classified by the Type. For example, a Type Car that is not sufficient could require everything it - /// classifies to have four wheels, but not all four wheeled things would classify as cars. However, if - /// the Type Car were sufficient, it would classify all four-wheeled things.) + /// Type.(A Type gives conditions that must be met by whatever it classifies, but when isSufficient + /// is false, things may meet those conditions but still not be classified by the Type. For example, a + /// Type Car that is not sufficient could require everything it classifies to have four wheels, but not + /// all four wheeled things would classify as cars. However, if the Type Car were sufficient, it would + /// classify all four-wheeled things.) /// [Property(xmiId: "_18_5_3_b9102da_1564072709069_937523_30797", aggregation: AggregationKind.None, lowerValue: 1, upperValue: 1, isOrdered: false, isReadOnly: false, isDerived: false, isDerivedUnion: false, isUnique: true, defaultValue: "false")] [Implements(implementation: "IType.IsSufficient")] @@ -446,9 +446,9 @@ bool Core.Features.IFeature.IsVariable /// Whether this Usage may be time varying (that is, whether it is featured by the snapshots of its /// owningType, rather than being featured by the owningType itself). However, if isConstant is also /// true, then the value of the Usage is nevertheless constant over the entire duration of an instance - /// of its owningType (that is, it has the same value on all snapshots). The - /// property mayTimeVary redefines the KerML property Feature::isVariable, making it derived. The - /// property isConstant is inherited from Feature. + /// of its owningType (that is, it has the same value on all snapshots).The property mayTimeVary + /// redefines the KerML property Feature::isVariable, making it derived. The property isConstant is + /// inherited from Feature. /// [Property(xmiId: "_2022x_2_12e503d9_1737227200362_771035_69", aggregation: AggregationKind.None, lowerValue: 1, upperValue: 1, isOrdered: false, isReadOnly: false, isDerived: true, isDerivedUnion: false, isUnique: true, defaultValue: null)] [RedefinedProperty(propertyName: "_2022x_2_12e503d9_1725998273002_23711_212")] @@ -549,8 +549,8 @@ bool Core.Features.IFeature.IsVariable /// /// The ConnectorAsUsages that are nestedUsages of this Usage. Note that this list includes - /// BindingConnectorAsUsages, SuccessionAsUsages, and FlowConnectionUsages because these are - /// ConnectorAsUsages even though they are not ConnectionUsages. + /// BindingConnectorAsUsages, SuccessionAsUsages, and FlowUsages because these are ConnectorAsUsages + /// even though they are not ConnectionUsages. /// [Property(xmiId: "_19_0_2_12e503d9_1591479754895_422988_1242", aggregation: AggregationKind.None, lowerValue: 0, upperValue: int.MaxValue, isOrdered: true, isReadOnly: false, isDerived: true, isDerivedUnion: false, isUnique: true, defaultValue: null)] [SubsettedProperty(propertyName: "_18_5_3_12e503d9_1565472757327_162097_21259")] @@ -598,7 +598,7 @@ bool Core.Features.IFeature.IsVariable public List nestedItem { get; internal set; } = []; /// - /// The MetadataUsages that are nestedUsages of this of this Usage. + /// The MetadataUsages that are ownedMembers of this of this Usage. /// [Property(xmiId: "_19_0_4_12e503d9_1661488589862_120785_2970", aggregation: AggregationKind.None, lowerValue: 0, upperValue: int.MaxValue, isOrdered: true, isReadOnly: false, isDerived: true, isDerivedUnion: false, isUnique: true, defaultValue: null)] [SubsettedProperty(propertyName: "_19_0_2_12e503d9_1591482421103_284620_2978")] diff --git a/SysML2.NET/Core/AutoGenDto/IncludeUseCaseUsage.cs b/SysML2.NET/Core/AutoGenDto/IncludeUseCaseUsage.cs index e323411cf..8b121d4c4 100644 --- a/SysML2.NET/Core/AutoGenDto/IncludeUseCaseUsage.cs +++ b/SysML2.NET/Core/AutoGenDto/IncludeUseCaseUsage.cs @@ -462,11 +462,11 @@ public partial class IncludeUseCaseUsage : IIncludeUseCaseUsage /// /// Whether all things that meet the classification conditions of this Type must be classified by the - /// Type. (A Type gives conditions that must be met by whatever it - /// classifies, but when isSufficient is false, things may meet those conditions but still not be - /// classified by the Type. For example, a Type Car that is not sufficient could require everything it - /// classifies to have four wheels, but not all four wheeled things would classify as cars. However, if - /// the Type Car were sufficient, it would classify all four-wheeled things.) + /// Type.(A Type gives conditions that must be met by whatever it classifies, but when isSufficient + /// is false, things may meet those conditions but still not be classified by the Type. For example, a + /// Type Car that is not sufficient could require everything it classifies to have four wheels, but not + /// all four wheeled things would classify as cars. However, if the Type Car were sufficient, it would + /// classify all four-wheeled things.) /// [Property(xmiId: "_18_5_3_b9102da_1564072709069_937523_30797", aggregation: AggregationKind.None, lowerValue: 1, upperValue: 1, isOrdered: false, isReadOnly: false, isDerived: false, isDerivedUnion: false, isUnique: true, defaultValue: "false")] [Implements(implementation: "IType.IsSufficient")] @@ -504,9 +504,9 @@ bool Core.Features.IFeature.IsVariable /// Whether this Usage may be time varying (that is, whether it is featured by the snapshots of its /// owningType, rather than being featured by the owningType itself). However, if isConstant is also /// true, then the value of the Usage is nevertheless constant over the entire duration of an instance - /// of its owningType (that is, it has the same value on all snapshots). The - /// property mayTimeVary redefines the KerML property Feature::isVariable, making it derived. The - /// property isConstant is inherited from Feature. + /// of its owningType (that is, it has the same value on all snapshots).The property mayTimeVary + /// redefines the KerML property Feature::isVariable, making it derived. The property isConstant is + /// inherited from Feature. /// [Property(xmiId: "_2022x_2_12e503d9_1737227200362_771035_69", aggregation: AggregationKind.None, lowerValue: 1, upperValue: 1, isOrdered: false, isReadOnly: false, isDerived: true, isDerivedUnion: false, isUnique: true, defaultValue: null)] [RedefinedProperty(propertyName: "_2022x_2_12e503d9_1725998273002_23711_212")] @@ -607,8 +607,8 @@ bool Core.Features.IFeature.IsVariable /// /// The ConnectorAsUsages that are nestedUsages of this Usage. Note that this list includes - /// BindingConnectorAsUsages, SuccessionAsUsages, and FlowConnectionUsages because these are - /// ConnectorAsUsages even though they are not ConnectionUsages. + /// BindingConnectorAsUsages, SuccessionAsUsages, and FlowUsages because these are ConnectorAsUsages + /// even though they are not ConnectionUsages. /// [Property(xmiId: "_19_0_2_12e503d9_1591479754895_422988_1242", aggregation: AggregationKind.None, lowerValue: 0, upperValue: int.MaxValue, isOrdered: true, isReadOnly: false, isDerived: true, isDerivedUnion: false, isUnique: true, defaultValue: null)] [SubsettedProperty(propertyName: "_18_5_3_12e503d9_1565472757327_162097_21259")] @@ -656,7 +656,7 @@ bool Core.Features.IFeature.IsVariable public List nestedItem { get; internal set; } = []; /// - /// The MetadataUsages that are nestedUsages of this of this Usage. + /// The MetadataUsages that are ownedMembers of this of this Usage. /// [Property(xmiId: "_19_0_4_12e503d9_1661488589862_120785_2970", aggregation: AggregationKind.None, lowerValue: 0, upperValue: int.MaxValue, isOrdered: true, isReadOnly: false, isDerived: true, isDerivedUnion: false, isUnique: true, defaultValue: null)] [SubsettedProperty(propertyName: "_19_0_2_12e503d9_1591482421103_284620_2978")] diff --git a/SysML2.NET/Core/AutoGenDto/IndexExpression.cs b/SysML2.NET/Core/AutoGenDto/IndexExpression.cs index 4c8d11194..0757e18fa 100644 --- a/SysML2.NET/Core/AutoGenDto/IndexExpression.cs +++ b/SysML2.NET/Core/AutoGenDto/IndexExpression.cs @@ -56,8 +56,8 @@ public partial class IndexExpression : IIndexExpression /// /// The Expressions whose results are bound to features of the instantiatedType. The arguments are /// ordered consistent with the order of the features, though they may not be one-to-one with all the - /// features. Note. The derivation of argument is given in - /// the concrete subclasses of InstantiationExpression. + /// features.Note. The derivation of argument is given in the concrete subclasses of + /// InstantiationExpression. /// [Property(xmiId: "_2022x_2_12e503d9_1739134437590_328753_108", aggregation: AggregationKind.None, lowerValue: 0, upperValue: int.MaxValue, isOrdered: true, isReadOnly: false, isDerived: true, isDerivedUnion: false, isUnique: true, defaultValue: null)] [Implements(implementation: "IInstantiationExpression.Argument")] @@ -368,11 +368,11 @@ public partial class IndexExpression : IIndexExpression /// /// Whether all things that meet the classification conditions of this Type must be classified by the - /// Type. (A Type gives conditions that must be met by whatever it - /// classifies, but when isSufficient is false, things may meet those conditions but still not be - /// classified by the Type. For example, a Type Car that is not sufficient could require everything it - /// classifies to have four wheels, but not all four wheeled things would classify as cars. However, if - /// the Type Car were sufficient, it would classify all four-wheeled things.) + /// Type.(A Type gives conditions that must be met by whatever it classifies, but when isSufficient + /// is false, things may meet those conditions but still not be classified by the Type. For example, a + /// Type Car that is not sufficient could require everything it classifies to have four wheels, but not + /// all four wheeled things would classify as cars. However, if the Type Car were sufficient, it would + /// classify all four-wheeled things.) /// [Property(xmiId: "_18_5_3_b9102da_1564072709069_937523_30797", aggregation: AggregationKind.None, lowerValue: 1, upperValue: 1, isOrdered: false, isReadOnly: false, isDerived: false, isDerivedUnion: false, isUnique: true, defaultValue: "false")] [Implements(implementation: "IType.IsSufficient")] diff --git a/SysML2.NET/Core/AutoGenDto/Interaction.cs b/SysML2.NET/Core/AutoGenDto/Interaction.cs index d3b5bbbf4..0a0e8b8fd 100644 --- a/SysML2.NET/Core/AutoGenDto/Interaction.cs +++ b/SysML2.NET/Core/AutoGenDto/Interaction.cs @@ -235,11 +235,11 @@ public partial class Interaction : IInteraction /// /// Whether all things that meet the classification conditions of this Type must be classified by the - /// Type. (A Type gives conditions that must be met by whatever it - /// classifies, but when isSufficient is false, things may meet those conditions but still not be - /// classified by the Type. For example, a Type Car that is not sufficient could require everything it - /// classifies to have four wheels, but not all four wheeled things would classify as cars. However, if - /// the Type Car were sufficient, it would classify all four-wheeled things.) + /// Type.(A Type gives conditions that must be met by whatever it classifies, but when isSufficient + /// is false, things may meet those conditions but still not be classified by the Type. For example, a + /// Type Car that is not sufficient could require everything it classifies to have four wheels, but not + /// all four wheeled things would classify as cars. However, if the Type Car were sufficient, it would + /// classify all four-wheeled things.) /// [Property(xmiId: "_18_5_3_b9102da_1564072709069_937523_30797", aggregation: AggregationKind.None, lowerValue: 1, upperValue: 1, isOrdered: false, isReadOnly: false, isDerived: false, isDerivedUnion: false, isUnique: true, defaultValue: "false")] [Implements(implementation: "IType.IsSufficient")] diff --git a/SysML2.NET/Core/AutoGenDto/InterfaceDefinition.cs b/SysML2.NET/Core/AutoGenDto/InterfaceDefinition.cs index 6cc83aea7..2529c3465 100644 --- a/SysML2.NET/Core/AutoGenDto/InterfaceDefinition.cs +++ b/SysML2.NET/Core/AutoGenDto/InterfaceDefinition.cs @@ -274,11 +274,11 @@ public partial class InterfaceDefinition : IInterfaceDefinition /// /// Whether all things that meet the classification conditions of this Type must be classified by the - /// Type. (A Type gives conditions that must be met by whatever it - /// classifies, but when isSufficient is false, things may meet those conditions but still not be - /// classified by the Type. For example, a Type Car that is not sufficient could require everything it - /// classifies to have four wheels, but not all four wheeled things would classify as cars. However, if - /// the Type Car were sufficient, it would classify all four-wheeled things.) + /// Type.(A Type gives conditions that must be met by whatever it classifies, but when isSufficient + /// is false, things may meet those conditions but still not be classified by the Type. For example, a + /// Type Car that is not sufficient could require everything it classifies to have four wheels, but not + /// all four wheeled things would classify as cars. However, if the Type Car were sufficient, it would + /// classify all four-wheeled things.) /// [Property(xmiId: "_18_5_3_b9102da_1564072709069_937523_30797", aggregation: AggregationKind.None, lowerValue: 1, upperValue: 1, isOrdered: false, isReadOnly: false, isDerived: false, isDerivedUnion: false, isUnique: true, defaultValue: "false")] [RedefinedByProperty("IConnectionDefinition.IsSufficient")] @@ -564,7 +564,7 @@ bool Core.Types.IType.IsSufficient public List ownedMembership { get; internal set; } = []; /// - /// The MetadataUsages that are ownedUsages of this Definition. + /// The MetadataUsages that are ownedMembers of this Definition. /// [Property(xmiId: "_19_0_4_12e503d9_1661488358064_457109_2881", aggregation: AggregationKind.None, lowerValue: 0, upperValue: int.MaxValue, isOrdered: true, isReadOnly: false, isDerived: true, isDerivedUnion: false, isUnique: true, defaultValue: null)] [SubsettedProperty(propertyName: "_19_0_2_12e503d9_1591482567975_649284_3005")] diff --git a/SysML2.NET/Core/AutoGenDto/InterfaceUsage.cs b/SysML2.NET/Core/AutoGenDto/InterfaceUsage.cs index 8938ca2e7..ea30ccc01 100644 --- a/SysML2.NET/Core/AutoGenDto/InterfaceUsage.cs +++ b/SysML2.NET/Core/AutoGenDto/InterfaceUsage.cs @@ -425,11 +425,11 @@ public partial class InterfaceUsage : IInterfaceUsage /// /// Whether all things that meet the classification conditions of this Type must be classified by the - /// Type. (A Type gives conditions that must be met by whatever it - /// classifies, but when isSufficient is false, things may meet those conditions but still not be - /// classified by the Type. For example, a Type Car that is not sufficient could require everything it - /// classifies to have four wheels, but not all four wheeled things would classify as cars. However, if - /// the Type Car were sufficient, it would classify all four-wheeled things.) + /// Type.(A Type gives conditions that must be met by whatever it classifies, but when isSufficient + /// is false, things may meet those conditions but still not be classified by the Type. For example, a + /// Type Car that is not sufficient could require everything it classifies to have four wheels, but not + /// all four wheeled things would classify as cars. However, if the Type Car were sufficient, it would + /// classify all four-wheeled things.) /// [Property(xmiId: "_18_5_3_b9102da_1564072709069_937523_30797", aggregation: AggregationKind.None, lowerValue: 1, upperValue: 1, isOrdered: false, isReadOnly: false, isDerived: false, isDerivedUnion: false, isUnique: true, defaultValue: "false")] [Implements(implementation: "IType.IsSufficient")] @@ -477,9 +477,9 @@ bool Core.Features.IFeature.IsVariable /// Whether this Usage may be time varying (that is, whether it is featured by the snapshots of its /// owningType, rather than being featured by the owningType itself). However, if isConstant is also /// true, then the value of the Usage is nevertheless constant over the entire duration of an instance - /// of its owningType (that is, it has the same value on all snapshots). The - /// property mayTimeVary redefines the KerML property Feature::isVariable, making it derived. The - /// property isConstant is inherited from Feature. + /// of its owningType (that is, it has the same value on all snapshots).The property mayTimeVary + /// redefines the KerML property Feature::isVariable, making it derived. The property isConstant is + /// inherited from Feature. /// [Property(xmiId: "_2022x_2_12e503d9_1737227200362_771035_69", aggregation: AggregationKind.None, lowerValue: 1, upperValue: 1, isOrdered: false, isReadOnly: false, isDerived: true, isDerivedUnion: false, isUnique: true, defaultValue: null)] [RedefinedProperty(propertyName: "_2022x_2_12e503d9_1725998273002_23711_212")] @@ -580,8 +580,8 @@ bool Core.Features.IFeature.IsVariable /// /// The ConnectorAsUsages that are nestedUsages of this Usage. Note that this list includes - /// BindingConnectorAsUsages, SuccessionAsUsages, and FlowConnectionUsages because these are - /// ConnectorAsUsages even though they are not ConnectionUsages. + /// BindingConnectorAsUsages, SuccessionAsUsages, and FlowUsages because these are ConnectorAsUsages + /// even though they are not ConnectionUsages. /// [Property(xmiId: "_19_0_2_12e503d9_1591479754895_422988_1242", aggregation: AggregationKind.None, lowerValue: 0, upperValue: int.MaxValue, isOrdered: true, isReadOnly: false, isDerived: true, isDerivedUnion: false, isUnique: true, defaultValue: null)] [SubsettedProperty(propertyName: "_18_5_3_12e503d9_1565472757327_162097_21259")] @@ -629,7 +629,7 @@ bool Core.Features.IFeature.IsVariable public List nestedItem { get; internal set; } = []; /// - /// The MetadataUsages that are nestedUsages of this of this Usage. + /// The MetadataUsages that are ownedMembers of this of this Usage. /// [Property(xmiId: "_19_0_4_12e503d9_1661488589862_120785_2970", aggregation: AggregationKind.None, lowerValue: 0, upperValue: int.MaxValue, isOrdered: true, isReadOnly: false, isDerived: true, isDerivedUnion: false, isUnique: true, defaultValue: null)] [SubsettedProperty(propertyName: "_19_0_2_12e503d9_1591482421103_284620_2978")] diff --git a/SysML2.NET/Core/AutoGenDto/Invariant.cs b/SysML2.NET/Core/AutoGenDto/Invariant.cs index 18e763918..c23ac9b93 100644 --- a/SysML2.NET/Core/AutoGenDto/Invariant.cs +++ b/SysML2.NET/Core/AutoGenDto/Invariant.cs @@ -359,11 +359,11 @@ public partial class Invariant : IInvariant /// /// Whether all things that meet the classification conditions of this Type must be classified by the - /// Type. (A Type gives conditions that must be met by whatever it - /// classifies, but when isSufficient is false, things may meet those conditions but still not be - /// classified by the Type. For example, a Type Car that is not sufficient could require everything it - /// classifies to have four wheels, but not all four wheeled things would classify as cars. However, if - /// the Type Car were sufficient, it would classify all four-wheeled things.) + /// Type.(A Type gives conditions that must be met by whatever it classifies, but when isSufficient + /// is false, things may meet those conditions but still not be classified by the Type. For example, a + /// Type Car that is not sufficient could require everything it classifies to have four wheels, but not + /// all four wheeled things would classify as cars. However, if the Type Car were sufficient, it would + /// classify all four-wheeled things.) /// [Property(xmiId: "_18_5_3_b9102da_1564072709069_937523_30797", aggregation: AggregationKind.None, lowerValue: 1, upperValue: 1, isOrdered: false, isReadOnly: false, isDerived: false, isDerivedUnion: false, isUnique: true, defaultValue: "false")] [Implements(implementation: "IType.IsSufficient")] diff --git a/SysML2.NET/Core/AutoGenDto/InvocationExpression.cs b/SysML2.NET/Core/AutoGenDto/InvocationExpression.cs index b99b09491..df6717be3 100644 --- a/SysML2.NET/Core/AutoGenDto/InvocationExpression.cs +++ b/SysML2.NET/Core/AutoGenDto/InvocationExpression.cs @@ -60,8 +60,8 @@ public partial class InvocationExpression : IInvocationExpression /// /// The Expressions whose results are bound to features of the instantiatedType. The arguments are /// ordered consistent with the order of the features, though they may not be one-to-one with all the - /// features. Note. The derivation of argument is given in - /// the concrete subclasses of InstantiationExpression. + /// features.Note. The derivation of argument is given in the concrete subclasses of + /// InstantiationExpression. /// [Property(xmiId: "_2022x_2_12e503d9_1739134437590_328753_108", aggregation: AggregationKind.None, lowerValue: 0, upperValue: int.MaxValue, isOrdered: true, isReadOnly: false, isDerived: true, isDerivedUnion: false, isUnique: true, defaultValue: null)] [Implements(implementation: "IInstantiationExpression.Argument")] @@ -372,11 +372,11 @@ public partial class InvocationExpression : IInvocationExpression /// /// Whether all things that meet the classification conditions of this Type must be classified by the - /// Type. (A Type gives conditions that must be met by whatever it - /// classifies, but when isSufficient is false, things may meet those conditions but still not be - /// classified by the Type. For example, a Type Car that is not sufficient could require everything it - /// classifies to have four wheels, but not all four wheeled things would classify as cars. However, if - /// the Type Car were sufficient, it would classify all four-wheeled things.) + /// Type.(A Type gives conditions that must be met by whatever it classifies, but when isSufficient + /// is false, things may meet those conditions but still not be classified by the Type. For example, a + /// Type Car that is not sufficient could require everything it classifies to have four wheels, but not + /// all four wheeled things would classify as cars. However, if the Type Car were sufficient, it would + /// classify all four-wheeled things.) /// [Property(xmiId: "_18_5_3_b9102da_1564072709069_937523_30797", aggregation: AggregationKind.None, lowerValue: 1, upperValue: 1, isOrdered: false, isReadOnly: false, isDerived: false, isDerivedUnion: false, isUnique: true, defaultValue: "false")] [Implements(implementation: "IType.IsSufficient")] diff --git a/SysML2.NET/Core/AutoGenDto/ItemDefinition.cs b/SysML2.NET/Core/AutoGenDto/ItemDefinition.cs index 65b1d5abb..c861b2a02 100644 --- a/SysML2.NET/Core/AutoGenDto/ItemDefinition.cs +++ b/SysML2.NET/Core/AutoGenDto/ItemDefinition.cs @@ -232,11 +232,11 @@ public partial class ItemDefinition : IItemDefinition /// /// Whether all things that meet the classification conditions of this Type must be classified by the - /// Type. (A Type gives conditions that must be met by whatever it - /// classifies, but when isSufficient is false, things may meet those conditions but still not be - /// classified by the Type. For example, a Type Car that is not sufficient could require everything it - /// classifies to have four wheels, but not all four wheeled things would classify as cars. However, if - /// the Type Car were sufficient, it would classify all four-wheeled things.) + /// Type.(A Type gives conditions that must be met by whatever it classifies, but when isSufficient + /// is false, things may meet those conditions but still not be classified by the Type. For example, a + /// Type Car that is not sufficient could require everything it classifies to have four wheels, but not + /// all four wheeled things would classify as cars. However, if the Type Car were sufficient, it would + /// classify all four-wheeled things.) /// [Property(xmiId: "_18_5_3_b9102da_1564072709069_937523_30797", aggregation: AggregationKind.None, lowerValue: 1, upperValue: 1, isOrdered: false, isReadOnly: false, isDerived: false, isDerivedUnion: false, isUnique: true, defaultValue: "false")] [Implements(implementation: "IType.IsSufficient")] @@ -514,7 +514,7 @@ public partial class ItemDefinition : IItemDefinition public List ownedMembership { get; internal set; } = []; /// - /// The MetadataUsages that are ownedUsages of this Definition. + /// The MetadataUsages that are ownedMembers of this Definition. /// [Property(xmiId: "_19_0_4_12e503d9_1661488358064_457109_2881", aggregation: AggregationKind.None, lowerValue: 0, upperValue: int.MaxValue, isOrdered: true, isReadOnly: false, isDerived: true, isDerivedUnion: false, isUnique: true, defaultValue: null)] [SubsettedProperty(propertyName: "_19_0_2_12e503d9_1591482567975_649284_3005")] diff --git a/SysML2.NET/Core/AutoGenDto/ItemUsage.cs b/SysML2.NET/Core/AutoGenDto/ItemUsage.cs index 0c3ae04ed..7e86aa46d 100644 --- a/SysML2.NET/Core/AutoGenDto/ItemUsage.cs +++ b/SysML2.NET/Core/AutoGenDto/ItemUsage.cs @@ -34,9 +34,9 @@ namespace SysML2.NET.Core.DTO.Systems.Items using SysML2.NET.Decorators; /// - /// An ItemUsage is a ItemUsage whose definition is a Structure. Nominally, if the definition is an - /// ItemDefinition, an ItemUsage is a ItemUsage of that ItemDefinition within a system. However, other - /// kinds of Kernel Structures are also allowed, to permit use of Structures from the Kernel Model + /// An ItemUsage is an OccurrenceUsage whose definition is a Structure. Nominally, if the definition is + /// an ItemDefinition, an ItemUsage is a ItemUsage of that ItemDefinition within a system. However, + /// other kinds of Kernel Structures are also allowed, to permit use of Structures from the Kernel Model /// Libraries. /// [Class(xmiId: "_18_5_3_12e503d9_1565480460114_846184_24270", isAbstract: false, isFinalSpecialization: false, isActive: false)] @@ -370,11 +370,11 @@ public partial class ItemUsage : IItemUsage /// /// Whether all things that meet the classification conditions of this Type must be classified by the - /// Type. (A Type gives conditions that must be met by whatever it - /// classifies, but when isSufficient is false, things may meet those conditions but still not be - /// classified by the Type. For example, a Type Car that is not sufficient could require everything it - /// classifies to have four wheels, but not all four wheeled things would classify as cars. However, if - /// the Type Car were sufficient, it would classify all four-wheeled things.) + /// Type.(A Type gives conditions that must be met by whatever it classifies, but when isSufficient + /// is false, things may meet those conditions but still not be classified by the Type. For example, a + /// Type Car that is not sufficient could require everything it classifies to have four wheels, but not + /// all four wheeled things would classify as cars. However, if the Type Car were sufficient, it would + /// classify all four-wheeled things.) /// [Property(xmiId: "_18_5_3_b9102da_1564072709069_937523_30797", aggregation: AggregationKind.None, lowerValue: 1, upperValue: 1, isOrdered: false, isReadOnly: false, isDerived: false, isDerivedUnion: false, isUnique: true, defaultValue: "false")] [Implements(implementation: "IType.IsSufficient")] @@ -422,9 +422,9 @@ bool Core.Features.IFeature.IsVariable /// Whether this Usage may be time varying (that is, whether it is featured by the snapshots of its /// owningType, rather than being featured by the owningType itself). However, if isConstant is also /// true, then the value of the Usage is nevertheless constant over the entire duration of an instance - /// of its owningType (that is, it has the same value on all snapshots). The - /// property mayTimeVary redefines the KerML property Feature::isVariable, making it derived. The - /// property isConstant is inherited from Feature. + /// of its owningType (that is, it has the same value on all snapshots).The property mayTimeVary + /// redefines the KerML property Feature::isVariable, making it derived. The property isConstant is + /// inherited from Feature. /// [Property(xmiId: "_2022x_2_12e503d9_1737227200362_771035_69", aggregation: AggregationKind.None, lowerValue: 1, upperValue: 1, isOrdered: false, isReadOnly: false, isDerived: true, isDerivedUnion: false, isUnique: true, defaultValue: null)] [RedefinedProperty(propertyName: "_2022x_2_12e503d9_1725998273002_23711_212")] @@ -525,8 +525,8 @@ bool Core.Features.IFeature.IsVariable /// /// The ConnectorAsUsages that are nestedUsages of this Usage. Note that this list includes - /// BindingConnectorAsUsages, SuccessionAsUsages, and FlowConnectionUsages because these are - /// ConnectorAsUsages even though they are not ConnectionUsages. + /// BindingConnectorAsUsages, SuccessionAsUsages, and FlowUsages because these are ConnectorAsUsages + /// even though they are not ConnectionUsages. /// [Property(xmiId: "_19_0_2_12e503d9_1591479754895_422988_1242", aggregation: AggregationKind.None, lowerValue: 0, upperValue: int.MaxValue, isOrdered: true, isReadOnly: false, isDerived: true, isDerivedUnion: false, isUnique: true, defaultValue: null)] [SubsettedProperty(propertyName: "_18_5_3_12e503d9_1565472757327_162097_21259")] @@ -574,7 +574,7 @@ bool Core.Features.IFeature.IsVariable public List nestedItem { get; internal set; } = []; /// - /// The MetadataUsages that are nestedUsages of this of this Usage. + /// The MetadataUsages that are ownedMembers of this of this Usage. /// [Property(xmiId: "_19_0_4_12e503d9_1661488589862_120785_2970", aggregation: AggregationKind.None, lowerValue: 0, upperValue: int.MaxValue, isOrdered: true, isReadOnly: false, isDerived: true, isDerivedUnion: false, isUnique: true, defaultValue: null)] [SubsettedProperty(propertyName: "_19_0_2_12e503d9_1591482421103_284620_2978")] diff --git a/SysML2.NET/Core/AutoGenDto/JoinNode.cs b/SysML2.NET/Core/AutoGenDto/JoinNode.cs index b3a733a84..db2c0059b 100644 --- a/SysML2.NET/Core/AutoGenDto/JoinNode.cs +++ b/SysML2.NET/Core/AutoGenDto/JoinNode.cs @@ -387,11 +387,11 @@ public partial class JoinNode : IJoinNode /// /// Whether all things that meet the classification conditions of this Type must be classified by the - /// Type. (A Type gives conditions that must be met by whatever it - /// classifies, but when isSufficient is false, things may meet those conditions but still not be - /// classified by the Type. For example, a Type Car that is not sufficient could require everything it - /// classifies to have four wheels, but not all four wheeled things would classify as cars. However, if - /// the Type Car were sufficient, it would classify all four-wheeled things.) + /// Type.(A Type gives conditions that must be met by whatever it classifies, but when isSufficient + /// is false, things may meet those conditions but still not be classified by the Type. For example, a + /// Type Car that is not sufficient could require everything it classifies to have four wheels, but not + /// all four wheeled things would classify as cars. However, if the Type Car were sufficient, it would + /// classify all four-wheeled things.) /// [Property(xmiId: "_18_5_3_b9102da_1564072709069_937523_30797", aggregation: AggregationKind.None, lowerValue: 1, upperValue: 1, isOrdered: false, isReadOnly: false, isDerived: false, isDerivedUnion: false, isUnique: true, defaultValue: "false")] [Implements(implementation: "IType.IsSufficient")] @@ -429,9 +429,9 @@ bool Core.Features.IFeature.IsVariable /// Whether this Usage may be time varying (that is, whether it is featured by the snapshots of its /// owningType, rather than being featured by the owningType itself). However, if isConstant is also /// true, then the value of the Usage is nevertheless constant over the entire duration of an instance - /// of its owningType (that is, it has the same value on all snapshots). The - /// property mayTimeVary redefines the KerML property Feature::isVariable, making it derived. The - /// property isConstant is inherited from Feature. + /// of its owningType (that is, it has the same value on all snapshots).The property mayTimeVary + /// redefines the KerML property Feature::isVariable, making it derived. The property isConstant is + /// inherited from Feature. /// [Property(xmiId: "_2022x_2_12e503d9_1737227200362_771035_69", aggregation: AggregationKind.None, lowerValue: 1, upperValue: 1, isOrdered: false, isReadOnly: false, isDerived: true, isDerivedUnion: false, isUnique: true, defaultValue: null)] [RedefinedProperty(propertyName: "_2022x_2_12e503d9_1725998273002_23711_212")] @@ -532,8 +532,8 @@ bool Core.Features.IFeature.IsVariable /// /// The ConnectorAsUsages that are nestedUsages of this Usage. Note that this list includes - /// BindingConnectorAsUsages, SuccessionAsUsages, and FlowConnectionUsages because these are - /// ConnectorAsUsages even though they are not ConnectionUsages. + /// BindingConnectorAsUsages, SuccessionAsUsages, and FlowUsages because these are ConnectorAsUsages + /// even though they are not ConnectionUsages. /// [Property(xmiId: "_19_0_2_12e503d9_1591479754895_422988_1242", aggregation: AggregationKind.None, lowerValue: 0, upperValue: int.MaxValue, isOrdered: true, isReadOnly: false, isDerived: true, isDerivedUnion: false, isUnique: true, defaultValue: null)] [SubsettedProperty(propertyName: "_18_5_3_12e503d9_1565472757327_162097_21259")] @@ -581,7 +581,7 @@ bool Core.Features.IFeature.IsVariable public List nestedItem { get; internal set; } = []; /// - /// The MetadataUsages that are nestedUsages of this of this Usage. + /// The MetadataUsages that are ownedMembers of this of this Usage. /// [Property(xmiId: "_19_0_4_12e503d9_1661488589862_120785_2970", aggregation: AggregationKind.None, lowerValue: 0, upperValue: int.MaxValue, isOrdered: true, isReadOnly: false, isDerived: true, isDerivedUnion: false, isUnique: true, defaultValue: null)] [SubsettedProperty(propertyName: "_19_0_2_12e503d9_1591482421103_284620_2978")] diff --git a/SysML2.NET/Core/AutoGenDto/LiteralBoolean.cs b/SysML2.NET/Core/AutoGenDto/LiteralBoolean.cs index 1d9f3ea1c..91b0719aa 100644 --- a/SysML2.NET/Core/AutoGenDto/LiteralBoolean.cs +++ b/SysML2.NET/Core/AutoGenDto/LiteralBoolean.cs @@ -350,11 +350,11 @@ public partial class LiteralBoolean : ILiteralBoolean /// /// Whether all things that meet the classification conditions of this Type must be classified by the - /// Type. (A Type gives conditions that must be met by whatever it - /// classifies, but when isSufficient is false, things may meet those conditions but still not be - /// classified by the Type. For example, a Type Car that is not sufficient could require everything it - /// classifies to have four wheels, but not all four wheeled things would classify as cars. However, if - /// the Type Car were sufficient, it would classify all four-wheeled things.) + /// Type.(A Type gives conditions that must be met by whatever it classifies, but when isSufficient + /// is false, things may meet those conditions but still not be classified by the Type. For example, a + /// Type Car that is not sufficient could require everything it classifies to have four wheels, but not + /// all four wheeled things would classify as cars. However, if the Type Car were sufficient, it would + /// classify all four-wheeled things.) /// [Property(xmiId: "_18_5_3_b9102da_1564072709069_937523_30797", aggregation: AggregationKind.None, lowerValue: 1, upperValue: 1, isOrdered: false, isReadOnly: false, isDerived: false, isDerivedUnion: false, isUnique: true, defaultValue: "false")] [Implements(implementation: "IType.IsSufficient")] diff --git a/SysML2.NET/Core/AutoGenDto/LiteralExpression.cs b/SysML2.NET/Core/AutoGenDto/LiteralExpression.cs index 43d44f01d..30d49555f 100644 --- a/SysML2.NET/Core/AutoGenDto/LiteralExpression.cs +++ b/SysML2.NET/Core/AutoGenDto/LiteralExpression.cs @@ -350,11 +350,11 @@ public partial class LiteralExpression : ILiteralExpression /// /// Whether all things that meet the classification conditions of this Type must be classified by the - /// Type. (A Type gives conditions that must be met by whatever it - /// classifies, but when isSufficient is false, things may meet those conditions but still not be - /// classified by the Type. For example, a Type Car that is not sufficient could require everything it - /// classifies to have four wheels, but not all four wheeled things would classify as cars. However, if - /// the Type Car were sufficient, it would classify all four-wheeled things.) + /// Type.(A Type gives conditions that must be met by whatever it classifies, but when isSufficient + /// is false, things may meet those conditions but still not be classified by the Type. For example, a + /// Type Car that is not sufficient could require everything it classifies to have four wheels, but not + /// all four wheeled things would classify as cars. However, if the Type Car were sufficient, it would + /// classify all four-wheeled things.) /// [Property(xmiId: "_18_5_3_b9102da_1564072709069_937523_30797", aggregation: AggregationKind.None, lowerValue: 1, upperValue: 1, isOrdered: false, isReadOnly: false, isDerived: false, isDerivedUnion: false, isUnique: true, defaultValue: "false")] [Implements(implementation: "IType.IsSufficient")] diff --git a/SysML2.NET/Core/AutoGenDto/LiteralInfinity.cs b/SysML2.NET/Core/AutoGenDto/LiteralInfinity.cs index 88c35a4df..bf0beea43 100644 --- a/SysML2.NET/Core/AutoGenDto/LiteralInfinity.cs +++ b/SysML2.NET/Core/AutoGenDto/LiteralInfinity.cs @@ -350,11 +350,11 @@ public partial class LiteralInfinity : ILiteralInfinity /// /// Whether all things that meet the classification conditions of this Type must be classified by the - /// Type. (A Type gives conditions that must be met by whatever it - /// classifies, but when isSufficient is false, things may meet those conditions but still not be - /// classified by the Type. For example, a Type Car that is not sufficient could require everything it - /// classifies to have four wheels, but not all four wheeled things would classify as cars. However, if - /// the Type Car were sufficient, it would classify all four-wheeled things.) + /// Type.(A Type gives conditions that must be met by whatever it classifies, but when isSufficient + /// is false, things may meet those conditions but still not be classified by the Type. For example, a + /// Type Car that is not sufficient could require everything it classifies to have four wheels, but not + /// all four wheeled things would classify as cars. However, if the Type Car were sufficient, it would + /// classify all four-wheeled things.) /// [Property(xmiId: "_18_5_3_b9102da_1564072709069_937523_30797", aggregation: AggregationKind.None, lowerValue: 1, upperValue: 1, isOrdered: false, isReadOnly: false, isDerived: false, isDerivedUnion: false, isUnique: true, defaultValue: "false")] [Implements(implementation: "IType.IsSufficient")] diff --git a/SysML2.NET/Core/AutoGenDto/LiteralInteger.cs b/SysML2.NET/Core/AutoGenDto/LiteralInteger.cs index 3981ee1af..1bd0a0c04 100644 --- a/SysML2.NET/Core/AutoGenDto/LiteralInteger.cs +++ b/SysML2.NET/Core/AutoGenDto/LiteralInteger.cs @@ -350,11 +350,11 @@ public partial class LiteralInteger : ILiteralInteger /// /// Whether all things that meet the classification conditions of this Type must be classified by the - /// Type. (A Type gives conditions that must be met by whatever it - /// classifies, but when isSufficient is false, things may meet those conditions but still not be - /// classified by the Type. For example, a Type Car that is not sufficient could require everything it - /// classifies to have four wheels, but not all four wheeled things would classify as cars. However, if - /// the Type Car were sufficient, it would classify all four-wheeled things.) + /// Type.(A Type gives conditions that must be met by whatever it classifies, but when isSufficient + /// is false, things may meet those conditions but still not be classified by the Type. For example, a + /// Type Car that is not sufficient could require everything it classifies to have four wheels, but not + /// all four wheeled things would classify as cars. However, if the Type Car were sufficient, it would + /// classify all four-wheeled things.) /// [Property(xmiId: "_18_5_3_b9102da_1564072709069_937523_30797", aggregation: AggregationKind.None, lowerValue: 1, upperValue: 1, isOrdered: false, isReadOnly: false, isDerived: false, isDerivedUnion: false, isUnique: true, defaultValue: "false")] [Implements(implementation: "IType.IsSufficient")] diff --git a/SysML2.NET/Core/AutoGenDto/LiteralRational.cs b/SysML2.NET/Core/AutoGenDto/LiteralRational.cs index f3774662c..b0540c779 100644 --- a/SysML2.NET/Core/AutoGenDto/LiteralRational.cs +++ b/SysML2.NET/Core/AutoGenDto/LiteralRational.cs @@ -350,11 +350,11 @@ public partial class LiteralRational : ILiteralRational /// /// Whether all things that meet the classification conditions of this Type must be classified by the - /// Type. (A Type gives conditions that must be met by whatever it - /// classifies, but when isSufficient is false, things may meet those conditions but still not be - /// classified by the Type. For example, a Type Car that is not sufficient could require everything it - /// classifies to have four wheels, but not all four wheeled things would classify as cars. However, if - /// the Type Car were sufficient, it would classify all four-wheeled things.) + /// Type.(A Type gives conditions that must be met by whatever it classifies, but when isSufficient + /// is false, things may meet those conditions but still not be classified by the Type. For example, a + /// Type Car that is not sufficient could require everything it classifies to have four wheels, but not + /// all four wheeled things would classify as cars. However, if the Type Car were sufficient, it would + /// classify all four-wheeled things.) /// [Property(xmiId: "_18_5_3_b9102da_1564072709069_937523_30797", aggregation: AggregationKind.None, lowerValue: 1, upperValue: 1, isOrdered: false, isReadOnly: false, isDerived: false, isDerivedUnion: false, isUnique: true, defaultValue: "false")] [Implements(implementation: "IType.IsSufficient")] diff --git a/SysML2.NET/Core/AutoGenDto/LiteralString.cs b/SysML2.NET/Core/AutoGenDto/LiteralString.cs index 71b460ebd..4aeeca6fc 100644 --- a/SysML2.NET/Core/AutoGenDto/LiteralString.cs +++ b/SysML2.NET/Core/AutoGenDto/LiteralString.cs @@ -350,11 +350,11 @@ public partial class LiteralString : ILiteralString /// /// Whether all things that meet the classification conditions of this Type must be classified by the - /// Type. (A Type gives conditions that must be met by whatever it - /// classifies, but when isSufficient is false, things may meet those conditions but still not be - /// classified by the Type. For example, a Type Car that is not sufficient could require everything it - /// classifies to have four wheels, but not all four wheeled things would classify as cars. However, if - /// the Type Car were sufficient, it would classify all four-wheeled things.) + /// Type.(A Type gives conditions that must be met by whatever it classifies, but when isSufficient + /// is false, things may meet those conditions but still not be classified by the Type. For example, a + /// Type Car that is not sufficient could require everything it classifies to have four wheels, but not + /// all four wheeled things would classify as cars. However, if the Type Car were sufficient, it would + /// classify all four-wheeled things.) /// [Property(xmiId: "_18_5_3_b9102da_1564072709069_937523_30797", aggregation: AggregationKind.None, lowerValue: 1, upperValue: 1, isOrdered: false, isReadOnly: false, isDerived: false, isDerivedUnion: false, isUnique: true, defaultValue: "false")] [Implements(implementation: "IType.IsSufficient")] diff --git a/SysML2.NET/Core/AutoGenDto/Membership.cs b/SysML2.NET/Core/AutoGenDto/Membership.cs index 54980e579..630c9776f 100644 --- a/SysML2.NET/Core/AutoGenDto/Membership.cs +++ b/SysML2.NET/Core/AutoGenDto/Membership.cs @@ -36,11 +36,10 @@ namespace SysML2.NET.Core.DTO.Root.Namespaces /// A Membership is a Relationship between a Namespace and an Element that indicates the Element is a /// member of (i.e., is contained in) the Namespace. Any memberNames specify how the memberElement is /// identified in the Namespace and the visibility specifies whether or not the memberElement is - /// publicly visible from outside the Namespace. If a Membership is an - /// OwningMembership, then it owns its memberElement, which becomes an ownedMember of the - /// membershipOwningNamespace. Otherwise, the memberNames of a Membership are effectively aliases within - /// the membershipOwningNamespace for an Element with a separate OwningMembership in the same or a - /// different Namespace. + /// publicly visible from outside the Namespace.If a Membership is an OwningMembership, then it owns its + /// memberElement, which becomes an ownedMember of the membershipOwningNamespace. Otherwise, the + /// memberNames of a Membership are effectively aliases within the membershipOwningNamespace for an + /// Element with a separate OwningMembership in the same or a different Namespace. /// [Class(xmiId: "_18_5_3_12e503d9_1533160651680_888716_42152", isAbstract: false, isFinalSpecialization: false, isActive: false)] [GeneratedCode("SysML2.NET", "latest")] diff --git a/SysML2.NET/Core/AutoGenDto/MergeNode.cs b/SysML2.NET/Core/AutoGenDto/MergeNode.cs index 547635d23..b0e35d744 100644 --- a/SysML2.NET/Core/AutoGenDto/MergeNode.cs +++ b/SysML2.NET/Core/AutoGenDto/MergeNode.cs @@ -387,11 +387,11 @@ public partial class MergeNode : IMergeNode /// /// Whether all things that meet the classification conditions of this Type must be classified by the - /// Type. (A Type gives conditions that must be met by whatever it - /// classifies, but when isSufficient is false, things may meet those conditions but still not be - /// classified by the Type. For example, a Type Car that is not sufficient could require everything it - /// classifies to have four wheels, but not all four wheeled things would classify as cars. However, if - /// the Type Car were sufficient, it would classify all four-wheeled things.) + /// Type.(A Type gives conditions that must be met by whatever it classifies, but when isSufficient + /// is false, things may meet those conditions but still not be classified by the Type. For example, a + /// Type Car that is not sufficient could require everything it classifies to have four wheels, but not + /// all four wheeled things would classify as cars. However, if the Type Car were sufficient, it would + /// classify all four-wheeled things.) /// [Property(xmiId: "_18_5_3_b9102da_1564072709069_937523_30797", aggregation: AggregationKind.None, lowerValue: 1, upperValue: 1, isOrdered: false, isReadOnly: false, isDerived: false, isDerivedUnion: false, isUnique: true, defaultValue: "false")] [Implements(implementation: "IType.IsSufficient")] @@ -429,9 +429,9 @@ bool Core.Features.IFeature.IsVariable /// Whether this Usage may be time varying (that is, whether it is featured by the snapshots of its /// owningType, rather than being featured by the owningType itself). However, if isConstant is also /// true, then the value of the Usage is nevertheless constant over the entire duration of an instance - /// of its owningType (that is, it has the same value on all snapshots). The - /// property mayTimeVary redefines the KerML property Feature::isVariable, making it derived. The - /// property isConstant is inherited from Feature. + /// of its owningType (that is, it has the same value on all snapshots).The property mayTimeVary + /// redefines the KerML property Feature::isVariable, making it derived. The property isConstant is + /// inherited from Feature. /// [Property(xmiId: "_2022x_2_12e503d9_1737227200362_771035_69", aggregation: AggregationKind.None, lowerValue: 1, upperValue: 1, isOrdered: false, isReadOnly: false, isDerived: true, isDerivedUnion: false, isUnique: true, defaultValue: null)] [RedefinedProperty(propertyName: "_2022x_2_12e503d9_1725998273002_23711_212")] @@ -532,8 +532,8 @@ bool Core.Features.IFeature.IsVariable /// /// The ConnectorAsUsages that are nestedUsages of this Usage. Note that this list includes - /// BindingConnectorAsUsages, SuccessionAsUsages, and FlowConnectionUsages because these are - /// ConnectorAsUsages even though they are not ConnectionUsages. + /// BindingConnectorAsUsages, SuccessionAsUsages, and FlowUsages because these are ConnectorAsUsages + /// even though they are not ConnectionUsages. /// [Property(xmiId: "_19_0_2_12e503d9_1591479754895_422988_1242", aggregation: AggregationKind.None, lowerValue: 0, upperValue: int.MaxValue, isOrdered: true, isReadOnly: false, isDerived: true, isDerivedUnion: false, isUnique: true, defaultValue: null)] [SubsettedProperty(propertyName: "_18_5_3_12e503d9_1565472757327_162097_21259")] @@ -581,7 +581,7 @@ bool Core.Features.IFeature.IsVariable public List nestedItem { get; internal set; } = []; /// - /// The MetadataUsages that are nestedUsages of this of this Usage. + /// The MetadataUsages that are ownedMembers of this of this Usage. /// [Property(xmiId: "_19_0_4_12e503d9_1661488589862_120785_2970", aggregation: AggregationKind.None, lowerValue: 0, upperValue: int.MaxValue, isOrdered: true, isReadOnly: false, isDerived: true, isDerivedUnion: false, isUnique: true, defaultValue: null)] [SubsettedProperty(propertyName: "_19_0_2_12e503d9_1591482421103_284620_2978")] diff --git a/SysML2.NET/Core/AutoGenDto/Metaclass.cs b/SysML2.NET/Core/AutoGenDto/Metaclass.cs index 0ce5370d3..a902494fc 100644 --- a/SysML2.NET/Core/AutoGenDto/Metaclass.cs +++ b/SysML2.NET/Core/AutoGenDto/Metaclass.cs @@ -213,11 +213,11 @@ public partial class Metaclass : IMetaclass /// /// Whether all things that meet the classification conditions of this Type must be classified by the - /// Type. (A Type gives conditions that must be met by whatever it - /// classifies, but when isSufficient is false, things may meet those conditions but still not be - /// classified by the Type. For example, a Type Car that is not sufficient could require everything it - /// classifies to have four wheels, but not all four wheeled things would classify as cars. However, if - /// the Type Car were sufficient, it would classify all four-wheeled things.) + /// Type.(A Type gives conditions that must be met by whatever it classifies, but when isSufficient + /// is false, things may meet those conditions but still not be classified by the Type. For example, a + /// Type Car that is not sufficient could require everything it classifies to have four wheels, but not + /// all four wheeled things would classify as cars. However, if the Type Car were sufficient, it would + /// classify all four-wheeled things.) /// [Property(xmiId: "_18_5_3_b9102da_1564072709069_937523_30797", aggregation: AggregationKind.None, lowerValue: 1, upperValue: 1, isOrdered: false, isReadOnly: false, isDerived: false, isDerivedUnion: false, isUnique: true, defaultValue: "false")] [Implements(implementation: "IType.IsSufficient")] diff --git a/SysML2.NET/Core/AutoGenDto/MetadataAccessExpression.cs b/SysML2.NET/Core/AutoGenDto/MetadataAccessExpression.cs index 42bfc988f..93a31f984 100644 --- a/SysML2.NET/Core/AutoGenDto/MetadataAccessExpression.cs +++ b/SysML2.NET/Core/AutoGenDto/MetadataAccessExpression.cs @@ -353,11 +353,11 @@ public partial class MetadataAccessExpression : IMetadataAccessExpression /// /// Whether all things that meet the classification conditions of this Type must be classified by the - /// Type. (A Type gives conditions that must be met by whatever it - /// classifies, but when isSufficient is false, things may meet those conditions but still not be - /// classified by the Type. For example, a Type Car that is not sufficient could require everything it - /// classifies to have four wheels, but not all four wheeled things would classify as cars. However, if - /// the Type Car were sufficient, it would classify all four-wheeled things.) + /// Type.(A Type gives conditions that must be met by whatever it classifies, but when isSufficient + /// is false, things may meet those conditions but still not be classified by the Type. For example, a + /// Type Car that is not sufficient could require everything it classifies to have four wheels, but not + /// all four wheeled things would classify as cars. However, if the Type Car were sufficient, it would + /// classify all four-wheeled things.) /// [Property(xmiId: "_18_5_3_b9102da_1564072709069_937523_30797", aggregation: AggregationKind.None, lowerValue: 1, upperValue: 1, isOrdered: false, isReadOnly: false, isDerived: false, isDerivedUnion: false, isUnique: true, defaultValue: "false")] [Implements(implementation: "IType.IsSufficient")] diff --git a/SysML2.NET/Core/AutoGenDto/MetadataDefinition.cs b/SysML2.NET/Core/AutoGenDto/MetadataDefinition.cs index 364763963..026c86151 100644 --- a/SysML2.NET/Core/AutoGenDto/MetadataDefinition.cs +++ b/SysML2.NET/Core/AutoGenDto/MetadataDefinition.cs @@ -229,11 +229,11 @@ public partial class MetadataDefinition : IMetadataDefinition /// /// Whether all things that meet the classification conditions of this Type must be classified by the - /// Type. (A Type gives conditions that must be met by whatever it - /// classifies, but when isSufficient is false, things may meet those conditions but still not be - /// classified by the Type. For example, a Type Car that is not sufficient could require everything it - /// classifies to have four wheels, but not all four wheeled things would classify as cars. However, if - /// the Type Car were sufficient, it would classify all four-wheeled things.) + /// Type.(A Type gives conditions that must be met by whatever it classifies, but when isSufficient + /// is false, things may meet those conditions but still not be classified by the Type. For example, a + /// Type Car that is not sufficient could require everything it classifies to have four wheels, but not + /// all four wheeled things would classify as cars. However, if the Type Car were sufficient, it would + /// classify all four-wheeled things.) /// [Property(xmiId: "_18_5_3_b9102da_1564072709069_937523_30797", aggregation: AggregationKind.None, lowerValue: 1, upperValue: 1, isOrdered: false, isReadOnly: false, isDerived: false, isDerivedUnion: false, isUnique: true, defaultValue: "false")] [Implements(implementation: "IType.IsSufficient")] @@ -511,7 +511,7 @@ public partial class MetadataDefinition : IMetadataDefinition public List ownedMembership { get; internal set; } = []; /// - /// The MetadataUsages that are ownedUsages of this Definition. + /// The MetadataUsages that are ownedMembers of this Definition. /// [Property(xmiId: "_19_0_4_12e503d9_1661488358064_457109_2881", aggregation: AggregationKind.None, lowerValue: 0, upperValue: int.MaxValue, isOrdered: true, isReadOnly: false, isDerived: true, isDerivedUnion: false, isUnique: true, defaultValue: null)] [SubsettedProperty(propertyName: "_19_0_2_12e503d9_1591482567975_649284_3005")] diff --git a/SysML2.NET/Core/AutoGenDto/MetadataFeature.cs b/SysML2.NET/Core/AutoGenDto/MetadataFeature.cs index 831f11b47..bd24dc9df 100644 --- a/SysML2.NET/Core/AutoGenDto/MetadataFeature.cs +++ b/SysML2.NET/Core/AutoGenDto/MetadataFeature.cs @@ -345,11 +345,11 @@ public partial class MetadataFeature : IMetadataFeature /// /// Whether all things that meet the classification conditions of this Type must be classified by the - /// Type. (A Type gives conditions that must be met by whatever it - /// classifies, but when isSufficient is false, things may meet those conditions but still not be - /// classified by the Type. For example, a Type Car that is not sufficient could require everything it - /// classifies to have four wheels, but not all four wheeled things would classify as cars. However, if - /// the Type Car were sufficient, it would classify all four-wheeled things.) + /// Type.(A Type gives conditions that must be met by whatever it classifies, but when isSufficient + /// is false, things may meet those conditions but still not be classified by the Type. For example, a + /// Type Car that is not sufficient could require everything it classifies to have four wheels, but not + /// all four wheeled things would classify as cars. However, if the Type Car were sufficient, it would + /// classify all four-wheeled things.) /// [Property(xmiId: "_18_5_3_b9102da_1564072709069_937523_30797", aggregation: AggregationKind.None, lowerValue: 1, upperValue: 1, isOrdered: false, isReadOnly: false, isDerived: false, isDerivedUnion: false, isUnique: true, defaultValue: "false")] [Implements(implementation: "IType.IsSufficient")] diff --git a/SysML2.NET/Core/AutoGenDto/MetadataUsage.cs b/SysML2.NET/Core/AutoGenDto/MetadataUsage.cs index 35ab5e7e5..a27e4ef47 100644 --- a/SysML2.NET/Core/AutoGenDto/MetadataUsage.cs +++ b/SysML2.NET/Core/AutoGenDto/MetadataUsage.cs @@ -389,11 +389,11 @@ public partial class MetadataUsage : IMetadataUsage /// /// Whether all things that meet the classification conditions of this Type must be classified by the - /// Type. (A Type gives conditions that must be met by whatever it - /// classifies, but when isSufficient is false, things may meet those conditions but still not be - /// classified by the Type. For example, a Type Car that is not sufficient could require everything it - /// classifies to have four wheels, but not all four wheeled things would classify as cars. However, if - /// the Type Car were sufficient, it would classify all four-wheeled things.) + /// Type.(A Type gives conditions that must be met by whatever it classifies, but when isSufficient + /// is false, things may meet those conditions but still not be classified by the Type. For example, a + /// Type Car that is not sufficient could require everything it classifies to have four wheels, but not + /// all four wheeled things would classify as cars. However, if the Type Car were sufficient, it would + /// classify all four-wheeled things.) /// [Property(xmiId: "_18_5_3_b9102da_1564072709069_937523_30797", aggregation: AggregationKind.None, lowerValue: 1, upperValue: 1, isOrdered: false, isReadOnly: false, isDerived: false, isDerivedUnion: false, isUnique: true, defaultValue: "false")] [Implements(implementation: "IType.IsSufficient")] @@ -441,9 +441,9 @@ bool Core.Features.IFeature.IsVariable /// Whether this Usage may be time varying (that is, whether it is featured by the snapshots of its /// owningType, rather than being featured by the owningType itself). However, if isConstant is also /// true, then the value of the Usage is nevertheless constant over the entire duration of an instance - /// of its owningType (that is, it has the same value on all snapshots). The - /// property mayTimeVary redefines the KerML property Feature::isVariable, making it derived. The - /// property isConstant is inherited from Feature. + /// of its owningType (that is, it has the same value on all snapshots).The property mayTimeVary + /// redefines the KerML property Feature::isVariable, making it derived. The property isConstant is + /// inherited from Feature. /// [Property(xmiId: "_2022x_2_12e503d9_1737227200362_771035_69", aggregation: AggregationKind.None, lowerValue: 1, upperValue: 1, isOrdered: false, isReadOnly: false, isDerived: true, isDerivedUnion: false, isUnique: true, defaultValue: null)] [RedefinedProperty(propertyName: "_2022x_2_12e503d9_1725998273002_23711_212")] @@ -561,8 +561,8 @@ bool Core.Features.IFeature.IsVariable /// /// The ConnectorAsUsages that are nestedUsages of this Usage. Note that this list includes - /// BindingConnectorAsUsages, SuccessionAsUsages, and FlowConnectionUsages because these are - /// ConnectorAsUsages even though they are not ConnectionUsages. + /// BindingConnectorAsUsages, SuccessionAsUsages, and FlowUsages because these are ConnectorAsUsages + /// even though they are not ConnectionUsages. /// [Property(xmiId: "_19_0_2_12e503d9_1591479754895_422988_1242", aggregation: AggregationKind.None, lowerValue: 0, upperValue: int.MaxValue, isOrdered: true, isReadOnly: false, isDerived: true, isDerivedUnion: false, isUnique: true, defaultValue: null)] [SubsettedProperty(propertyName: "_18_5_3_12e503d9_1565472757327_162097_21259")] @@ -610,7 +610,7 @@ bool Core.Features.IFeature.IsVariable public List nestedItem { get; internal set; } = []; /// - /// The MetadataUsages that are nestedUsages of this of this Usage. + /// The MetadataUsages that are ownedMembers of this of this Usage. /// [Property(xmiId: "_19_0_4_12e503d9_1661488589862_120785_2970", aggregation: AggregationKind.None, lowerValue: 0, upperValue: int.MaxValue, isOrdered: true, isReadOnly: false, isDerived: true, isDerivedUnion: false, isUnique: true, defaultValue: null)] [SubsettedProperty(propertyName: "_19_0_2_12e503d9_1591482421103_284620_2978")] diff --git a/SysML2.NET/Core/AutoGenDto/Multiplicity.cs b/SysML2.NET/Core/AutoGenDto/Multiplicity.cs index 9ce0bca0d..2dc977ab1 100644 --- a/SysML2.NET/Core/AutoGenDto/Multiplicity.cs +++ b/SysML2.NET/Core/AutoGenDto/Multiplicity.cs @@ -35,16 +35,15 @@ namespace SysML2.NET.Core.DTO.Core.Types /// /// A Multiplicity is a Feature whose co-domain is a set of natural numbers giving the allowed /// cardinalities of each typeWithMultiplicity. The cardinality of a Type is defined as follows, - /// depending on whether the Type is a Classifier or Feature.
    - ///
  • Classifier – The number of basic instances of the Classifier, that is, those instances - /// representing things, which are not instances of any subtypes of the Classifier that are Features. - ///
  • Features – The number of instances with the same featuring instances. In the - /// case of a Feature with a Classifier as its featuringType, this is the number of values of Feature - /// for each basic instance of the Classifier. Note that, for non-unique Features, all duplicate values - /// are included in this count.
Multiplicity - /// co-domains (in models) can be specified by Expression that might vary in their results. If the - /// typeWithMultiplicity is a Classifier, the domain of the Multiplicity shall be Base::Anything. If - /// the typeWithMultiplicity is a Feature, the Multiplicity shall have the same domain as the + /// depending on whether the Type is a Classifier or Feature.
  • Classifier – The number of basic + /// instances of the Classifier, that is, those instances representing things, which are not instances + /// of any subtypes of the Classifier that are Features.
  • Features – The number of instances with the + /// same featuring instances. In the case of a Feature with a Classifier as its featuringType, this is + /// the number of values of Feature for each basic instance of the Classifier. Note that, for non-unique + /// Features, all duplicate values are included in this count.
Multiplicity co-domains (in + /// models) can be specified by Expression that might vary in their results. If the typeWithMultiplicity + /// is a Classifier, the domain of the Multiplicity shall be Base::Anything. If the + /// typeWithMultiplicity is a Feature, the Multiplicity shall have the same domain as the /// typeWithMultiplicity. ///
[Class(xmiId: "_19_0_2_12e503d9_1573083797505_495205_3879", isAbstract: false, isFinalSpecialization: false, isActive: false)] @@ -336,11 +335,11 @@ public partial class Multiplicity : IMultiplicity /// /// Whether all things that meet the classification conditions of this Type must be classified by the - /// Type. (A Type gives conditions that must be met by whatever it - /// classifies, but when isSufficient is false, things may meet those conditions but still not be - /// classified by the Type. For example, a Type Car that is not sufficient could require everything it - /// classifies to have four wheels, but not all four wheeled things would classify as cars. However, if - /// the Type Car were sufficient, it would classify all four-wheeled things.) + /// Type.(A Type gives conditions that must be met by whatever it classifies, but when isSufficient + /// is false, things may meet those conditions but still not be classified by the Type. For example, a + /// Type Car that is not sufficient could require everything it classifies to have four wheels, but not + /// all four wheeled things would classify as cars. However, if the Type Car were sufficient, it would + /// classify all four-wheeled things.) /// [Property(xmiId: "_18_5_3_b9102da_1564072709069_937523_30797", aggregation: AggregationKind.None, lowerValue: 1, upperValue: 1, isOrdered: false, isReadOnly: false, isDerived: false, isDerivedUnion: false, isUnique: true, defaultValue: "false")] [Implements(implementation: "IType.IsSufficient")] diff --git a/SysML2.NET/Core/AutoGenDto/MultiplicityRange.cs b/SysML2.NET/Core/AutoGenDto/MultiplicityRange.cs index a64091ff8..83b67de7c 100644 --- a/SysML2.NET/Core/AutoGenDto/MultiplicityRange.cs +++ b/SysML2.NET/Core/AutoGenDto/MultiplicityRange.cs @@ -339,11 +339,11 @@ public partial class MultiplicityRange : IMultiplicityRange /// /// Whether all things that meet the classification conditions of this Type must be classified by the - /// Type. (A Type gives conditions that must be met by whatever it - /// classifies, but when isSufficient is false, things may meet those conditions but still not be - /// classified by the Type. For example, a Type Car that is not sufficient could require everything it - /// classifies to have four wheels, but not all four wheeled things would classify as cars. However, if - /// the Type Car were sufficient, it would classify all four-wheeled things.) + /// Type.(A Type gives conditions that must be met by whatever it classifies, but when isSufficient + /// is false, things may meet those conditions but still not be classified by the Type. For example, a + /// Type Car that is not sufficient could require everything it classifies to have four wheels, but not + /// all four wheeled things would classify as cars. However, if the Type Car were sufficient, it would + /// classify all four-wheeled things.) /// [Property(xmiId: "_18_5_3_b9102da_1564072709069_937523_30797", aggregation: AggregationKind.None, lowerValue: 1, upperValue: 1, isOrdered: false, isReadOnly: false, isDerived: false, isDerivedUnion: false, isUnique: true, defaultValue: "false")] [Implements(implementation: "IType.IsSufficient")] diff --git a/SysML2.NET/Core/AutoGenDto/Namespace.cs b/SysML2.NET/Core/AutoGenDto/Namespace.cs index dc67677e0..451cf72d0 100644 --- a/SysML2.NET/Core/AutoGenDto/Namespace.cs +++ b/SysML2.NET/Core/AutoGenDto/Namespace.cs @@ -34,14 +34,13 @@ namespace SysML2.NET.Core.DTO.Root.Namespaces /// /// A Namespace is an Element that contains other Elements, known as its members, via Membership /// Relationships with those Elements. The members of a Namespace may be owned by the Namespace, aliased - /// in the Namespace, or imported into the Namespace via Import Relationships. A - /// Namespace can provide names for its members via the memberNames and memberShortNames specified by - /// the Memberships in the Namespace. If a Membership specifies a memberName and/or memberShortName, - /// then those are names of the corresponding memberElement relative to the Namespace. For an - /// OwningMembership, the ownedMemberName and ownedMemberShortName are given by the Element name and - /// shortName. Note that the same Element may be the memberElement of multiple Memberships in a - /// Namespace (though it may be owned at most once), each of which may define a separate alias for the - /// Element relative to the Namespace. + /// in the Namespace, or imported into the Namespace via Import Relationships.A Namespace can provide + /// names for its members via the memberNames and memberShortNames specified by the Memberships in the + /// Namespace. If a Membership specifies a memberName and/or memberShortName, then those are names of + /// the corresponding memberElement relative to the Namespace. For an OwningMembership, the + /// ownedMemberName and ownedMemberShortName are given by the Element name and shortName. Note that the + /// same Element may be the memberElement of multiple Memberships in a Namespace (though it may be owned + /// at most once), each of which may define a separate alias for the Element relative to the Namespace. /// [Class(xmiId: "_18_5_3_12e503d9_1533160651694_110063_42176", isAbstract: false, isFinalSpecialization: false, isActive: false)] [GeneratedCode("SysML2.NET", "latest")] diff --git a/SysML2.NET/Core/AutoGenDto/NullExpression.cs b/SysML2.NET/Core/AutoGenDto/NullExpression.cs index 382bd1d2c..88549ea1c 100644 --- a/SysML2.NET/Core/AutoGenDto/NullExpression.cs +++ b/SysML2.NET/Core/AutoGenDto/NullExpression.cs @@ -350,11 +350,11 @@ public partial class NullExpression : INullExpression /// /// Whether all things that meet the classification conditions of this Type must be classified by the - /// Type. (A Type gives conditions that must be met by whatever it - /// classifies, but when isSufficient is false, things may meet those conditions but still not be - /// classified by the Type. For example, a Type Car that is not sufficient could require everything it - /// classifies to have four wheels, but not all four wheeled things would classify as cars. However, if - /// the Type Car were sufficient, it would classify all four-wheeled things.) + /// Type.(A Type gives conditions that must be met by whatever it classifies, but when isSufficient + /// is false, things may meet those conditions but still not be classified by the Type. For example, a + /// Type Car that is not sufficient could require everything it classifies to have four wheels, but not + /// all four wheeled things would classify as cars. However, if the Type Car were sufficient, it would + /// classify all four-wheeled things.) /// [Property(xmiId: "_18_5_3_b9102da_1564072709069_937523_30797", aggregation: AggregationKind.None, lowerValue: 1, upperValue: 1, isOrdered: false, isReadOnly: false, isDerived: false, isDerivedUnion: false, isUnique: true, defaultValue: "false")] [Implements(implementation: "IType.IsSufficient")] diff --git a/SysML2.NET/Core/AutoGenDto/OccurrenceDefinition.cs b/SysML2.NET/Core/AutoGenDto/OccurrenceDefinition.cs index 2f283a979..e46ecfebe 100644 --- a/SysML2.NET/Core/AutoGenDto/OccurrenceDefinition.cs +++ b/SysML2.NET/Core/AutoGenDto/OccurrenceDefinition.cs @@ -232,11 +232,11 @@ public partial class OccurrenceDefinition : IOccurrenceDefinition /// /// Whether all things that meet the classification conditions of this Type must be classified by the - /// Type. (A Type gives conditions that must be met by whatever it - /// classifies, but when isSufficient is false, things may meet those conditions but still not be - /// classified by the Type. For example, a Type Car that is not sufficient could require everything it - /// classifies to have four wheels, but not all four wheeled things would classify as cars. However, if - /// the Type Car were sufficient, it would classify all four-wheeled things.) + /// Type.(A Type gives conditions that must be met by whatever it classifies, but when isSufficient + /// is false, things may meet those conditions but still not be classified by the Type. For example, a + /// Type Car that is not sufficient could require everything it classifies to have four wheels, but not + /// all four wheeled things would classify as cars. However, if the Type Car were sufficient, it would + /// classify all four-wheeled things.) /// [Property(xmiId: "_18_5_3_b9102da_1564072709069_937523_30797", aggregation: AggregationKind.None, lowerValue: 1, upperValue: 1, isOrdered: false, isReadOnly: false, isDerived: false, isDerivedUnion: false, isUnique: true, defaultValue: "false")] [Implements(implementation: "IType.IsSufficient")] @@ -514,7 +514,7 @@ public partial class OccurrenceDefinition : IOccurrenceDefinition public List ownedMembership { get; internal set; } = []; /// - /// The MetadataUsages that are ownedUsages of this Definition. + /// The MetadataUsages that are ownedMembers of this Definition. /// [Property(xmiId: "_19_0_4_12e503d9_1661488358064_457109_2881", aggregation: AggregationKind.None, lowerValue: 0, upperValue: int.MaxValue, isOrdered: true, isReadOnly: false, isDerived: true, isDerivedUnion: false, isUnique: true, defaultValue: null)] [SubsettedProperty(propertyName: "_19_0_2_12e503d9_1591482567975_649284_3005")] diff --git a/SysML2.NET/Core/AutoGenDto/OccurrenceUsage.cs b/SysML2.NET/Core/AutoGenDto/OccurrenceUsage.cs index caa09212e..0c5904f2f 100644 --- a/SysML2.NET/Core/AutoGenDto/OccurrenceUsage.cs +++ b/SysML2.NET/Core/AutoGenDto/OccurrenceUsage.cs @@ -370,11 +370,11 @@ public partial class OccurrenceUsage : IOccurrenceUsage /// /// Whether all things that meet the classification conditions of this Type must be classified by the - /// Type. (A Type gives conditions that must be met by whatever it - /// classifies, but when isSufficient is false, things may meet those conditions but still not be - /// classified by the Type. For example, a Type Car that is not sufficient could require everything it - /// classifies to have four wheels, but not all four wheeled things would classify as cars. However, if - /// the Type Car were sufficient, it would classify all four-wheeled things.) + /// Type.(A Type gives conditions that must be met by whatever it classifies, but when isSufficient + /// is false, things may meet those conditions but still not be classified by the Type. For example, a + /// Type Car that is not sufficient could require everything it classifies to have four wheels, but not + /// all four wheeled things would classify as cars. However, if the Type Car were sufficient, it would + /// classify all four-wheeled things.) /// [Property(xmiId: "_18_5_3_b9102da_1564072709069_937523_30797", aggregation: AggregationKind.None, lowerValue: 1, upperValue: 1, isOrdered: false, isReadOnly: false, isDerived: false, isDerivedUnion: false, isUnique: true, defaultValue: "false")] [Implements(implementation: "IType.IsSufficient")] @@ -412,9 +412,9 @@ bool Core.Features.IFeature.IsVariable /// Whether this Usage may be time varying (that is, whether it is featured by the snapshots of its /// owningType, rather than being featured by the owningType itself). However, if isConstant is also /// true, then the value of the Usage is nevertheless constant over the entire duration of an instance - /// of its owningType (that is, it has the same value on all snapshots). The - /// property mayTimeVary redefines the KerML property Feature::isVariable, making it derived. The - /// property isConstant is inherited from Feature. + /// of its owningType (that is, it has the same value on all snapshots).The property mayTimeVary + /// redefines the KerML property Feature::isVariable, making it derived. The property isConstant is + /// inherited from Feature. /// [Property(xmiId: "_2022x_2_12e503d9_1737227200362_771035_69", aggregation: AggregationKind.None, lowerValue: 1, upperValue: 1, isOrdered: false, isReadOnly: false, isDerived: true, isDerivedUnion: false, isUnique: true, defaultValue: null)] [RedefinedProperty(propertyName: "_2022x_2_12e503d9_1725998273002_23711_212")] @@ -515,8 +515,8 @@ bool Core.Features.IFeature.IsVariable /// /// The ConnectorAsUsages that are nestedUsages of this Usage. Note that this list includes - /// BindingConnectorAsUsages, SuccessionAsUsages, and FlowConnectionUsages because these are - /// ConnectorAsUsages even though they are not ConnectionUsages. + /// BindingConnectorAsUsages, SuccessionAsUsages, and FlowUsages because these are ConnectorAsUsages + /// even though they are not ConnectionUsages. /// [Property(xmiId: "_19_0_2_12e503d9_1591479754895_422988_1242", aggregation: AggregationKind.None, lowerValue: 0, upperValue: int.MaxValue, isOrdered: true, isReadOnly: false, isDerived: true, isDerivedUnion: false, isUnique: true, defaultValue: null)] [SubsettedProperty(propertyName: "_18_5_3_12e503d9_1565472757327_162097_21259")] @@ -564,7 +564,7 @@ bool Core.Features.IFeature.IsVariable public List nestedItem { get; internal set; } = []; /// - /// The MetadataUsages that are nestedUsages of this of this Usage. + /// The MetadataUsages that are ownedMembers of this of this Usage. /// [Property(xmiId: "_19_0_4_12e503d9_1661488589862_120785_2970", aggregation: AggregationKind.None, lowerValue: 0, upperValue: int.MaxValue, isOrdered: true, isReadOnly: false, isDerived: true, isDerivedUnion: false, isUnique: true, defaultValue: null)] [SubsettedProperty(propertyName: "_19_0_2_12e503d9_1591482421103_284620_2978")] diff --git a/SysML2.NET/Core/AutoGenDto/OperatorExpression.cs b/SysML2.NET/Core/AutoGenDto/OperatorExpression.cs index c90d9e5c1..26d163517 100644 --- a/SysML2.NET/Core/AutoGenDto/OperatorExpression.cs +++ b/SysML2.NET/Core/AutoGenDto/OperatorExpression.cs @@ -56,8 +56,8 @@ public partial class OperatorExpression : IOperatorExpression /// /// The Expressions whose results are bound to features of the instantiatedType. The arguments are /// ordered consistent with the order of the features, though they may not be one-to-one with all the - /// features. Note. The derivation of argument is given in - /// the concrete subclasses of InstantiationExpression. + /// features.Note. The derivation of argument is given in the concrete subclasses of + /// InstantiationExpression. /// [Property(xmiId: "_2022x_2_12e503d9_1739134437590_328753_108", aggregation: AggregationKind.None, lowerValue: 0, upperValue: int.MaxValue, isOrdered: true, isReadOnly: false, isDerived: true, isDerivedUnion: false, isUnique: true, defaultValue: null)] [Implements(implementation: "IInstantiationExpression.Argument")] @@ -368,11 +368,11 @@ public partial class OperatorExpression : IOperatorExpression /// /// Whether all things that meet the classification conditions of this Type must be classified by the - /// Type. (A Type gives conditions that must be met by whatever it - /// classifies, but when isSufficient is false, things may meet those conditions but still not be - /// classified by the Type. For example, a Type Car that is not sufficient could require everything it - /// classifies to have four wheels, but not all four wheeled things would classify as cars. However, if - /// the Type Car were sufficient, it would classify all four-wheeled things.) + /// Type.(A Type gives conditions that must be met by whatever it classifies, but when isSufficient + /// is false, things may meet those conditions but still not be classified by the Type. For example, a + /// Type Car that is not sufficient could require everything it classifies to have four wheels, but not + /// all four wheeled things would classify as cars. However, if the Type Car were sufficient, it would + /// classify all four-wheeled things.) /// [Property(xmiId: "_18_5_3_b9102da_1564072709069_937523_30797", aggregation: AggregationKind.None, lowerValue: 1, upperValue: 1, isOrdered: false, isReadOnly: false, isDerived: false, isDerivedUnion: false, isUnique: true, defaultValue: "false")] [Implements(implementation: "IType.IsSufficient")] diff --git a/SysML2.NET/Core/AutoGenDto/PartDefinition.cs b/SysML2.NET/Core/AutoGenDto/PartDefinition.cs index 1ba4e80f2..467a200b7 100644 --- a/SysML2.NET/Core/AutoGenDto/PartDefinition.cs +++ b/SysML2.NET/Core/AutoGenDto/PartDefinition.cs @@ -230,11 +230,11 @@ public partial class PartDefinition : IPartDefinition /// /// Whether all things that meet the classification conditions of this Type must be classified by the - /// Type. (A Type gives conditions that must be met by whatever it - /// classifies, but when isSufficient is false, things may meet those conditions but still not be - /// classified by the Type. For example, a Type Car that is not sufficient could require everything it - /// classifies to have four wheels, but not all four wheeled things would classify as cars. However, if - /// the Type Car were sufficient, it would classify all four-wheeled things.) + /// Type.(A Type gives conditions that must be met by whatever it classifies, but when isSufficient + /// is false, things may meet those conditions but still not be classified by the Type. For example, a + /// Type Car that is not sufficient could require everything it classifies to have four wheels, but not + /// all four wheeled things would classify as cars. However, if the Type Car were sufficient, it would + /// classify all four-wheeled things.) /// [Property(xmiId: "_18_5_3_b9102da_1564072709069_937523_30797", aggregation: AggregationKind.None, lowerValue: 1, upperValue: 1, isOrdered: false, isReadOnly: false, isDerived: false, isDerivedUnion: false, isUnique: true, defaultValue: "false")] [Implements(implementation: "IType.IsSufficient")] @@ -512,7 +512,7 @@ public partial class PartDefinition : IPartDefinition public List ownedMembership { get; internal set; } = []; /// - /// The MetadataUsages that are ownedUsages of this Definition. + /// The MetadataUsages that are ownedMembers of this Definition. /// [Property(xmiId: "_19_0_4_12e503d9_1661488358064_457109_2881", aggregation: AggregationKind.None, lowerValue: 0, upperValue: int.MaxValue, isOrdered: true, isReadOnly: false, isDerived: true, isDerivedUnion: false, isUnique: true, defaultValue: null)] [SubsettedProperty(propertyName: "_19_0_2_12e503d9_1591482567975_649284_3005")] diff --git a/SysML2.NET/Core/AutoGenDto/PartUsage.cs b/SysML2.NET/Core/AutoGenDto/PartUsage.cs index 5b2040478..37d79cf45 100644 --- a/SysML2.NET/Core/AutoGenDto/PartUsage.cs +++ b/SysML2.NET/Core/AutoGenDto/PartUsage.cs @@ -35,8 +35,8 @@ namespace SysML2.NET.Core.DTO.Systems.Parts /// /// A PartUsage is a usage of a PartDefinition to represent a system or a part of a system. At least one - /// of the itemDefinitions of the PartUsage must be a PartDefinition. A PartUsage - /// must subset, directly or indirectly, the base PartUsage parts from the Systems Model Library. + /// of the itemDefinitions of the PartUsage must be a PartDefinition.A PartUsage must subset, directly + /// or indirectly, the base PartUsage parts from the Systems Model Library. /// [Class(xmiId: "_18_5_3_12e503d9_1565471239590_312157_20701", isAbstract: false, isFinalSpecialization: false, isActive: false)] [GeneratedCode("SysML2.NET", "latest")] @@ -369,11 +369,11 @@ public partial class PartUsage : IPartUsage /// /// Whether all things that meet the classification conditions of this Type must be classified by the - /// Type. (A Type gives conditions that must be met by whatever it - /// classifies, but when isSufficient is false, things may meet those conditions but still not be - /// classified by the Type. For example, a Type Car that is not sufficient could require everything it - /// classifies to have four wheels, but not all four wheeled things would classify as cars. However, if - /// the Type Car were sufficient, it would classify all four-wheeled things.) + /// Type.(A Type gives conditions that must be met by whatever it classifies, but when isSufficient + /// is false, things may meet those conditions but still not be classified by the Type. For example, a + /// Type Car that is not sufficient could require everything it classifies to have four wheels, but not + /// all four wheeled things would classify as cars. However, if the Type Car were sufficient, it would + /// classify all four-wheeled things.) /// [Property(xmiId: "_18_5_3_b9102da_1564072709069_937523_30797", aggregation: AggregationKind.None, lowerValue: 1, upperValue: 1, isOrdered: false, isReadOnly: false, isDerived: false, isDerivedUnion: false, isUnique: true, defaultValue: "false")] [Implements(implementation: "IType.IsSufficient")] @@ -421,9 +421,9 @@ bool Core.Features.IFeature.IsVariable /// Whether this Usage may be time varying (that is, whether it is featured by the snapshots of its /// owningType, rather than being featured by the owningType itself). However, if isConstant is also /// true, then the value of the Usage is nevertheless constant over the entire duration of an instance - /// of its owningType (that is, it has the same value on all snapshots). The - /// property mayTimeVary redefines the KerML property Feature::isVariable, making it derived. The - /// property isConstant is inherited from Feature. + /// of its owningType (that is, it has the same value on all snapshots).The property mayTimeVary + /// redefines the KerML property Feature::isVariable, making it derived. The property isConstant is + /// inherited from Feature. /// [Property(xmiId: "_2022x_2_12e503d9_1737227200362_771035_69", aggregation: AggregationKind.None, lowerValue: 1, upperValue: 1, isOrdered: false, isReadOnly: false, isDerived: true, isDerivedUnion: false, isUnique: true, defaultValue: null)] [RedefinedProperty(propertyName: "_2022x_2_12e503d9_1725998273002_23711_212")] @@ -524,8 +524,8 @@ bool Core.Features.IFeature.IsVariable /// /// The ConnectorAsUsages that are nestedUsages of this Usage. Note that this list includes - /// BindingConnectorAsUsages, SuccessionAsUsages, and FlowConnectionUsages because these are - /// ConnectorAsUsages even though they are not ConnectionUsages. + /// BindingConnectorAsUsages, SuccessionAsUsages, and FlowUsages because these are ConnectorAsUsages + /// even though they are not ConnectionUsages. /// [Property(xmiId: "_19_0_2_12e503d9_1591479754895_422988_1242", aggregation: AggregationKind.None, lowerValue: 0, upperValue: int.MaxValue, isOrdered: true, isReadOnly: false, isDerived: true, isDerivedUnion: false, isUnique: true, defaultValue: null)] [SubsettedProperty(propertyName: "_18_5_3_12e503d9_1565472757327_162097_21259")] @@ -573,7 +573,7 @@ bool Core.Features.IFeature.IsVariable public List nestedItem { get; internal set; } = []; /// - /// The MetadataUsages that are nestedUsages of this of this Usage. + /// The MetadataUsages that are ownedMembers of this of this Usage. /// [Property(xmiId: "_19_0_4_12e503d9_1661488589862_120785_2970", aggregation: AggregationKind.None, lowerValue: 0, upperValue: int.MaxValue, isOrdered: true, isReadOnly: false, isDerived: true, isDerivedUnion: false, isUnique: true, defaultValue: null)] [SubsettedProperty(propertyName: "_19_0_2_12e503d9_1591482421103_284620_2978")] diff --git a/SysML2.NET/Core/AutoGenDto/PayloadFeature.cs b/SysML2.NET/Core/AutoGenDto/PayloadFeature.cs index a83b4e1ec..127ac66cf 100644 --- a/SysML2.NET/Core/AutoGenDto/PayloadFeature.cs +++ b/SysML2.NET/Core/AutoGenDto/PayloadFeature.cs @@ -325,11 +325,11 @@ public partial class PayloadFeature : IPayloadFeature /// /// Whether all things that meet the classification conditions of this Type must be classified by the - /// Type. (A Type gives conditions that must be met by whatever it - /// classifies, but when isSufficient is false, things may meet those conditions but still not be - /// classified by the Type. For example, a Type Car that is not sufficient could require everything it - /// classifies to have four wheels, but not all four wheeled things would classify as cars. However, if - /// the Type Car were sufficient, it would classify all four-wheeled things.) + /// Type.(A Type gives conditions that must be met by whatever it classifies, but when isSufficient + /// is false, things may meet those conditions but still not be classified by the Type. For example, a + /// Type Car that is not sufficient could require everything it classifies to have four wheels, but not + /// all four wheeled things would classify as cars. However, if the Type Car were sufficient, it would + /// classify all four-wheeled things.) /// [Property(xmiId: "_18_5_3_b9102da_1564072709069_937523_30797", aggregation: AggregationKind.None, lowerValue: 1, upperValue: 1, isOrdered: false, isReadOnly: false, isDerived: false, isDerivedUnion: false, isUnique: true, defaultValue: "false")] [Implements(implementation: "IType.IsSufficient")] diff --git a/SysML2.NET/Core/AutoGenDto/PerformActionUsage.cs b/SysML2.NET/Core/AutoGenDto/PerformActionUsage.cs index 5ba14b703..579bda74c 100644 --- a/SysML2.NET/Core/AutoGenDto/PerformActionUsage.cs +++ b/SysML2.NET/Core/AutoGenDto/PerformActionUsage.cs @@ -409,11 +409,11 @@ public partial class PerformActionUsage : IPerformActionUsage /// /// Whether all things that meet the classification conditions of this Type must be classified by the - /// Type. (A Type gives conditions that must be met by whatever it - /// classifies, but when isSufficient is false, things may meet those conditions but still not be - /// classified by the Type. For example, a Type Car that is not sufficient could require everything it - /// classifies to have four wheels, but not all four wheeled things would classify as cars. However, if - /// the Type Car were sufficient, it would classify all four-wheeled things.) + /// Type.(A Type gives conditions that must be met by whatever it classifies, but when isSufficient + /// is false, things may meet those conditions but still not be classified by the Type. For example, a + /// Type Car that is not sufficient could require everything it classifies to have four wheels, but not + /// all four wheeled things would classify as cars. However, if the Type Car were sufficient, it would + /// classify all four-wheeled things.) /// [Property(xmiId: "_18_5_3_b9102da_1564072709069_937523_30797", aggregation: AggregationKind.None, lowerValue: 1, upperValue: 1, isOrdered: false, isReadOnly: false, isDerived: false, isDerivedUnion: false, isUnique: true, defaultValue: "false")] [Implements(implementation: "IType.IsSufficient")] @@ -451,9 +451,9 @@ bool Core.Features.IFeature.IsVariable /// Whether this Usage may be time varying (that is, whether it is featured by the snapshots of its /// owningType, rather than being featured by the owningType itself). However, if isConstant is also /// true, then the value of the Usage is nevertheless constant over the entire duration of an instance - /// of its owningType (that is, it has the same value on all snapshots). The - /// property mayTimeVary redefines the KerML property Feature::isVariable, making it derived. The - /// property isConstant is inherited from Feature. + /// of its owningType (that is, it has the same value on all snapshots).The property mayTimeVary + /// redefines the KerML property Feature::isVariable, making it derived. The property isConstant is + /// inherited from Feature. /// [Property(xmiId: "_2022x_2_12e503d9_1737227200362_771035_69", aggregation: AggregationKind.None, lowerValue: 1, upperValue: 1, isOrdered: false, isReadOnly: false, isDerived: true, isDerivedUnion: false, isUnique: true, defaultValue: null)] [RedefinedProperty(propertyName: "_2022x_2_12e503d9_1725998273002_23711_212")] @@ -554,8 +554,8 @@ bool Core.Features.IFeature.IsVariable /// /// The ConnectorAsUsages that are nestedUsages of this Usage. Note that this list includes - /// BindingConnectorAsUsages, SuccessionAsUsages, and FlowConnectionUsages because these are - /// ConnectorAsUsages even though they are not ConnectionUsages. + /// BindingConnectorAsUsages, SuccessionAsUsages, and FlowUsages because these are ConnectorAsUsages + /// even though they are not ConnectionUsages. /// [Property(xmiId: "_19_0_2_12e503d9_1591479754895_422988_1242", aggregation: AggregationKind.None, lowerValue: 0, upperValue: int.MaxValue, isOrdered: true, isReadOnly: false, isDerived: true, isDerivedUnion: false, isUnique: true, defaultValue: null)] [SubsettedProperty(propertyName: "_18_5_3_12e503d9_1565472757327_162097_21259")] @@ -603,7 +603,7 @@ bool Core.Features.IFeature.IsVariable public List nestedItem { get; internal set; } = []; /// - /// The MetadataUsages that are nestedUsages of this of this Usage. + /// The MetadataUsages that are ownedMembers of this of this Usage. /// [Property(xmiId: "_19_0_4_12e503d9_1661488589862_120785_2970", aggregation: AggregationKind.None, lowerValue: 0, upperValue: int.MaxValue, isOrdered: true, isReadOnly: false, isDerived: true, isDerivedUnion: false, isUnique: true, defaultValue: null)] [SubsettedProperty(propertyName: "_19_0_2_12e503d9_1591482421103_284620_2978")] diff --git a/SysML2.NET/Core/AutoGenDto/PortDefinition.cs b/SysML2.NET/Core/AutoGenDto/PortDefinition.cs index e52226791..18444f5fb 100644 --- a/SysML2.NET/Core/AutoGenDto/PortDefinition.cs +++ b/SysML2.NET/Core/AutoGenDto/PortDefinition.cs @@ -56,7 +56,7 @@ public partial class PortDefinition : IPortDefinition public List AliasIds { get; set; } = []; /// - /// The <> that is conjugate to this PortDefinition. + /// The ConjugatedPortDefinition that is conjugate to this PortDefinition. /// [Property(xmiId: "_19_0_2_12e503d9_1575484364015_206236_989", aggregation: AggregationKind.None, lowerValue: 0, upperValue: 1, isOrdered: false, isReadOnly: false, isDerived: true, isDerivedUnion: false, isUnique: true, defaultValue: null)] [SubsettedProperty(propertyName: "_18_5_3_12e503d9_1533160674979_259543_43268")] @@ -239,11 +239,11 @@ public partial class PortDefinition : IPortDefinition /// /// Whether all things that meet the classification conditions of this Type must be classified by the - /// Type. (A Type gives conditions that must be met by whatever it - /// classifies, but when isSufficient is false, things may meet those conditions but still not be - /// classified by the Type. For example, a Type Car that is not sufficient could require everything it - /// classifies to have four wheels, but not all four wheeled things would classify as cars. However, if - /// the Type Car were sufficient, it would classify all four-wheeled things.) + /// Type.(A Type gives conditions that must be met by whatever it classifies, but when isSufficient + /// is false, things may meet those conditions but still not be classified by the Type. For example, a + /// Type Car that is not sufficient could require everything it classifies to have four wheels, but not + /// all four wheeled things would classify as cars. However, if the Type Car were sufficient, it would + /// classify all four-wheeled things.) /// [Property(xmiId: "_18_5_3_b9102da_1564072709069_937523_30797", aggregation: AggregationKind.None, lowerValue: 1, upperValue: 1, isOrdered: false, isReadOnly: false, isDerived: false, isDerivedUnion: false, isUnique: true, defaultValue: "false")] [Implements(implementation: "IType.IsSufficient")] @@ -521,7 +521,7 @@ public partial class PortDefinition : IPortDefinition public List ownedMembership { get; internal set; } = []; /// - /// The MetadataUsages that are ownedUsages of this Definition. + /// The MetadataUsages that are ownedMembers of this Definition. /// [Property(xmiId: "_19_0_4_12e503d9_1661488358064_457109_2881", aggregation: AggregationKind.None, lowerValue: 0, upperValue: int.MaxValue, isOrdered: true, isReadOnly: false, isDerived: true, isDerivedUnion: false, isUnique: true, defaultValue: null)] [SubsettedProperty(propertyName: "_19_0_2_12e503d9_1591482567975_649284_3005")] diff --git a/SysML2.NET/Core/AutoGenDto/PortUsage.cs b/SysML2.NET/Core/AutoGenDto/PortUsage.cs index b3456b0b4..305efa74f 100644 --- a/SysML2.NET/Core/AutoGenDto/PortUsage.cs +++ b/SysML2.NET/Core/AutoGenDto/PortUsage.cs @@ -368,11 +368,11 @@ public partial class PortUsage : IPortUsage /// /// Whether all things that meet the classification conditions of this Type must be classified by the - /// Type. (A Type gives conditions that must be met by whatever it - /// classifies, but when isSufficient is false, things may meet those conditions but still not be - /// classified by the Type. For example, a Type Car that is not sufficient could require everything it - /// classifies to have four wheels, but not all four wheeled things would classify as cars. However, if - /// the Type Car were sufficient, it would classify all four-wheeled things.) + /// Type.(A Type gives conditions that must be met by whatever it classifies, but when isSufficient + /// is false, things may meet those conditions but still not be classified by the Type. For example, a + /// Type Car that is not sufficient could require everything it classifies to have four wheels, but not + /// all four wheeled things would classify as cars. However, if the Type Car were sufficient, it would + /// classify all four-wheeled things.) /// [Property(xmiId: "_18_5_3_b9102da_1564072709069_937523_30797", aggregation: AggregationKind.None, lowerValue: 1, upperValue: 1, isOrdered: false, isReadOnly: false, isDerived: false, isDerivedUnion: false, isUnique: true, defaultValue: "false")] [Implements(implementation: "IType.IsSufficient")] @@ -410,9 +410,9 @@ bool Core.Features.IFeature.IsVariable /// Whether this Usage may be time varying (that is, whether it is featured by the snapshots of its /// owningType, rather than being featured by the owningType itself). However, if isConstant is also /// true, then the value of the Usage is nevertheless constant over the entire duration of an instance - /// of its owningType (that is, it has the same value on all snapshots). The - /// property mayTimeVary redefines the KerML property Feature::isVariable, making it derived. The - /// property isConstant is inherited from Feature. + /// of its owningType (that is, it has the same value on all snapshots).The property mayTimeVary + /// redefines the KerML property Feature::isVariable, making it derived. The property isConstant is + /// inherited from Feature. /// [Property(xmiId: "_2022x_2_12e503d9_1737227200362_771035_69", aggregation: AggregationKind.None, lowerValue: 1, upperValue: 1, isOrdered: false, isReadOnly: false, isDerived: true, isDerivedUnion: false, isUnique: true, defaultValue: null)] [RedefinedProperty(propertyName: "_2022x_2_12e503d9_1725998273002_23711_212")] @@ -513,8 +513,8 @@ bool Core.Features.IFeature.IsVariable /// /// The ConnectorAsUsages that are nestedUsages of this Usage. Note that this list includes - /// BindingConnectorAsUsages, SuccessionAsUsages, and FlowConnectionUsages because these are - /// ConnectorAsUsages even though they are not ConnectionUsages. + /// BindingConnectorAsUsages, SuccessionAsUsages, and FlowUsages because these are ConnectorAsUsages + /// even though they are not ConnectionUsages. /// [Property(xmiId: "_19_0_2_12e503d9_1591479754895_422988_1242", aggregation: AggregationKind.None, lowerValue: 0, upperValue: int.MaxValue, isOrdered: true, isReadOnly: false, isDerived: true, isDerivedUnion: false, isUnique: true, defaultValue: null)] [SubsettedProperty(propertyName: "_18_5_3_12e503d9_1565472757327_162097_21259")] @@ -562,7 +562,7 @@ bool Core.Features.IFeature.IsVariable public List nestedItem { get; internal set; } = []; /// - /// The MetadataUsages that are nestedUsages of this of this Usage. + /// The MetadataUsages that are ownedMembers of this of this Usage. /// [Property(xmiId: "_19_0_4_12e503d9_1661488589862_120785_2970", aggregation: AggregationKind.None, lowerValue: 0, upperValue: int.MaxValue, isOrdered: true, isReadOnly: false, isDerived: true, isDerivedUnion: false, isUnique: true, defaultValue: null)] [SubsettedProperty(propertyName: "_19_0_2_12e503d9_1591482421103_284620_2978")] diff --git a/SysML2.NET/Core/AutoGenDto/Predicate.cs b/SysML2.NET/Core/AutoGenDto/Predicate.cs index 91bb76000..3c3cc6a90 100644 --- a/SysML2.NET/Core/AutoGenDto/Predicate.cs +++ b/SysML2.NET/Core/AutoGenDto/Predicate.cs @@ -222,9 +222,9 @@ public partial class Predicate : IPredicate /// /// Whether this Function can be used as the function of a model-level evaluable InvocationExpression. /// Certain Functions from the Kernel Functions Library are considered to have isModelLevelEvaluable = - /// true. For all other Functions it is false. Note: See the - /// specification of the KerML concrete syntax notation for Expressions for an identification of which - /// library Functions are model-level evaluable. + /// true. For all other Functions it is false.Note: See the specification of the KerML + /// concrete syntax notation for Expressions for an identification of which library Functions are + /// model-level evaluable. /// [Property(xmiId: "_19_0_4_12e503d9_1617395221463_139517_26381", aggregation: AggregationKind.None, lowerValue: 1, upperValue: 1, isOrdered: false, isReadOnly: false, isDerived: true, isDerivedUnion: false, isUnique: true, defaultValue: null)] [Implements(implementation: "IFunction.IsModelLevelEvaluable")] @@ -232,11 +232,11 @@ public partial class Predicate : IPredicate /// /// Whether all things that meet the classification conditions of this Type must be classified by the - /// Type. (A Type gives conditions that must be met by whatever it - /// classifies, but when isSufficient is false, things may meet those conditions but still not be - /// classified by the Type. For example, a Type Car that is not sufficient could require everything it - /// classifies to have four wheels, but not all four wheeled things would classify as cars. However, if - /// the Type Car were sufficient, it would classify all four-wheeled things.) + /// Type.(A Type gives conditions that must be met by whatever it classifies, but when isSufficient + /// is false, things may meet those conditions but still not be classified by the Type. For example, a + /// Type Car that is not sufficient could require everything it classifies to have four wheels, but not + /// all four wheeled things would classify as cars. However, if the Type Car were sufficient, it would + /// classify all four-wheeled things.) /// [Property(xmiId: "_18_5_3_b9102da_1564072709069_937523_30797", aggregation: AggregationKind.None, lowerValue: 1, upperValue: 1, isOrdered: false, isReadOnly: false, isDerived: false, isDerivedUnion: false, isUnique: true, defaultValue: "false")] [Implements(implementation: "IType.IsSufficient")] diff --git a/SysML2.NET/Core/AutoGenDto/ReferenceSubsetting.cs b/SysML2.NET/Core/AutoGenDto/ReferenceSubsetting.cs index c2a6119e1..595817119 100644 --- a/SysML2.NET/Core/AutoGenDto/ReferenceSubsetting.cs +++ b/SysML2.NET/Core/AutoGenDto/ReferenceSubsetting.cs @@ -35,8 +35,8 @@ namespace SysML2.NET.Core.DTO.Core.Features /// distinguished from other Features subsetted by the referencingFeature. ReferenceSubsetting has the /// same semantics as Subsetting, but the referencedFeature may have a special purpose relative to the /// referencingFeature. For instance, ReferenceSubsetting is used to identify the relatedFeatures of a - /// Connector. ReferenceSubsetting is always an ownedRelationship of its - /// referencingFeature. A Feature can have at most one ownedReferenceSubsetting. + /// Connector.ReferenceSubsetting is always an ownedRelationship of its referencingFeature. A Feature + /// can have at most one ownedReferenceSubsetting. /// [Class(xmiId: "_19_0_4_12e503d9_1661554793960_500657_60", isAbstract: false, isFinalSpecialization: false, isActive: false)] [GeneratedCode("SysML2.NET", "latest")] diff --git a/SysML2.NET/Core/AutoGenDto/ReferenceUsage.cs b/SysML2.NET/Core/AutoGenDto/ReferenceUsage.cs index 1a2563f0f..ed50e29c3 100644 --- a/SysML2.NET/Core/AutoGenDto/ReferenceUsage.cs +++ b/SysML2.NET/Core/AutoGenDto/ReferenceUsage.cs @@ -361,11 +361,11 @@ public partial class ReferenceUsage : IReferenceUsage /// /// Whether all things that meet the classification conditions of this Type must be classified by the - /// Type. (A Type gives conditions that must be met by whatever it - /// classifies, but when isSufficient is false, things may meet those conditions but still not be - /// classified by the Type. For example, a Type Car that is not sufficient could require everything it - /// classifies to have four wheels, but not all four wheeled things would classify as cars. However, if - /// the Type Car were sufficient, it would classify all four-wheeled things.) + /// Type.(A Type gives conditions that must be met by whatever it classifies, but when isSufficient + /// is false, things may meet those conditions but still not be classified by the Type. For example, a + /// Type Car that is not sufficient could require everything it classifies to have four wheels, but not + /// all four wheeled things would classify as cars. However, if the Type Car were sufficient, it would + /// classify all four-wheeled things.) /// [Property(xmiId: "_18_5_3_b9102da_1564072709069_937523_30797", aggregation: AggregationKind.None, lowerValue: 1, upperValue: 1, isOrdered: false, isReadOnly: false, isDerived: false, isDerivedUnion: false, isUnique: true, defaultValue: "false")] [Implements(implementation: "IType.IsSufficient")] @@ -403,9 +403,9 @@ bool Core.Features.IFeature.IsVariable /// Whether this Usage may be time varying (that is, whether it is featured by the snapshots of its /// owningType, rather than being featured by the owningType itself). However, if isConstant is also /// true, then the value of the Usage is nevertheless constant over the entire duration of an instance - /// of its owningType (that is, it has the same value on all snapshots). The - /// property mayTimeVary redefines the KerML property Feature::isVariable, making it derived. The - /// property isConstant is inherited from Feature. + /// of its owningType (that is, it has the same value on all snapshots).The property mayTimeVary + /// redefines the KerML property Feature::isVariable, making it derived. The property isConstant is + /// inherited from Feature. /// [Property(xmiId: "_2022x_2_12e503d9_1737227200362_771035_69", aggregation: AggregationKind.None, lowerValue: 1, upperValue: 1, isOrdered: false, isReadOnly: false, isDerived: true, isDerivedUnion: false, isUnique: true, defaultValue: null)] [RedefinedProperty(propertyName: "_2022x_2_12e503d9_1725998273002_23711_212")] @@ -506,8 +506,8 @@ bool Core.Features.IFeature.IsVariable /// /// The ConnectorAsUsages that are nestedUsages of this Usage. Note that this list includes - /// BindingConnectorAsUsages, SuccessionAsUsages, and FlowConnectionUsages because these are - /// ConnectorAsUsages even though they are not ConnectionUsages. + /// BindingConnectorAsUsages, SuccessionAsUsages, and FlowUsages because these are ConnectorAsUsages + /// even though they are not ConnectionUsages. /// [Property(xmiId: "_19_0_2_12e503d9_1591479754895_422988_1242", aggregation: AggregationKind.None, lowerValue: 0, upperValue: int.MaxValue, isOrdered: true, isReadOnly: false, isDerived: true, isDerivedUnion: false, isUnique: true, defaultValue: null)] [SubsettedProperty(propertyName: "_18_5_3_12e503d9_1565472757327_162097_21259")] @@ -555,7 +555,7 @@ bool Core.Features.IFeature.IsVariable public List nestedItem { get; internal set; } = []; /// - /// The MetadataUsages that are nestedUsages of this of this Usage. + /// The MetadataUsages that are ownedMembers of this of this Usage. /// [Property(xmiId: "_19_0_4_12e503d9_1661488589862_120785_2970", aggregation: AggregationKind.None, lowerValue: 0, upperValue: int.MaxValue, isOrdered: true, isReadOnly: false, isDerived: true, isDerivedUnion: false, isUnique: true, defaultValue: null)] [SubsettedProperty(propertyName: "_19_0_2_12e503d9_1591482421103_284620_2978")] diff --git a/SysML2.NET/Core/AutoGenDto/RenderingDefinition.cs b/SysML2.NET/Core/AutoGenDto/RenderingDefinition.cs index d846d266b..220aaf08f 100644 --- a/SysML2.NET/Core/AutoGenDto/RenderingDefinition.cs +++ b/SysML2.NET/Core/AutoGenDto/RenderingDefinition.cs @@ -229,11 +229,11 @@ public partial class RenderingDefinition : IRenderingDefinition /// /// Whether all things that meet the classification conditions of this Type must be classified by the - /// Type. (A Type gives conditions that must be met by whatever it - /// classifies, but when isSufficient is false, things may meet those conditions but still not be - /// classified by the Type. For example, a Type Car that is not sufficient could require everything it - /// classifies to have four wheels, but not all four wheeled things would classify as cars. However, if - /// the Type Car were sufficient, it would classify all four-wheeled things.) + /// Type.(A Type gives conditions that must be met by whatever it classifies, but when isSufficient + /// is false, things may meet those conditions but still not be classified by the Type. For example, a + /// Type Car that is not sufficient could require everything it classifies to have four wheels, but not + /// all four wheeled things would classify as cars. However, if the Type Car were sufficient, it would + /// classify all four-wheeled things.) /// [Property(xmiId: "_18_5_3_b9102da_1564072709069_937523_30797", aggregation: AggregationKind.None, lowerValue: 1, upperValue: 1, isOrdered: false, isReadOnly: false, isDerived: false, isDerivedUnion: false, isUnique: true, defaultValue: "false")] [Implements(implementation: "IType.IsSufficient")] @@ -511,7 +511,7 @@ public partial class RenderingDefinition : IRenderingDefinition public List ownedMembership { get; internal set; } = []; /// - /// The MetadataUsages that are ownedUsages of this Definition. + /// The MetadataUsages that are ownedMembers of this Definition. /// [Property(xmiId: "_19_0_4_12e503d9_1661488358064_457109_2881", aggregation: AggregationKind.None, lowerValue: 0, upperValue: int.MaxValue, isOrdered: true, isReadOnly: false, isDerived: true, isDerivedUnion: false, isUnique: true, defaultValue: null)] [SubsettedProperty(propertyName: "_19_0_2_12e503d9_1591482567975_649284_3005")] diff --git a/SysML2.NET/Core/AutoGenDto/RenderingUsage.cs b/SysML2.NET/Core/AutoGenDto/RenderingUsage.cs index de227ef61..f644d4d27 100644 --- a/SysML2.NET/Core/AutoGenDto/RenderingUsage.cs +++ b/SysML2.NET/Core/AutoGenDto/RenderingUsage.cs @@ -368,11 +368,11 @@ public partial class RenderingUsage : IRenderingUsage /// /// Whether all things that meet the classification conditions of this Type must be classified by the - /// Type. (A Type gives conditions that must be met by whatever it - /// classifies, but when isSufficient is false, things may meet those conditions but still not be - /// classified by the Type. For example, a Type Car that is not sufficient could require everything it - /// classifies to have four wheels, but not all four wheeled things would classify as cars. However, if - /// the Type Car were sufficient, it would classify all four-wheeled things.) + /// Type.(A Type gives conditions that must be met by whatever it classifies, but when isSufficient + /// is false, things may meet those conditions but still not be classified by the Type. For example, a + /// Type Car that is not sufficient could require everything it classifies to have four wheels, but not + /// all four wheeled things would classify as cars. However, if the Type Car were sufficient, it would + /// classify all four-wheeled things.) /// [Property(xmiId: "_18_5_3_b9102da_1564072709069_937523_30797", aggregation: AggregationKind.None, lowerValue: 1, upperValue: 1, isOrdered: false, isReadOnly: false, isDerived: false, isDerivedUnion: false, isUnique: true, defaultValue: "false")] [Implements(implementation: "IType.IsSufficient")] @@ -420,9 +420,9 @@ bool Core.Features.IFeature.IsVariable /// Whether this Usage may be time varying (that is, whether it is featured by the snapshots of its /// owningType, rather than being featured by the owningType itself). However, if isConstant is also /// true, then the value of the Usage is nevertheless constant over the entire duration of an instance - /// of its owningType (that is, it has the same value on all snapshots). The - /// property mayTimeVary redefines the KerML property Feature::isVariable, making it derived. The - /// property isConstant is inherited from Feature. + /// of its owningType (that is, it has the same value on all snapshots).The property mayTimeVary + /// redefines the KerML property Feature::isVariable, making it derived. The property isConstant is + /// inherited from Feature. /// [Property(xmiId: "_2022x_2_12e503d9_1737227200362_771035_69", aggregation: AggregationKind.None, lowerValue: 1, upperValue: 1, isOrdered: false, isReadOnly: false, isDerived: true, isDerivedUnion: false, isUnique: true, defaultValue: null)] [RedefinedProperty(propertyName: "_2022x_2_12e503d9_1725998273002_23711_212")] @@ -523,8 +523,8 @@ bool Core.Features.IFeature.IsVariable /// /// The ConnectorAsUsages that are nestedUsages of this Usage. Note that this list includes - /// BindingConnectorAsUsages, SuccessionAsUsages, and FlowConnectionUsages because these are - /// ConnectorAsUsages even though they are not ConnectionUsages. + /// BindingConnectorAsUsages, SuccessionAsUsages, and FlowUsages because these are ConnectorAsUsages + /// even though they are not ConnectionUsages. /// [Property(xmiId: "_19_0_2_12e503d9_1591479754895_422988_1242", aggregation: AggregationKind.None, lowerValue: 0, upperValue: int.MaxValue, isOrdered: true, isReadOnly: false, isDerived: true, isDerivedUnion: false, isUnique: true, defaultValue: null)] [SubsettedProperty(propertyName: "_18_5_3_12e503d9_1565472757327_162097_21259")] @@ -572,7 +572,7 @@ bool Core.Features.IFeature.IsVariable public List nestedItem { get; internal set; } = []; /// - /// The MetadataUsages that are nestedUsages of this of this Usage. + /// The MetadataUsages that are ownedMembers of this of this Usage. /// [Property(xmiId: "_19_0_4_12e503d9_1661488589862_120785_2970", aggregation: AggregationKind.None, lowerValue: 0, upperValue: int.MaxValue, isOrdered: true, isReadOnly: false, isDerived: true, isDerivedUnion: false, isUnique: true, defaultValue: null)] [SubsettedProperty(propertyName: "_19_0_2_12e503d9_1591482421103_284620_2978")] diff --git a/SysML2.NET/Core/AutoGenDto/RequirementDefinition.cs b/SysML2.NET/Core/AutoGenDto/RequirementDefinition.cs index ce711179c..0937413ba 100644 --- a/SysML2.NET/Core/AutoGenDto/RequirementDefinition.cs +++ b/SysML2.NET/Core/AutoGenDto/RequirementDefinition.cs @@ -275,9 +275,9 @@ string Root.Elements.IElement.DeclaredShortName /// /// Whether this Function can be used as the function of a model-level evaluable InvocationExpression. /// Certain Functions from the Kernel Functions Library are considered to have isModelLevelEvaluable = - /// true. For all other Functions it is false. Note: See the - /// specification of the KerML concrete syntax notation for Expressions for an identification of which - /// library Functions are model-level evaluable. + /// true. For all other Functions it is false.Note: See the specification of the KerML + /// concrete syntax notation for Expressions for an identification of which library Functions are + /// model-level evaluable. /// [Property(xmiId: "_19_0_4_12e503d9_1617395221463_139517_26381", aggregation: AggregationKind.None, lowerValue: 1, upperValue: 1, isOrdered: false, isReadOnly: false, isDerived: true, isDerivedUnion: false, isUnique: true, defaultValue: null)] [Implements(implementation: "IFunction.IsModelLevelEvaluable")] @@ -285,11 +285,11 @@ string Root.Elements.IElement.DeclaredShortName /// /// Whether all things that meet the classification conditions of this Type must be classified by the - /// Type. (A Type gives conditions that must be met by whatever it - /// classifies, but when isSufficient is false, things may meet those conditions but still not be - /// classified by the Type. For example, a Type Car that is not sufficient could require everything it - /// classifies to have four wheels, but not all four wheeled things would classify as cars. However, if - /// the Type Car were sufficient, it would classify all four-wheeled things.) + /// Type.(A Type gives conditions that must be met by whatever it classifies, but when isSufficient + /// is false, things may meet those conditions but still not be classified by the Type. For example, a + /// Type Car that is not sufficient could require everything it classifies to have four wheels, but not + /// all four wheeled things would classify as cars. However, if the Type Car were sufficient, it would + /// classify all four-wheeled things.) /// [Property(xmiId: "_18_5_3_b9102da_1564072709069_937523_30797", aggregation: AggregationKind.None, lowerValue: 1, upperValue: 1, isOrdered: false, isReadOnly: false, isDerived: false, isDerivedUnion: false, isUnique: true, defaultValue: "false")] [Implements(implementation: "IType.IsSufficient")] @@ -567,7 +567,7 @@ string Root.Elements.IElement.DeclaredShortName public List ownedMembership { get; internal set; } = []; /// - /// The MetadataUsages that are ownedUsages of this Definition. + /// The MetadataUsages that are ownedMembers of this Definition. /// [Property(xmiId: "_19_0_4_12e503d9_1661488358064_457109_2881", aggregation: AggregationKind.None, lowerValue: 0, upperValue: int.MaxValue, isOrdered: true, isReadOnly: false, isDerived: true, isDerivedUnion: false, isUnique: true, defaultValue: null)] [SubsettedProperty(propertyName: "_19_0_2_12e503d9_1591482567975_649284_3005")] @@ -809,7 +809,7 @@ string Root.Elements.IElement.DeclaredShortName public string shortName { get; internal set; } /// - /// The parameters of this RequirementDefinition that represent stakeholders for th requirement. + /// The parameters of this RequirementDefinition that represent stakeholders for the requirement. /// [Property(xmiId: "_19_0_4_12e503d9_1624033010374_29375_40166", aggregation: AggregationKind.None, lowerValue: 0, upperValue: int.MaxValue, isOrdered: true, isReadOnly: false, isDerived: true, isDerivedUnion: false, isUnique: true, defaultValue: null)] [SubsettedProperty(propertyName: "_18_5_3_12e503d9_1543948010065_362066_20413")] diff --git a/SysML2.NET/Core/AutoGenDto/RequirementUsage.cs b/SysML2.NET/Core/AutoGenDto/RequirementUsage.cs index 1a0ebdf44..00677d4a9 100644 --- a/SysML2.NET/Core/AutoGenDto/RequirementUsage.cs +++ b/SysML2.NET/Core/AutoGenDto/RequirementUsage.cs @@ -440,11 +440,11 @@ string Root.Elements.IElement.DeclaredShortName /// /// Whether all things that meet the classification conditions of this Type must be classified by the - /// Type. (A Type gives conditions that must be met by whatever it - /// classifies, but when isSufficient is false, things may meet those conditions but still not be - /// classified by the Type. For example, a Type Car that is not sufficient could require everything it - /// classifies to have four wheels, but not all four wheeled things would classify as cars. However, if - /// the Type Car were sufficient, it would classify all four-wheeled things.) + /// Type.(A Type gives conditions that must be met by whatever it classifies, but when isSufficient + /// is false, things may meet those conditions but still not be classified by the Type. For example, a + /// Type Car that is not sufficient could require everything it classifies to have four wheels, but not + /// all four wheeled things would classify as cars. However, if the Type Car were sufficient, it would + /// classify all four-wheeled things.) /// [Property(xmiId: "_18_5_3_b9102da_1564072709069_937523_30797", aggregation: AggregationKind.None, lowerValue: 1, upperValue: 1, isOrdered: false, isReadOnly: false, isDerived: false, isDerivedUnion: false, isUnique: true, defaultValue: "false")] [Implements(implementation: "IType.IsSufficient")] @@ -482,9 +482,9 @@ bool Core.Features.IFeature.IsVariable /// Whether this Usage may be time varying (that is, whether it is featured by the snapshots of its /// owningType, rather than being featured by the owningType itself). However, if isConstant is also /// true, then the value of the Usage is nevertheless constant over the entire duration of an instance - /// of its owningType (that is, it has the same value on all snapshots). The - /// property mayTimeVary redefines the KerML property Feature::isVariable, making it derived. The - /// property isConstant is inherited from Feature. + /// of its owningType (that is, it has the same value on all snapshots).The property mayTimeVary + /// redefines the KerML property Feature::isVariable, making it derived. The property isConstant is + /// inherited from Feature. /// [Property(xmiId: "_2022x_2_12e503d9_1737227200362_771035_69", aggregation: AggregationKind.None, lowerValue: 1, upperValue: 1, isOrdered: false, isReadOnly: false, isDerived: true, isDerivedUnion: false, isUnique: true, defaultValue: null)] [RedefinedProperty(propertyName: "_2022x_2_12e503d9_1725998273002_23711_212")] @@ -585,8 +585,8 @@ bool Core.Features.IFeature.IsVariable /// /// The ConnectorAsUsages that are nestedUsages of this Usage. Note that this list includes - /// BindingConnectorAsUsages, SuccessionAsUsages, and FlowConnectionUsages because these are - /// ConnectorAsUsages even though they are not ConnectionUsages. + /// BindingConnectorAsUsages, SuccessionAsUsages, and FlowUsages because these are ConnectorAsUsages + /// even though they are not ConnectionUsages. /// [Property(xmiId: "_19_0_2_12e503d9_1591479754895_422988_1242", aggregation: AggregationKind.None, lowerValue: 0, upperValue: int.MaxValue, isOrdered: true, isReadOnly: false, isDerived: true, isDerivedUnion: false, isUnique: true, defaultValue: null)] [SubsettedProperty(propertyName: "_18_5_3_12e503d9_1565472757327_162097_21259")] @@ -634,7 +634,7 @@ bool Core.Features.IFeature.IsVariable public List nestedItem { get; internal set; } = []; /// - /// The MetadataUsages that are nestedUsages of this of this Usage. + /// The MetadataUsages that are ownedMembers of this of this Usage. /// [Property(xmiId: "_19_0_4_12e503d9_1661488589862_120785_2970", aggregation: AggregationKind.None, lowerValue: 0, upperValue: int.MaxValue, isOrdered: true, isReadOnly: false, isDerived: true, isDerivedUnion: false, isUnique: true, defaultValue: null)] [SubsettedProperty(propertyName: "_19_0_2_12e503d9_1591482421103_284620_2978")] diff --git a/SysML2.NET/Core/AutoGenDto/SatisfyRequirementUsage.cs b/SysML2.NET/Core/AutoGenDto/SatisfyRequirementUsage.cs index 401eb3dde..5ab50b5c8 100644 --- a/SysML2.NET/Core/AutoGenDto/SatisfyRequirementUsage.cs +++ b/SysML2.NET/Core/AutoGenDto/SatisfyRequirementUsage.cs @@ -460,11 +460,11 @@ string Root.Elements.IElement.DeclaredShortName /// /// Whether all things that meet the classification conditions of this Type must be classified by the - /// Type. (A Type gives conditions that must be met by whatever it - /// classifies, but when isSufficient is false, things may meet those conditions but still not be - /// classified by the Type. For example, a Type Car that is not sufficient could require everything it - /// classifies to have four wheels, but not all four wheeled things would classify as cars. However, if - /// the Type Car were sufficient, it would classify all four-wheeled things.) + /// Type.(A Type gives conditions that must be met by whatever it classifies, but when isSufficient + /// is false, things may meet those conditions but still not be classified by the Type. For example, a + /// Type Car that is not sufficient could require everything it classifies to have four wheels, but not + /// all four wheeled things would classify as cars. However, if the Type Car were sufficient, it would + /// classify all four-wheeled things.) /// [Property(xmiId: "_18_5_3_b9102da_1564072709069_937523_30797", aggregation: AggregationKind.None, lowerValue: 1, upperValue: 1, isOrdered: false, isReadOnly: false, isDerived: false, isDerivedUnion: false, isUnique: true, defaultValue: "false")] [Implements(implementation: "IType.IsSufficient")] @@ -502,9 +502,9 @@ bool Core.Features.IFeature.IsVariable /// Whether this Usage may be time varying (that is, whether it is featured by the snapshots of its /// owningType, rather than being featured by the owningType itself). However, if isConstant is also /// true, then the value of the Usage is nevertheless constant over the entire duration of an instance - /// of its owningType (that is, it has the same value on all snapshots). The - /// property mayTimeVary redefines the KerML property Feature::isVariable, making it derived. The - /// property isConstant is inherited from Feature. + /// of its owningType (that is, it has the same value on all snapshots).The property mayTimeVary + /// redefines the KerML property Feature::isVariable, making it derived. The property isConstant is + /// inherited from Feature. /// [Property(xmiId: "_2022x_2_12e503d9_1737227200362_771035_69", aggregation: AggregationKind.None, lowerValue: 1, upperValue: 1, isOrdered: false, isReadOnly: false, isDerived: true, isDerivedUnion: false, isUnique: true, defaultValue: null)] [RedefinedProperty(propertyName: "_2022x_2_12e503d9_1725998273002_23711_212")] @@ -605,8 +605,8 @@ bool Core.Features.IFeature.IsVariable /// /// The ConnectorAsUsages that are nestedUsages of this Usage. Note that this list includes - /// BindingConnectorAsUsages, SuccessionAsUsages, and FlowConnectionUsages because these are - /// ConnectorAsUsages even though they are not ConnectionUsages. + /// BindingConnectorAsUsages, SuccessionAsUsages, and FlowUsages because these are ConnectorAsUsages + /// even though they are not ConnectionUsages. /// [Property(xmiId: "_19_0_2_12e503d9_1591479754895_422988_1242", aggregation: AggregationKind.None, lowerValue: 0, upperValue: int.MaxValue, isOrdered: true, isReadOnly: false, isDerived: true, isDerivedUnion: false, isUnique: true, defaultValue: null)] [SubsettedProperty(propertyName: "_18_5_3_12e503d9_1565472757327_162097_21259")] @@ -654,7 +654,7 @@ bool Core.Features.IFeature.IsVariable public List nestedItem { get; internal set; } = []; /// - /// The MetadataUsages that are nestedUsages of this of this Usage. + /// The MetadataUsages that are ownedMembers of this of this Usage. /// [Property(xmiId: "_19_0_4_12e503d9_1661488589862_120785_2970", aggregation: AggregationKind.None, lowerValue: 0, upperValue: int.MaxValue, isOrdered: true, isReadOnly: false, isDerived: true, isDerivedUnion: false, isUnique: true, defaultValue: null)] [SubsettedProperty(propertyName: "_19_0_2_12e503d9_1591482421103_284620_2978")] diff --git a/SysML2.NET/Core/AutoGenDto/SelectExpression.cs b/SysML2.NET/Core/AutoGenDto/SelectExpression.cs index cc962dc7c..60655012b 100644 --- a/SysML2.NET/Core/AutoGenDto/SelectExpression.cs +++ b/SysML2.NET/Core/AutoGenDto/SelectExpression.cs @@ -56,8 +56,8 @@ public partial class SelectExpression : ISelectExpression /// /// The Expressions whose results are bound to features of the instantiatedType. The arguments are /// ordered consistent with the order of the features, though they may not be one-to-one with all the - /// features. Note. The derivation of argument is given in - /// the concrete subclasses of InstantiationExpression. + /// features.Note. The derivation of argument is given in the concrete subclasses of + /// InstantiationExpression. /// [Property(xmiId: "_2022x_2_12e503d9_1739134437590_328753_108", aggregation: AggregationKind.None, lowerValue: 0, upperValue: int.MaxValue, isOrdered: true, isReadOnly: false, isDerived: true, isDerivedUnion: false, isUnique: true, defaultValue: null)] [Implements(implementation: "IInstantiationExpression.Argument")] @@ -368,11 +368,11 @@ public partial class SelectExpression : ISelectExpression /// /// Whether all things that meet the classification conditions of this Type must be classified by the - /// Type. (A Type gives conditions that must be met by whatever it - /// classifies, but when isSufficient is false, things may meet those conditions but still not be - /// classified by the Type. For example, a Type Car that is not sufficient could require everything it - /// classifies to have four wheels, but not all four wheeled things would classify as cars. However, if - /// the Type Car were sufficient, it would classify all four-wheeled things.) + /// Type.(A Type gives conditions that must be met by whatever it classifies, but when isSufficient + /// is false, things may meet those conditions but still not be classified by the Type. For example, a + /// Type Car that is not sufficient could require everything it classifies to have four wheels, but not + /// all four wheeled things would classify as cars. However, if the Type Car were sufficient, it would + /// classify all four-wheeled things.) /// [Property(xmiId: "_18_5_3_b9102da_1564072709069_937523_30797", aggregation: AggregationKind.None, lowerValue: 1, upperValue: 1, isOrdered: false, isReadOnly: false, isDerived: false, isDerivedUnion: false, isUnique: true, defaultValue: "false")] [Implements(implementation: "IType.IsSufficient")] diff --git a/SysML2.NET/Core/AutoGenDto/SendActionUsage.cs b/SysML2.NET/Core/AutoGenDto/SendActionUsage.cs index 6846c04e8..34e0c7fe3 100644 --- a/SysML2.NET/Core/AutoGenDto/SendActionUsage.cs +++ b/SysML2.NET/Core/AutoGenDto/SendActionUsage.cs @@ -391,11 +391,11 @@ public partial class SendActionUsage : ISendActionUsage /// /// Whether all things that meet the classification conditions of this Type must be classified by the - /// Type. (A Type gives conditions that must be met by whatever it - /// classifies, but when isSufficient is false, things may meet those conditions but still not be - /// classified by the Type. For example, a Type Car that is not sufficient could require everything it - /// classifies to have four wheels, but not all four wheeled things would classify as cars. However, if - /// the Type Car were sufficient, it would classify all four-wheeled things.) + /// Type.(A Type gives conditions that must be met by whatever it classifies, but when isSufficient + /// is false, things may meet those conditions but still not be classified by the Type. For example, a + /// Type Car that is not sufficient could require everything it classifies to have four wheels, but not + /// all four wheeled things would classify as cars. However, if the Type Car were sufficient, it would + /// classify all four-wheeled things.) /// [Property(xmiId: "_18_5_3_b9102da_1564072709069_937523_30797", aggregation: AggregationKind.None, lowerValue: 1, upperValue: 1, isOrdered: false, isReadOnly: false, isDerived: false, isDerivedUnion: false, isUnique: true, defaultValue: "false")] [Implements(implementation: "IType.IsSufficient")] @@ -433,9 +433,9 @@ bool Core.Features.IFeature.IsVariable /// Whether this Usage may be time varying (that is, whether it is featured by the snapshots of its /// owningType, rather than being featured by the owningType itself). However, if isConstant is also /// true, then the value of the Usage is nevertheless constant over the entire duration of an instance - /// of its owningType (that is, it has the same value on all snapshots). The - /// property mayTimeVary redefines the KerML property Feature::isVariable, making it derived. The - /// property isConstant is inherited from Feature. + /// of its owningType (that is, it has the same value on all snapshots).The property mayTimeVary + /// redefines the KerML property Feature::isVariable, making it derived. The property isConstant is + /// inherited from Feature. /// [Property(xmiId: "_2022x_2_12e503d9_1737227200362_771035_69", aggregation: AggregationKind.None, lowerValue: 1, upperValue: 1, isOrdered: false, isReadOnly: false, isDerived: true, isDerivedUnion: false, isUnique: true, defaultValue: null)] [RedefinedProperty(propertyName: "_2022x_2_12e503d9_1725998273002_23711_212")] @@ -536,8 +536,8 @@ bool Core.Features.IFeature.IsVariable /// /// The ConnectorAsUsages that are nestedUsages of this Usage. Note that this list includes - /// BindingConnectorAsUsages, SuccessionAsUsages, and FlowConnectionUsages because these are - /// ConnectorAsUsages even though they are not ConnectionUsages. + /// BindingConnectorAsUsages, SuccessionAsUsages, and FlowUsages because these are ConnectorAsUsages + /// even though they are not ConnectionUsages. /// [Property(xmiId: "_19_0_2_12e503d9_1591479754895_422988_1242", aggregation: AggregationKind.None, lowerValue: 0, upperValue: int.MaxValue, isOrdered: true, isReadOnly: false, isDerived: true, isDerivedUnion: false, isUnique: true, defaultValue: null)] [SubsettedProperty(propertyName: "_18_5_3_12e503d9_1565472757327_162097_21259")] @@ -585,7 +585,7 @@ bool Core.Features.IFeature.IsVariable public List nestedItem { get; internal set; } = []; /// - /// The MetadataUsages that are nestedUsages of this of this Usage. + /// The MetadataUsages that are ownedMembers of this of this Usage. /// [Property(xmiId: "_19_0_4_12e503d9_1661488589862_120785_2970", aggregation: AggregationKind.None, lowerValue: 0, upperValue: int.MaxValue, isOrdered: true, isReadOnly: false, isDerived: true, isDerivedUnion: false, isUnique: true, defaultValue: null)] [SubsettedProperty(propertyName: "_19_0_2_12e503d9_1591482421103_284620_2978")] @@ -1011,9 +1011,9 @@ bool Core.Features.IFeature.IsVariable /// /// An Expression whose result is bound to the payload input parameter of this SendActionUsage. /// - [Property(xmiId: "_19_0_4_12e503d9_1612814399422_336683_143", aggregation: AggregationKind.None, lowerValue: 1, upperValue: 1, isOrdered: false, isReadOnly: false, isDerived: true, isDerivedUnion: false, isUnique: true, defaultValue: null)] + [Property(xmiId: "_19_0_4_12e503d9_1612814399422_336683_143", aggregation: AggregationKind.None, lowerValue: 0, upperValue: 1, isOrdered: false, isReadOnly: false, isDerived: true, isDerivedUnion: false, isUnique: true, defaultValue: null)] [Implements(implementation: "ISendActionUsage.PayloadArgument")] - public Guid payloadArgument { get; internal set; } + public Guid? payloadArgument { get; internal set; } /// /// The kind of temporal portion (time slice or snapshot) is represented by this OccurrenceUsage. If diff --git a/SysML2.NET/Core/AutoGenDto/StateDefinition.cs b/SysML2.NET/Core/AutoGenDto/StateDefinition.cs index 66efcfc87..725f2bc46 100644 --- a/SysML2.NET/Core/AutoGenDto/StateDefinition.cs +++ b/SysML2.NET/Core/AutoGenDto/StateDefinition.cs @@ -33,9 +33,9 @@ namespace SysML2.NET.Core.DTO.Systems.States /// /// A StateDefinition is the Definition of the Behavior of a system or part of a system in a certain - /// state condition. A StateDefinition may be related to up to three of its - /// ownedFeatures by StateBehaviorMembership Relationships, all of different kinds, corresponding to the - /// entry, do and exit actions of the StateDefinition. + /// state condition.A StateDefinition may be related to up to three of its ownedFeatures by + /// StateBehaviorMembership Relationships, all of different kinds, corresponding to the entry, do and + /// exit actions of the StateDefinition. /// [Class(xmiId: "_19_0_2_12e503d9_1575587534200_898246_600", isAbstract: false, isFinalSpecialization: false, isActive: false)] [GeneratedCode("SysML2.NET", "latest")] @@ -277,11 +277,11 @@ public partial class StateDefinition : IStateDefinition /// /// Whether all things that meet the classification conditions of this Type must be classified by the - /// Type. (A Type gives conditions that must be met by whatever it - /// classifies, but when isSufficient is false, things may meet those conditions but still not be - /// classified by the Type. For example, a Type Car that is not sufficient could require everything it - /// classifies to have four wheels, but not all four wheeled things would classify as cars. However, if - /// the Type Car were sufficient, it would classify all four-wheeled things.) + /// Type.(A Type gives conditions that must be met by whatever it classifies, but when isSufficient + /// is false, things may meet those conditions but still not be classified by the Type. For example, a + /// Type Car that is not sufficient could require everything it classifies to have four wheels, but not + /// all four wheeled things would classify as cars. However, if the Type Car were sufficient, it would + /// classify all four-wheeled things.) /// [Property(xmiId: "_18_5_3_b9102da_1564072709069_937523_30797", aggregation: AggregationKind.None, lowerValue: 1, upperValue: 1, isOrdered: false, isReadOnly: false, isDerived: false, isDerivedUnion: false, isUnique: true, defaultValue: "false")] [Implements(implementation: "IType.IsSufficient")] @@ -559,7 +559,7 @@ public partial class StateDefinition : IStateDefinition public List ownedMembership { get; internal set; } = []; /// - /// The MetadataUsages that are ownedUsages of this Definition. + /// The MetadataUsages that are ownedMembers of this Definition. /// [Property(xmiId: "_19_0_4_12e503d9_1661488358064_457109_2881", aggregation: AggregationKind.None, lowerValue: 0, upperValue: int.MaxValue, isOrdered: true, isReadOnly: false, isDerived: true, isDerivedUnion: false, isUnique: true, defaultValue: null)] [SubsettedProperty(propertyName: "_19_0_2_12e503d9_1591482567975_649284_3005")] diff --git a/SysML2.NET/Core/AutoGenDto/StateUsage.cs b/SysML2.NET/Core/AutoGenDto/StateUsage.cs index 73fb269c2..9b6d30521 100644 --- a/SysML2.NET/Core/AutoGenDto/StateUsage.cs +++ b/SysML2.NET/Core/AutoGenDto/StateUsage.cs @@ -35,10 +35,9 @@ namespace SysML2.NET.Core.DTO.Systems.States /// /// A StateUsage is an ActionUsage that is nominally the Usage of a StateDefinition. However, other - /// kinds of kernel Behaviors are also allowed as types, to permit use of Behaviors - /// A StateUsage may be related to up to three of its ownedFeatures by StateSubactionMembership - /// Relationships, all of different kinds, corresponding to the entry, do and exit actions of the - /// StateUsage. + /// kinds of kernel Behaviors are also allowed as types, to permit use of BehaviorsA StateUsage may be + /// related to up to three of its ownedFeatures by StateSubactionMembership Relationships, all of + /// different kinds, corresponding to the entry, do and exit actions of the StateUsage. /// [Class(xmiId: "_19_0_2_12e503d9_1575587557729_586912_651", isAbstract: false, isFinalSpecialization: false, isActive: false)] [GeneratedCode("SysML2.NET", "latest")] @@ -428,11 +427,11 @@ public partial class StateUsage : IStateUsage /// /// Whether all things that meet the classification conditions of this Type must be classified by the - /// Type. (A Type gives conditions that must be met by whatever it - /// classifies, but when isSufficient is false, things may meet those conditions but still not be - /// classified by the Type. For example, a Type Car that is not sufficient could require everything it - /// classifies to have four wheels, but not all four wheeled things would classify as cars. However, if - /// the Type Car were sufficient, it would classify all four-wheeled things.) + /// Type.(A Type gives conditions that must be met by whatever it classifies, but when isSufficient + /// is false, things may meet those conditions but still not be classified by the Type. For example, a + /// Type Car that is not sufficient could require everything it classifies to have four wheels, but not + /// all four wheeled things would classify as cars. However, if the Type Car were sufficient, it would + /// classify all four-wheeled things.) /// [Property(xmiId: "_18_5_3_b9102da_1564072709069_937523_30797", aggregation: AggregationKind.None, lowerValue: 1, upperValue: 1, isOrdered: false, isReadOnly: false, isDerived: false, isDerivedUnion: false, isUnique: true, defaultValue: "false")] [Implements(implementation: "IType.IsSufficient")] @@ -470,9 +469,9 @@ bool Core.Features.IFeature.IsVariable /// Whether this Usage may be time varying (that is, whether it is featured by the snapshots of its /// owningType, rather than being featured by the owningType itself). However, if isConstant is also /// true, then the value of the Usage is nevertheless constant over the entire duration of an instance - /// of its owningType (that is, it has the same value on all snapshots). The - /// property mayTimeVary redefines the KerML property Feature::isVariable, making it derived. The - /// property isConstant is inherited from Feature. + /// of its owningType (that is, it has the same value on all snapshots).The property mayTimeVary + /// redefines the KerML property Feature::isVariable, making it derived. The property isConstant is + /// inherited from Feature. /// [Property(xmiId: "_2022x_2_12e503d9_1737227200362_771035_69", aggregation: AggregationKind.None, lowerValue: 1, upperValue: 1, isOrdered: false, isReadOnly: false, isDerived: true, isDerivedUnion: false, isUnique: true, defaultValue: null)] [RedefinedProperty(propertyName: "_2022x_2_12e503d9_1725998273002_23711_212")] @@ -573,8 +572,8 @@ bool Core.Features.IFeature.IsVariable /// /// The ConnectorAsUsages that are nestedUsages of this Usage. Note that this list includes - /// BindingConnectorAsUsages, SuccessionAsUsages, and FlowConnectionUsages because these are - /// ConnectorAsUsages even though they are not ConnectionUsages. + /// BindingConnectorAsUsages, SuccessionAsUsages, and FlowUsages because these are ConnectorAsUsages + /// even though they are not ConnectionUsages. /// [Property(xmiId: "_19_0_2_12e503d9_1591479754895_422988_1242", aggregation: AggregationKind.None, lowerValue: 0, upperValue: int.MaxValue, isOrdered: true, isReadOnly: false, isDerived: true, isDerivedUnion: false, isUnique: true, defaultValue: null)] [SubsettedProperty(propertyName: "_18_5_3_12e503d9_1565472757327_162097_21259")] @@ -622,7 +621,7 @@ bool Core.Features.IFeature.IsVariable public List nestedItem { get; internal set; } = []; /// - /// The MetadataUsages that are nestedUsages of this of this Usage. + /// The MetadataUsages that are ownedMembers of this of this Usage. /// [Property(xmiId: "_19_0_4_12e503d9_1661488589862_120785_2970", aggregation: AggregationKind.None, lowerValue: 0, upperValue: int.MaxValue, isOrdered: true, isReadOnly: false, isDerived: true, isDerivedUnion: false, isUnique: true, defaultValue: null)] [SubsettedProperty(propertyName: "_19_0_2_12e503d9_1591482421103_284620_2978")] diff --git a/SysML2.NET/Core/AutoGenDto/Step.cs b/SysML2.NET/Core/AutoGenDto/Step.cs index c0bfb2bcf..d450d0ec7 100644 --- a/SysML2.NET/Core/AutoGenDto/Step.cs +++ b/SysML2.NET/Core/AutoGenDto/Step.cs @@ -336,11 +336,11 @@ public partial class Step : IStep /// /// Whether all things that meet the classification conditions of this Type must be classified by the - /// Type. (A Type gives conditions that must be met by whatever it - /// classifies, but when isSufficient is false, things may meet those conditions but still not be - /// classified by the Type. For example, a Type Car that is not sufficient could require everything it - /// classifies to have four wheels, but not all four wheeled things would classify as cars. However, if - /// the Type Car were sufficient, it would classify all four-wheeled things.) + /// Type.(A Type gives conditions that must be met by whatever it classifies, but when isSufficient + /// is false, things may meet those conditions but still not be classified by the Type. For example, a + /// Type Car that is not sufficient could require everything it classifies to have four wheels, but not + /// all four wheeled things would classify as cars. However, if the Type Car were sufficient, it would + /// classify all four-wheeled things.) /// [Property(xmiId: "_18_5_3_b9102da_1564072709069_937523_30797", aggregation: AggregationKind.None, lowerValue: 1, upperValue: 1, isOrdered: false, isReadOnly: false, isDerived: false, isDerivedUnion: false, isUnique: true, defaultValue: "false")] [Implements(implementation: "IType.IsSufficient")] diff --git a/SysML2.NET/Core/AutoGenDto/Structure.cs b/SysML2.NET/Core/AutoGenDto/Structure.cs index 646cee129..496bd00e8 100644 --- a/SysML2.NET/Core/AutoGenDto/Structure.cs +++ b/SysML2.NET/Core/AutoGenDto/Structure.cs @@ -215,11 +215,11 @@ public partial class Structure : IStructure /// /// Whether all things that meet the classification conditions of this Type must be classified by the - /// Type. (A Type gives conditions that must be met by whatever it - /// classifies, but when isSufficient is false, things may meet those conditions but still not be - /// classified by the Type. For example, a Type Car that is not sufficient could require everything it - /// classifies to have four wheels, but not all four wheeled things would classify as cars. However, if - /// the Type Car were sufficient, it would classify all four-wheeled things.) + /// Type.(A Type gives conditions that must be met by whatever it classifies, but when isSufficient + /// is false, things may meet those conditions but still not be classified by the Type. For example, a + /// Type Car that is not sufficient could require everything it classifies to have four wheels, but not + /// all four wheeled things would classify as cars. However, if the Type Car were sufficient, it would + /// classify all four-wheeled things.) /// [Property(xmiId: "_18_5_3_b9102da_1564072709069_937523_30797", aggregation: AggregationKind.None, lowerValue: 1, upperValue: 1, isOrdered: false, isReadOnly: false, isDerived: false, isDerivedUnion: false, isUnique: true, defaultValue: "false")] [Implements(implementation: "IType.IsSufficient")] diff --git a/SysML2.NET/Core/AutoGenDto/Succession.cs b/SysML2.NET/Core/AutoGenDto/Succession.cs index 5d84a8b77..618269dba 100644 --- a/SysML2.NET/Core/AutoGenDto/Succession.cs +++ b/SysML2.NET/Core/AutoGenDto/Succession.cs @@ -359,11 +359,11 @@ public partial class Succession : ISuccession /// /// Whether all things that meet the classification conditions of this Type must be classified by the - /// Type. (A Type gives conditions that must be met by whatever it - /// classifies, but when isSufficient is false, things may meet those conditions but still not be - /// classified by the Type. For example, a Type Car that is not sufficient could require everything it - /// classifies to have four wheels, but not all four wheeled things would classify as cars. However, if - /// the Type Car were sufficient, it would classify all four-wheeled things.) + /// Type.(A Type gives conditions that must be met by whatever it classifies, but when isSufficient + /// is false, things may meet those conditions but still not be classified by the Type. For example, a + /// Type Car that is not sufficient could require everything it classifies to have four wheels, but not + /// all four wheeled things would classify as cars. However, if the Type Car were sufficient, it would + /// classify all four-wheeled things.) /// [Property(xmiId: "_18_5_3_b9102da_1564072709069_937523_30797", aggregation: AggregationKind.None, lowerValue: 1, upperValue: 1, isOrdered: false, isReadOnly: false, isDerived: false, isDerivedUnion: false, isUnique: true, defaultValue: "false")] [Implements(implementation: "IType.IsSufficient")] diff --git a/SysML2.NET/Core/AutoGenDto/SuccessionAsUsage.cs b/SysML2.NET/Core/AutoGenDto/SuccessionAsUsage.cs index a889bc5e4..f02a2eb40 100644 --- a/SysML2.NET/Core/AutoGenDto/SuccessionAsUsage.cs +++ b/SysML2.NET/Core/AutoGenDto/SuccessionAsUsage.cs @@ -385,11 +385,11 @@ public partial class SuccessionAsUsage : ISuccessionAsUsage /// /// Whether all things that meet the classification conditions of this Type must be classified by the - /// Type. (A Type gives conditions that must be met by whatever it - /// classifies, but when isSufficient is false, things may meet those conditions but still not be - /// classified by the Type. For example, a Type Car that is not sufficient could require everything it - /// classifies to have four wheels, but not all four wheeled things would classify as cars. However, if - /// the Type Car were sufficient, it would classify all four-wheeled things.) + /// Type.(A Type gives conditions that must be met by whatever it classifies, but when isSufficient + /// is false, things may meet those conditions but still not be classified by the Type. For example, a + /// Type Car that is not sufficient could require everything it classifies to have four wheels, but not + /// all four wheeled things would classify as cars. However, if the Type Car were sufficient, it would + /// classify all four-wheeled things.) /// [Property(xmiId: "_18_5_3_b9102da_1564072709069_937523_30797", aggregation: AggregationKind.None, lowerValue: 1, upperValue: 1, isOrdered: false, isReadOnly: false, isDerived: false, isDerivedUnion: false, isUnique: true, defaultValue: "false")] [Implements(implementation: "IType.IsSufficient")] @@ -427,9 +427,9 @@ bool Core.Features.IFeature.IsVariable /// Whether this Usage may be time varying (that is, whether it is featured by the snapshots of its /// owningType, rather than being featured by the owningType itself). However, if isConstant is also /// true, then the value of the Usage is nevertheless constant over the entire duration of an instance - /// of its owningType (that is, it has the same value on all snapshots). The - /// property mayTimeVary redefines the KerML property Feature::isVariable, making it derived. The - /// property isConstant is inherited from Feature. + /// of its owningType (that is, it has the same value on all snapshots).The property mayTimeVary + /// redefines the KerML property Feature::isVariable, making it derived. The property isConstant is + /// inherited from Feature. /// [Property(xmiId: "_2022x_2_12e503d9_1737227200362_771035_69", aggregation: AggregationKind.None, lowerValue: 1, upperValue: 1, isOrdered: false, isReadOnly: false, isDerived: true, isDerivedUnion: false, isUnique: true, defaultValue: null)] [RedefinedProperty(propertyName: "_2022x_2_12e503d9_1725998273002_23711_212")] @@ -530,8 +530,8 @@ bool Core.Features.IFeature.IsVariable /// /// The ConnectorAsUsages that are nestedUsages of this Usage. Note that this list includes - /// BindingConnectorAsUsages, SuccessionAsUsages, and FlowConnectionUsages because these are - /// ConnectorAsUsages even though they are not ConnectionUsages. + /// BindingConnectorAsUsages, SuccessionAsUsages, and FlowUsages because these are ConnectorAsUsages + /// even though they are not ConnectionUsages. /// [Property(xmiId: "_19_0_2_12e503d9_1591479754895_422988_1242", aggregation: AggregationKind.None, lowerValue: 0, upperValue: int.MaxValue, isOrdered: true, isReadOnly: false, isDerived: true, isDerivedUnion: false, isUnique: true, defaultValue: null)] [SubsettedProperty(propertyName: "_18_5_3_12e503d9_1565472757327_162097_21259")] @@ -579,7 +579,7 @@ bool Core.Features.IFeature.IsVariable public List nestedItem { get; internal set; } = []; /// - /// The MetadataUsages that are nestedUsages of this of this Usage. + /// The MetadataUsages that are ownedMembers of this of this Usage. /// [Property(xmiId: "_19_0_4_12e503d9_1661488589862_120785_2970", aggregation: AggregationKind.None, lowerValue: 0, upperValue: int.MaxValue, isOrdered: true, isReadOnly: false, isDerived: true, isDerivedUnion: false, isUnique: true, defaultValue: null)] [SubsettedProperty(propertyName: "_19_0_2_12e503d9_1591482421103_284620_2978")] diff --git a/SysML2.NET/Core/AutoGenDto/SuccessionFlow.cs b/SysML2.NET/Core/AutoGenDto/SuccessionFlow.cs index bfa68ce92..4134a9e90 100644 --- a/SysML2.NET/Core/AutoGenDto/SuccessionFlow.cs +++ b/SysML2.NET/Core/AutoGenDto/SuccessionFlow.cs @@ -391,11 +391,11 @@ public partial class SuccessionFlow : ISuccessionFlow /// /// Whether all things that meet the classification conditions of this Type must be classified by the - /// Type. (A Type gives conditions that must be met by whatever it - /// classifies, but when isSufficient is false, things may meet those conditions but still not be - /// classified by the Type. For example, a Type Car that is not sufficient could require everything it - /// classifies to have four wheels, but not all four wheeled things would classify as cars. However, if - /// the Type Car were sufficient, it would classify all four-wheeled things.) + /// Type.(A Type gives conditions that must be met by whatever it classifies, but when isSufficient + /// is false, things may meet those conditions but still not be classified by the Type. For example, a + /// Type Car that is not sufficient could require everything it classifies to have four wheels, but not + /// all four wheeled things would classify as cars. However, if the Type Car were sufficient, it would + /// classify all four-wheeled things.) /// [Property(xmiId: "_18_5_3_b9102da_1564072709069_937523_30797", aggregation: AggregationKind.None, lowerValue: 1, upperValue: 1, isOrdered: false, isReadOnly: false, isDerived: false, isDerivedUnion: false, isUnique: true, defaultValue: "false")] [Implements(implementation: "IType.IsSufficient")] diff --git a/SysML2.NET/Core/AutoGenDto/SuccessionFlowUsage.cs b/SysML2.NET/Core/AutoGenDto/SuccessionFlowUsage.cs index 1441103e2..bddd43ea4 100644 --- a/SysML2.NET/Core/AutoGenDto/SuccessionFlowUsage.cs +++ b/SysML2.NET/Core/AutoGenDto/SuccessionFlowUsage.cs @@ -453,11 +453,11 @@ public partial class SuccessionFlowUsage : ISuccessionFlowUsage /// /// Whether all things that meet the classification conditions of this Type must be classified by the - /// Type. (A Type gives conditions that must be met by whatever it - /// classifies, but when isSufficient is false, things may meet those conditions but still not be - /// classified by the Type. For example, a Type Car that is not sufficient could require everything it - /// classifies to have four wheels, but not all four wheeled things would classify as cars. However, if - /// the Type Car were sufficient, it would classify all four-wheeled things.) + /// Type.(A Type gives conditions that must be met by whatever it classifies, but when isSufficient + /// is false, things may meet those conditions but still not be classified by the Type. For example, a + /// Type Car that is not sufficient could require everything it classifies to have four wheels, but not + /// all four wheeled things would classify as cars. However, if the Type Car were sufficient, it would + /// classify all four-wheeled things.) /// [Property(xmiId: "_18_5_3_b9102da_1564072709069_937523_30797", aggregation: AggregationKind.None, lowerValue: 1, upperValue: 1, isOrdered: false, isReadOnly: false, isDerived: false, isDerivedUnion: false, isUnique: true, defaultValue: "false")] [Implements(implementation: "IType.IsSufficient")] @@ -495,9 +495,9 @@ bool Core.Features.IFeature.IsVariable /// Whether this Usage may be time varying (that is, whether it is featured by the snapshots of its /// owningType, rather than being featured by the owningType itself). However, if isConstant is also /// true, then the value of the Usage is nevertheless constant over the entire duration of an instance - /// of its owningType (that is, it has the same value on all snapshots). The - /// property mayTimeVary redefines the KerML property Feature::isVariable, making it derived. The - /// property isConstant is inherited from Feature. + /// of its owningType (that is, it has the same value on all snapshots).The property mayTimeVary + /// redefines the KerML property Feature::isVariable, making it derived. The property isConstant is + /// inherited from Feature. /// [Property(xmiId: "_2022x_2_12e503d9_1737227200362_771035_69", aggregation: AggregationKind.None, lowerValue: 1, upperValue: 1, isOrdered: false, isReadOnly: false, isDerived: true, isDerivedUnion: false, isUnique: true, defaultValue: null)] [RedefinedProperty(propertyName: "_2022x_2_12e503d9_1725998273002_23711_212")] @@ -598,8 +598,8 @@ bool Core.Features.IFeature.IsVariable /// /// The ConnectorAsUsages that are nestedUsages of this Usage. Note that this list includes - /// BindingConnectorAsUsages, SuccessionAsUsages, and FlowConnectionUsages because these are - /// ConnectorAsUsages even though they are not ConnectionUsages. + /// BindingConnectorAsUsages, SuccessionAsUsages, and FlowUsages because these are ConnectorAsUsages + /// even though they are not ConnectionUsages. /// [Property(xmiId: "_19_0_2_12e503d9_1591479754895_422988_1242", aggregation: AggregationKind.None, lowerValue: 0, upperValue: int.MaxValue, isOrdered: true, isReadOnly: false, isDerived: true, isDerivedUnion: false, isUnique: true, defaultValue: null)] [SubsettedProperty(propertyName: "_18_5_3_12e503d9_1565472757327_162097_21259")] @@ -647,7 +647,7 @@ bool Core.Features.IFeature.IsVariable public List nestedItem { get; internal set; } = []; /// - /// The MetadataUsages that are nestedUsages of this of this Usage. + /// The MetadataUsages that are ownedMembers of this of this Usage. /// [Property(xmiId: "_19_0_4_12e503d9_1661488589862_120785_2970", aggregation: AggregationKind.None, lowerValue: 0, upperValue: int.MaxValue, isOrdered: true, isReadOnly: false, isDerived: true, isDerivedUnion: false, isUnique: true, defaultValue: null)] [SubsettedProperty(propertyName: "_19_0_2_12e503d9_1591482421103_284620_2978")] diff --git a/SysML2.NET/Core/AutoGenDto/TerminateActionUsage.cs b/SysML2.NET/Core/AutoGenDto/TerminateActionUsage.cs index e596ea905..ac44f5401 100644 --- a/SysML2.NET/Core/AutoGenDto/TerminateActionUsage.cs +++ b/SysML2.NET/Core/AutoGenDto/TerminateActionUsage.cs @@ -390,11 +390,11 @@ public partial class TerminateActionUsage : ITerminateActionUsage /// /// Whether all things that meet the classification conditions of this Type must be classified by the - /// Type. (A Type gives conditions that must be met by whatever it - /// classifies, but when isSufficient is false, things may meet those conditions but still not be - /// classified by the Type. For example, a Type Car that is not sufficient could require everything it - /// classifies to have four wheels, but not all four wheeled things would classify as cars. However, if - /// the Type Car were sufficient, it would classify all four-wheeled things.) + /// Type.(A Type gives conditions that must be met by whatever it classifies, but when isSufficient + /// is false, things may meet those conditions but still not be classified by the Type. For example, a + /// Type Car that is not sufficient could require everything it classifies to have four wheels, but not + /// all four wheeled things would classify as cars. However, if the Type Car were sufficient, it would + /// classify all four-wheeled things.) /// [Property(xmiId: "_18_5_3_b9102da_1564072709069_937523_30797", aggregation: AggregationKind.None, lowerValue: 1, upperValue: 1, isOrdered: false, isReadOnly: false, isDerived: false, isDerivedUnion: false, isUnique: true, defaultValue: "false")] [Implements(implementation: "IType.IsSufficient")] @@ -432,9 +432,9 @@ bool Core.Features.IFeature.IsVariable /// Whether this Usage may be time varying (that is, whether it is featured by the snapshots of its /// owningType, rather than being featured by the owningType itself). However, if isConstant is also /// true, then the value of the Usage is nevertheless constant over the entire duration of an instance - /// of its owningType (that is, it has the same value on all snapshots). The - /// property mayTimeVary redefines the KerML property Feature::isVariable, making it derived. The - /// property isConstant is inherited from Feature. + /// of its owningType (that is, it has the same value on all snapshots).The property mayTimeVary + /// redefines the KerML property Feature::isVariable, making it derived. The property isConstant is + /// inherited from Feature. /// [Property(xmiId: "_2022x_2_12e503d9_1737227200362_771035_69", aggregation: AggregationKind.None, lowerValue: 1, upperValue: 1, isOrdered: false, isReadOnly: false, isDerived: true, isDerivedUnion: false, isUnique: true, defaultValue: null)] [RedefinedProperty(propertyName: "_2022x_2_12e503d9_1725998273002_23711_212")] @@ -535,8 +535,8 @@ bool Core.Features.IFeature.IsVariable /// /// The ConnectorAsUsages that are nestedUsages of this Usage. Note that this list includes - /// BindingConnectorAsUsages, SuccessionAsUsages, and FlowConnectionUsages because these are - /// ConnectorAsUsages even though they are not ConnectionUsages. + /// BindingConnectorAsUsages, SuccessionAsUsages, and FlowUsages because these are ConnectorAsUsages + /// even though they are not ConnectionUsages. /// [Property(xmiId: "_19_0_2_12e503d9_1591479754895_422988_1242", aggregation: AggregationKind.None, lowerValue: 0, upperValue: int.MaxValue, isOrdered: true, isReadOnly: false, isDerived: true, isDerivedUnion: false, isUnique: true, defaultValue: null)] [SubsettedProperty(propertyName: "_18_5_3_12e503d9_1565472757327_162097_21259")] @@ -584,7 +584,7 @@ bool Core.Features.IFeature.IsVariable public List nestedItem { get; internal set; } = []; /// - /// The MetadataUsages that are nestedUsages of this of this Usage. + /// The MetadataUsages that are ownedMembers of this of this Usage. /// [Property(xmiId: "_19_0_4_12e503d9_1661488589862_120785_2970", aggregation: AggregationKind.None, lowerValue: 0, upperValue: int.MaxValue, isOrdered: true, isReadOnly: false, isDerived: true, isDerivedUnion: false, isUnique: true, defaultValue: null)] [SubsettedProperty(propertyName: "_19_0_2_12e503d9_1591482421103_284620_2978")] diff --git a/SysML2.NET/Core/AutoGenDto/TextualRepresentation.cs b/SysML2.NET/Core/AutoGenDto/TextualRepresentation.cs index 761fc7b8a..bf1ebb077 100644 --- a/SysML2.NET/Core/AutoGenDto/TextualRepresentation.cs +++ b/SysML2.NET/Core/AutoGenDto/TextualRepresentation.cs @@ -35,30 +35,26 @@ namespace SysML2.NET.Core.DTO.Root.Annotations /// given language. The representedElement must be the owner of the TextualRepresentation. The named /// language can be a natural language, in which case the body is an informal representation, or an /// artificial language, in which case the body is expected to be a formal, machine-parsable - /// representation. If the named language of a TextualRepresentation is - /// machine-parsable, then the body text should be legal input text as defined for that language. The - /// interpretation of the named language string shall be case insensitive. The following language names - /// are defined to correspond to the given standard languages: - /// - /// - /// - /// - ///
kerml Kernel Modeling Language
ocl Object Constraint Language
alfAction Language for fUML
Other - /// specifications may define specific language strings, other than those shown above, to be used to - /// indicate the use of languages from those specifications in KerML TextualRepresentation. - /// If the language of a TextualRepresentation is "kerml", then the body text shall - /// be a legal representation of the representedElement in the KerML textual concrete syntax. A - /// conforming tool can use such a TextualRepresentation Annotation to record the original KerML - /// concrete syntax text from which an Element was parsed. In this case, it is a tool responsibility to - /// ensure that the body of the TextualRepresentation remains correct (or the Annotation is removed) if - /// the annotated Element changes other than by re-parsing the body text. An - /// Element with a TextualRepresentation in a language other than KerML is essentially a semantically - /// "opaque" Element specified in the other language. However, a conforming KerML tool may - /// interpret such an element consistently with the specification of the named language. + /// representation.If the named language of a TextualRepresentation is machine-parsable, then the body + /// text should be legal input text as defined for that language. The interpretation of the named + /// language string shall be case insensitive. The following language names are defined to correspond to + /// the given standard languages:
kerml Kernel Modeling Language
ocl Object Constraint + /// Language
alf Action Language for fUML
Other specifications may + /// define specific language strings, other than those shown above, to be used to indicate the use of + /// languages from those specifications in KerML TextualRepresentation.If the language of a + /// TextualRepresentation is "kerml", then the body text shall be a legal representation of + /// the representedElement in the KerML textual concrete syntax. A conforming tool can use such a + /// TextualRepresentation Annotation to record the original KerML concrete syntax text from which an + /// Element was parsed. In this case, it is a tool responsibility to ensure that the body of the + /// TextualRepresentation remains correct (or the Annotation is removed) if the annotated Element + /// changes other than by re-parsing the body text.An Element with a TextualRepresentation in a language + /// other than KerML is essentially a semantically "opaque" Element specified in the other + /// language. However, a conforming KerML tool may interpret such an element consistently with the + /// specification of the named language. /// [Class(xmiId: "_19_0_2_12e503d9_1594152214531_455349_2448", isAbstract: false, isFinalSpecialization: false, isActive: false)] [GeneratedCode("SysML2.NET", "latest")] diff --git a/SysML2.NET/Core/AutoGenDto/TransitionUsage.cs b/SysML2.NET/Core/AutoGenDto/TransitionUsage.cs index 3d2812389..ec657537a 100644 --- a/SysML2.NET/Core/AutoGenDto/TransitionUsage.cs +++ b/SysML2.NET/Core/AutoGenDto/TransitionUsage.cs @@ -37,9 +37,9 @@ namespace SysML2.NET.Core.DTO.Systems.States /// A TransitionUsage is an ActionUsage representing a triggered transition between ActionUsages or /// StateUsages. When triggered by a triggerAction, when its guardExpression is true, the /// TransitionUsage asserts that its source is exited, then its effectAction (if any) is performed, and - /// then its target is entered. A TransitionUsage can be related to some of its - /// ownedFeatures using TransitionFeatureMembership Relationships, corresponding to the triggerAction, - /// guardExpression and effectAction of the TransitionUsage. + /// then its target is entered.A TransitionUsage can be related to some of its ownedFeatures using + /// TransitionFeatureMembership Relationships, corresponding to the triggerAction, guardExpression and + /// effectAction of the TransitionUsage. /// [Class(xmiId: "_19_0_2_12e503d9_1575672078353_626298_450", isAbstract: false, isFinalSpecialization: false, isActive: false)] [GeneratedCode("SysML2.NET", "latest")] @@ -412,11 +412,11 @@ public partial class TransitionUsage : ITransitionUsage /// /// Whether all things that meet the classification conditions of this Type must be classified by the - /// Type. (A Type gives conditions that must be met by whatever it - /// classifies, but when isSufficient is false, things may meet those conditions but still not be - /// classified by the Type. For example, a Type Car that is not sufficient could require everything it - /// classifies to have four wheels, but not all four wheeled things would classify as cars. However, if - /// the Type Car were sufficient, it would classify all four-wheeled things.) + /// Type.(A Type gives conditions that must be met by whatever it classifies, but when isSufficient + /// is false, things may meet those conditions but still not be classified by the Type. For example, a + /// Type Car that is not sufficient could require everything it classifies to have four wheels, but not + /// all four wheeled things would classify as cars. However, if the Type Car were sufficient, it would + /// classify all four-wheeled things.) /// [Property(xmiId: "_18_5_3_b9102da_1564072709069_937523_30797", aggregation: AggregationKind.None, lowerValue: 1, upperValue: 1, isOrdered: false, isReadOnly: false, isDerived: false, isDerivedUnion: false, isUnique: true, defaultValue: "false")] [Implements(implementation: "IType.IsSufficient")] @@ -454,9 +454,9 @@ bool Core.Features.IFeature.IsVariable /// Whether this Usage may be time varying (that is, whether it is featured by the snapshots of its /// owningType, rather than being featured by the owningType itself). However, if isConstant is also /// true, then the value of the Usage is nevertheless constant over the entire duration of an instance - /// of its owningType (that is, it has the same value on all snapshots). The - /// property mayTimeVary redefines the KerML property Feature::isVariable, making it derived. The - /// property isConstant is inherited from Feature. + /// of its owningType (that is, it has the same value on all snapshots).The property mayTimeVary + /// redefines the KerML property Feature::isVariable, making it derived. The property isConstant is + /// inherited from Feature. /// [Property(xmiId: "_2022x_2_12e503d9_1737227200362_771035_69", aggregation: AggregationKind.None, lowerValue: 1, upperValue: 1, isOrdered: false, isReadOnly: false, isDerived: true, isDerivedUnion: false, isUnique: true, defaultValue: null)] [RedefinedProperty(propertyName: "_2022x_2_12e503d9_1725998273002_23711_212")] @@ -557,8 +557,8 @@ bool Core.Features.IFeature.IsVariable /// /// The ConnectorAsUsages that are nestedUsages of this Usage. Note that this list includes - /// BindingConnectorAsUsages, SuccessionAsUsages, and FlowConnectionUsages because these are - /// ConnectorAsUsages even though they are not ConnectionUsages. + /// BindingConnectorAsUsages, SuccessionAsUsages, and FlowUsages because these are ConnectorAsUsages + /// even though they are not ConnectionUsages. /// [Property(xmiId: "_19_0_2_12e503d9_1591479754895_422988_1242", aggregation: AggregationKind.None, lowerValue: 0, upperValue: int.MaxValue, isOrdered: true, isReadOnly: false, isDerived: true, isDerivedUnion: false, isUnique: true, defaultValue: null)] [SubsettedProperty(propertyName: "_18_5_3_12e503d9_1565472757327_162097_21259")] @@ -606,7 +606,7 @@ bool Core.Features.IFeature.IsVariable public List nestedItem { get; internal set; } = []; /// - /// The MetadataUsages that are nestedUsages of this of this Usage. + /// The MetadataUsages that are ownedMembers of this of this Usage. /// [Property(xmiId: "_19_0_4_12e503d9_1661488589862_120785_2970", aggregation: AggregationKind.None, lowerValue: 0, upperValue: int.MaxValue, isOrdered: true, isReadOnly: false, isDerived: true, isDerivedUnion: false, isUnique: true, defaultValue: null)] [SubsettedProperty(propertyName: "_19_0_2_12e503d9_1591482421103_284620_2978")] diff --git a/SysML2.NET/Core/AutoGenDto/TriggerInvocationExpression.cs b/SysML2.NET/Core/AutoGenDto/TriggerInvocationExpression.cs index c9fd27288..e05a7b7c0 100644 --- a/SysML2.NET/Core/AutoGenDto/TriggerInvocationExpression.cs +++ b/SysML2.NET/Core/AutoGenDto/TriggerInvocationExpression.cs @@ -58,8 +58,8 @@ public partial class TriggerInvocationExpression : ITriggerInvocationExpression /// /// The Expressions whose results are bound to features of the instantiatedType. The arguments are /// ordered consistent with the order of the features, though they may not be one-to-one with all the - /// features. Note. The derivation of argument is given in - /// the concrete subclasses of InstantiationExpression. + /// features.Note. The derivation of argument is given in the concrete subclasses of + /// InstantiationExpression. /// [Property(xmiId: "_2022x_2_12e503d9_1739134437590_328753_108", aggregation: AggregationKind.None, lowerValue: 0, upperValue: int.MaxValue, isOrdered: true, isReadOnly: false, isDerived: true, isDerivedUnion: false, isUnique: true, defaultValue: null)] [Implements(implementation: "IInstantiationExpression.Argument")] @@ -370,11 +370,11 @@ public partial class TriggerInvocationExpression : ITriggerInvocationExpression /// /// Whether all things that meet the classification conditions of this Type must be classified by the - /// Type. (A Type gives conditions that must be met by whatever it - /// classifies, but when isSufficient is false, things may meet those conditions but still not be - /// classified by the Type. For example, a Type Car that is not sufficient could require everything it - /// classifies to have four wheels, but not all four wheeled things would classify as cars. However, if - /// the Type Car were sufficient, it would classify all four-wheeled things.) + /// Type.(A Type gives conditions that must be met by whatever it classifies, but when isSufficient + /// is false, things may meet those conditions but still not be classified by the Type. For example, a + /// Type Car that is not sufficient could require everything it classifies to have four wheels, but not + /// all four wheeled things would classify as cars. However, if the Type Car were sufficient, it would + /// classify all four-wheeled things.) /// [Property(xmiId: "_18_5_3_b9102da_1564072709069_937523_30797", aggregation: AggregationKind.None, lowerValue: 1, upperValue: 1, isOrdered: false, isReadOnly: false, isDerived: false, isDerivedUnion: false, isUnique: true, defaultValue: "false")] [Implements(implementation: "IType.IsSufficient")] diff --git a/SysML2.NET/Core/AutoGenDto/Type.cs b/SysML2.NET/Core/AutoGenDto/Type.cs index 3985264cb..5c38161e0 100644 --- a/SysML2.NET/Core/AutoGenDto/Type.cs +++ b/SysML2.NET/Core/AutoGenDto/Type.cs @@ -215,11 +215,11 @@ public partial class Type : IType /// /// Whether all things that meet the classification conditions of this Type must be classified by the - /// Type. (A Type gives conditions that must be met by whatever it - /// classifies, but when isSufficient is false, things may meet those conditions but still not be - /// classified by the Type. For example, a Type Car that is not sufficient could require everything it - /// classifies to have four wheels, but not all four wheeled things would classify as cars. However, if - /// the Type Car were sufficient, it would classify all four-wheeled things.) + /// Type.(A Type gives conditions that must be met by whatever it classifies, but when isSufficient + /// is false, things may meet those conditions but still not be classified by the Type. For example, a + /// Type Car that is not sufficient could require everything it classifies to have four wheels, but not + /// all four wheeled things would classify as cars. However, if the Type Car were sufficient, it would + /// classify all four-wheeled things.) /// [Property(xmiId: "_18_5_3_b9102da_1564072709069_937523_30797", aggregation: AggregationKind.None, lowerValue: 1, upperValue: 1, isOrdered: false, isReadOnly: false, isDerived: false, isDerivedUnion: false, isUnique: true, defaultValue: "false")] [Implements(implementation: "IType.IsSufficient")] diff --git a/SysML2.NET/Core/AutoGenDto/Usage.cs b/SysML2.NET/Core/AutoGenDto/Usage.cs index 1edfaf591..6a5c5f791 100644 --- a/SysML2.NET/Core/AutoGenDto/Usage.cs +++ b/SysML2.NET/Core/AutoGenDto/Usage.cs @@ -33,14 +33,13 @@ namespace SysML2.NET.Core.DTO.Systems.DefinitionAndUsage using SysML2.NET.Decorators; /// - /// A Usage is a usage of a Definition. A Usage may have nestedUsages that model - /// features that apply in the context of the owningUsage. A Usage may also have Definitions nested in - /// it, but this has no semantic significance, other than the nested scoping resulting from the Usage - /// being considered as a Namespace for any nested Definitions. However, if a - /// Usage has isVariation = true, then it represents a variation point Usage. In this case, all of its - /// members must be variant Usages, related to the Usage by VariantMembership Relationships. Rather than - /// being features of the Usage, variant Usages model different concrete alternatives that can be chosen - /// to fill in for the variation point Usage. + /// A Usage is a usage of a Definition.A Usage may have nestedUsages that model features that apply in + /// the context of the owningUsage. A Usage may also have Definitions nested in it, but this has no + /// semantic significance, other than the nested scoping resulting from the Usage being considered as a + /// Namespace for any nested Definitions.However, if a Usage has isVariation = true, then it represents + /// a variation point Usage. In this case, all of its members must be variant Usages, related to the + /// Usage by VariantMembership Relationships. Rather than being features of the Usage, variant Usages + /// model different concrete alternatives that can be chosen to fill in for the variation point Usage. /// [Class(xmiId: "_18_5_3_12e503d9_1565469997820_598571_19982", isAbstract: false, isFinalSpecialization: false, isActive: false)] [GeneratedCode("SysML2.NET", "latest")] @@ -356,11 +355,11 @@ public partial class Usage : IUsage /// /// Whether all things that meet the classification conditions of this Type must be classified by the - /// Type. (A Type gives conditions that must be met by whatever it - /// classifies, but when isSufficient is false, things may meet those conditions but still not be - /// classified by the Type. For example, a Type Car that is not sufficient could require everything it - /// classifies to have four wheels, but not all four wheeled things would classify as cars. However, if - /// the Type Car were sufficient, it would classify all four-wheeled things.) + /// Type.(A Type gives conditions that must be met by whatever it classifies, but when isSufficient + /// is false, things may meet those conditions but still not be classified by the Type. For example, a + /// Type Car that is not sufficient could require everything it classifies to have four wheels, but not + /// all four wheeled things would classify as cars. However, if the Type Car were sufficient, it would + /// classify all four-wheeled things.) /// [Property(xmiId: "_18_5_3_b9102da_1564072709069_937523_30797", aggregation: AggregationKind.None, lowerValue: 1, upperValue: 1, isOrdered: false, isReadOnly: false, isDerived: false, isDerivedUnion: false, isUnique: true, defaultValue: "false")] [Implements(implementation: "IType.IsSufficient")] @@ -398,9 +397,9 @@ bool Core.Features.IFeature.IsVariable /// Whether this Usage may be time varying (that is, whether it is featured by the snapshots of its /// owningType, rather than being featured by the owningType itself). However, if isConstant is also /// true, then the value of the Usage is nevertheless constant over the entire duration of an instance - /// of its owningType (that is, it has the same value on all snapshots). The - /// property mayTimeVary redefines the KerML property Feature::isVariable, making it derived. The - /// property isConstant is inherited from Feature. + /// of its owningType (that is, it has the same value on all snapshots).The property mayTimeVary + /// redefines the KerML property Feature::isVariable, making it derived. The property isConstant is + /// inherited from Feature. /// [Property(xmiId: "_2022x_2_12e503d9_1737227200362_771035_69", aggregation: AggregationKind.None, lowerValue: 1, upperValue: 1, isOrdered: false, isReadOnly: false, isDerived: true, isDerivedUnion: false, isUnique: true, defaultValue: null)] [RedefinedProperty(propertyName: "_2022x_2_12e503d9_1725998273002_23711_212")] @@ -501,8 +500,8 @@ bool Core.Features.IFeature.IsVariable /// /// The ConnectorAsUsages that are nestedUsages of this Usage. Note that this list includes - /// BindingConnectorAsUsages, SuccessionAsUsages, and FlowConnectionUsages because these are - /// ConnectorAsUsages even though they are not ConnectionUsages. + /// BindingConnectorAsUsages, SuccessionAsUsages, and FlowUsages because these are ConnectorAsUsages + /// even though they are not ConnectionUsages. /// [Property(xmiId: "_19_0_2_12e503d9_1591479754895_422988_1242", aggregation: AggregationKind.None, lowerValue: 0, upperValue: int.MaxValue, isOrdered: true, isReadOnly: false, isDerived: true, isDerivedUnion: false, isUnique: true, defaultValue: null)] [SubsettedProperty(propertyName: "_18_5_3_12e503d9_1565472757327_162097_21259")] @@ -550,7 +549,7 @@ bool Core.Features.IFeature.IsVariable public List nestedItem { get; internal set; } = []; /// - /// The MetadataUsages that are nestedUsages of this of this Usage. + /// The MetadataUsages that are ownedMembers of this of this Usage. /// [Property(xmiId: "_19_0_4_12e503d9_1661488589862_120785_2970", aggregation: AggregationKind.None, lowerValue: 0, upperValue: int.MaxValue, isOrdered: true, isReadOnly: false, isDerived: true, isDerivedUnion: false, isUnique: true, defaultValue: null)] [SubsettedProperty(propertyName: "_19_0_2_12e503d9_1591482421103_284620_2978")] diff --git a/SysML2.NET/Core/AutoGenDto/UseCaseDefinition.cs b/SysML2.NET/Core/AutoGenDto/UseCaseDefinition.cs index 297cc6b22..633982b84 100644 --- a/SysML2.NET/Core/AutoGenDto/UseCaseDefinition.cs +++ b/SysML2.NET/Core/AutoGenDto/UseCaseDefinition.cs @@ -273,9 +273,9 @@ public partial class UseCaseDefinition : IUseCaseDefinition /// /// Whether this Function can be used as the function of a model-level evaluable InvocationExpression. /// Certain Functions from the Kernel Functions Library are considered to have isModelLevelEvaluable = - /// true. For all other Functions it is false. Note: See the - /// specification of the KerML concrete syntax notation for Expressions for an identification of which - /// library Functions are model-level evaluable. + /// true. For all other Functions it is false.Note: See the specification of the KerML + /// concrete syntax notation for Expressions for an identification of which library Functions are + /// model-level evaluable. /// [Property(xmiId: "_19_0_4_12e503d9_1617395221463_139517_26381", aggregation: AggregationKind.None, lowerValue: 1, upperValue: 1, isOrdered: false, isReadOnly: false, isDerived: true, isDerivedUnion: false, isUnique: true, defaultValue: null)] [Implements(implementation: "IFunction.IsModelLevelEvaluable")] @@ -283,11 +283,11 @@ public partial class UseCaseDefinition : IUseCaseDefinition /// /// Whether all things that meet the classification conditions of this Type must be classified by the - /// Type. (A Type gives conditions that must be met by whatever it - /// classifies, but when isSufficient is false, things may meet those conditions but still not be - /// classified by the Type. For example, a Type Car that is not sufficient could require everything it - /// classifies to have four wheels, but not all four wheeled things would classify as cars. However, if - /// the Type Car were sufficient, it would classify all four-wheeled things.) + /// Type.(A Type gives conditions that must be met by whatever it classifies, but when isSufficient + /// is false, things may meet those conditions but still not be classified by the Type. For example, a + /// Type Car that is not sufficient could require everything it classifies to have four wheels, but not + /// all four wheeled things would classify as cars. However, if the Type Car were sufficient, it would + /// classify all four-wheeled things.) /// [Property(xmiId: "_18_5_3_b9102da_1564072709069_937523_30797", aggregation: AggregationKind.None, lowerValue: 1, upperValue: 1, isOrdered: false, isReadOnly: false, isDerived: false, isDerivedUnion: false, isUnique: true, defaultValue: "false")] [Implements(implementation: "IType.IsSufficient")] @@ -573,7 +573,7 @@ public partial class UseCaseDefinition : IUseCaseDefinition public List ownedMembership { get; internal set; } = []; /// - /// The MetadataUsages that are ownedUsages of this Definition. + /// The MetadataUsages that are ownedMembers of this Definition. /// [Property(xmiId: "_19_0_4_12e503d9_1661488358064_457109_2881", aggregation: AggregationKind.None, lowerValue: 0, upperValue: int.MaxValue, isOrdered: true, isReadOnly: false, isDerived: true, isDerivedUnion: false, isUnique: true, defaultValue: null)] [SubsettedProperty(propertyName: "_19_0_2_12e503d9_1591482567975_649284_3005")] diff --git a/SysML2.NET/Core/AutoGenDto/UseCaseUsage.cs b/SysML2.NET/Core/AutoGenDto/UseCaseUsage.cs index 0116dad50..6f67f0575 100644 --- a/SysML2.NET/Core/AutoGenDto/UseCaseUsage.cs +++ b/SysML2.NET/Core/AutoGenDto/UseCaseUsage.cs @@ -440,11 +440,11 @@ public partial class UseCaseUsage : IUseCaseUsage /// /// Whether all things that meet the classification conditions of this Type must be classified by the - /// Type. (A Type gives conditions that must be met by whatever it - /// classifies, but when isSufficient is false, things may meet those conditions but still not be - /// classified by the Type. For example, a Type Car that is not sufficient could require everything it - /// classifies to have four wheels, but not all four wheeled things would classify as cars. However, if - /// the Type Car were sufficient, it would classify all four-wheeled things.) + /// Type.(A Type gives conditions that must be met by whatever it classifies, but when isSufficient + /// is false, things may meet those conditions but still not be classified by the Type. For example, a + /// Type Car that is not sufficient could require everything it classifies to have four wheels, but not + /// all four wheeled things would classify as cars. However, if the Type Car were sufficient, it would + /// classify all four-wheeled things.) /// [Property(xmiId: "_18_5_3_b9102da_1564072709069_937523_30797", aggregation: AggregationKind.None, lowerValue: 1, upperValue: 1, isOrdered: false, isReadOnly: false, isDerived: false, isDerivedUnion: false, isUnique: true, defaultValue: "false")] [Implements(implementation: "IType.IsSufficient")] @@ -482,9 +482,9 @@ bool Core.Features.IFeature.IsVariable /// Whether this Usage may be time varying (that is, whether it is featured by the snapshots of its /// owningType, rather than being featured by the owningType itself). However, if isConstant is also /// true, then the value of the Usage is nevertheless constant over the entire duration of an instance - /// of its owningType (that is, it has the same value on all snapshots). The - /// property mayTimeVary redefines the KerML property Feature::isVariable, making it derived. The - /// property isConstant is inherited from Feature. + /// of its owningType (that is, it has the same value on all snapshots).The property mayTimeVary + /// redefines the KerML property Feature::isVariable, making it derived. The property isConstant is + /// inherited from Feature. /// [Property(xmiId: "_2022x_2_12e503d9_1737227200362_771035_69", aggregation: AggregationKind.None, lowerValue: 1, upperValue: 1, isOrdered: false, isReadOnly: false, isDerived: true, isDerivedUnion: false, isUnique: true, defaultValue: null)] [RedefinedProperty(propertyName: "_2022x_2_12e503d9_1725998273002_23711_212")] @@ -585,8 +585,8 @@ bool Core.Features.IFeature.IsVariable /// /// The ConnectorAsUsages that are nestedUsages of this Usage. Note that this list includes - /// BindingConnectorAsUsages, SuccessionAsUsages, and FlowConnectionUsages because these are - /// ConnectorAsUsages even though they are not ConnectionUsages. + /// BindingConnectorAsUsages, SuccessionAsUsages, and FlowUsages because these are ConnectorAsUsages + /// even though they are not ConnectionUsages. /// [Property(xmiId: "_19_0_2_12e503d9_1591479754895_422988_1242", aggregation: AggregationKind.None, lowerValue: 0, upperValue: int.MaxValue, isOrdered: true, isReadOnly: false, isDerived: true, isDerivedUnion: false, isUnique: true, defaultValue: null)] [SubsettedProperty(propertyName: "_18_5_3_12e503d9_1565472757327_162097_21259")] @@ -634,7 +634,7 @@ bool Core.Features.IFeature.IsVariable public List nestedItem { get; internal set; } = []; /// - /// The MetadataUsages that are nestedUsages of this of this Usage. + /// The MetadataUsages that are ownedMembers of this of this Usage. /// [Property(xmiId: "_19_0_4_12e503d9_1661488589862_120785_2970", aggregation: AggregationKind.None, lowerValue: 0, upperValue: int.MaxValue, isOrdered: true, isReadOnly: false, isDerived: true, isDerivedUnion: false, isUnique: true, defaultValue: null)] [SubsettedProperty(propertyName: "_19_0_2_12e503d9_1591482421103_284620_2978")] diff --git a/SysML2.NET/Core/AutoGenDto/VerificationCaseDefinition.cs b/SysML2.NET/Core/AutoGenDto/VerificationCaseDefinition.cs index 344d6b056..9ddd0adc4 100644 --- a/SysML2.NET/Core/AutoGenDto/VerificationCaseDefinition.cs +++ b/SysML2.NET/Core/AutoGenDto/VerificationCaseDefinition.cs @@ -264,9 +264,9 @@ public partial class VerificationCaseDefinition : IVerificationCaseDefinition /// /// Whether this Function can be used as the function of a model-level evaluable InvocationExpression. /// Certain Functions from the Kernel Functions Library are considered to have isModelLevelEvaluable = - /// true. For all other Functions it is false. Note: See the - /// specification of the KerML concrete syntax notation for Expressions for an identification of which - /// library Functions are model-level evaluable. + /// true. For all other Functions it is false.Note: See the specification of the KerML + /// concrete syntax notation for Expressions for an identification of which library Functions are + /// model-level evaluable. /// [Property(xmiId: "_19_0_4_12e503d9_1617395221463_139517_26381", aggregation: AggregationKind.None, lowerValue: 1, upperValue: 1, isOrdered: false, isReadOnly: false, isDerived: true, isDerivedUnion: false, isUnique: true, defaultValue: null)] [Implements(implementation: "IFunction.IsModelLevelEvaluable")] @@ -274,11 +274,11 @@ public partial class VerificationCaseDefinition : IVerificationCaseDefinition /// /// Whether all things that meet the classification conditions of this Type must be classified by the - /// Type. (A Type gives conditions that must be met by whatever it - /// classifies, but when isSufficient is false, things may meet those conditions but still not be - /// classified by the Type. For example, a Type Car that is not sufficient could require everything it - /// classifies to have four wheels, but not all four wheeled things would classify as cars. However, if - /// the Type Car were sufficient, it would classify all four-wheeled things.) + /// Type.(A Type gives conditions that must be met by whatever it classifies, but when isSufficient + /// is false, things may meet those conditions but still not be classified by the Type. For example, a + /// Type Car that is not sufficient could require everything it classifies to have four wheels, but not + /// all four wheeled things would classify as cars. However, if the Type Car were sufficient, it would + /// classify all four-wheeled things.) /// [Property(xmiId: "_18_5_3_b9102da_1564072709069_937523_30797", aggregation: AggregationKind.None, lowerValue: 1, upperValue: 1, isOrdered: false, isReadOnly: false, isDerived: false, isDerivedUnion: false, isUnique: true, defaultValue: "false")] [Implements(implementation: "IType.IsSufficient")] @@ -564,7 +564,7 @@ public partial class VerificationCaseDefinition : IVerificationCaseDefinition public List ownedMembership { get; internal set; } = []; /// - /// The MetadataUsages that are ownedUsages of this Definition. + /// The MetadataUsages that are ownedMembers of this Definition. /// [Property(xmiId: "_19_0_4_12e503d9_1661488358064_457109_2881", aggregation: AggregationKind.None, lowerValue: 0, upperValue: int.MaxValue, isOrdered: true, isReadOnly: false, isDerived: true, isDerivedUnion: false, isUnique: true, defaultValue: null)] [SubsettedProperty(propertyName: "_19_0_2_12e503d9_1591482567975_649284_3005")] diff --git a/SysML2.NET/Core/AutoGenDto/VerificationCaseUsage.cs b/SysML2.NET/Core/AutoGenDto/VerificationCaseUsage.cs index 61662f797..9e18c94f3 100644 --- a/SysML2.NET/Core/AutoGenDto/VerificationCaseUsage.cs +++ b/SysML2.NET/Core/AutoGenDto/VerificationCaseUsage.cs @@ -431,11 +431,11 @@ public partial class VerificationCaseUsage : IVerificationCaseUsage /// /// Whether all things that meet the classification conditions of this Type must be classified by the - /// Type. (A Type gives conditions that must be met by whatever it - /// classifies, but when isSufficient is false, things may meet those conditions but still not be - /// classified by the Type. For example, a Type Car that is not sufficient could require everything it - /// classifies to have four wheels, but not all four wheeled things would classify as cars. However, if - /// the Type Car were sufficient, it would classify all four-wheeled things.) + /// Type.(A Type gives conditions that must be met by whatever it classifies, but when isSufficient + /// is false, things may meet those conditions but still not be classified by the Type. For example, a + /// Type Car that is not sufficient could require everything it classifies to have four wheels, but not + /// all four wheeled things would classify as cars. However, if the Type Car were sufficient, it would + /// classify all four-wheeled things.) /// [Property(xmiId: "_18_5_3_b9102da_1564072709069_937523_30797", aggregation: AggregationKind.None, lowerValue: 1, upperValue: 1, isOrdered: false, isReadOnly: false, isDerived: false, isDerivedUnion: false, isUnique: true, defaultValue: "false")] [Implements(implementation: "IType.IsSufficient")] @@ -473,9 +473,9 @@ bool Core.Features.IFeature.IsVariable /// Whether this Usage may be time varying (that is, whether it is featured by the snapshots of its /// owningType, rather than being featured by the owningType itself). However, if isConstant is also /// true, then the value of the Usage is nevertheless constant over the entire duration of an instance - /// of its owningType (that is, it has the same value on all snapshots). The - /// property mayTimeVary redefines the KerML property Feature::isVariable, making it derived. The - /// property isConstant is inherited from Feature. + /// of its owningType (that is, it has the same value on all snapshots).The property mayTimeVary + /// redefines the KerML property Feature::isVariable, making it derived. The property isConstant is + /// inherited from Feature. /// [Property(xmiId: "_2022x_2_12e503d9_1737227200362_771035_69", aggregation: AggregationKind.None, lowerValue: 1, upperValue: 1, isOrdered: false, isReadOnly: false, isDerived: true, isDerivedUnion: false, isUnique: true, defaultValue: null)] [RedefinedProperty(propertyName: "_2022x_2_12e503d9_1725998273002_23711_212")] @@ -576,8 +576,8 @@ bool Core.Features.IFeature.IsVariable /// /// The ConnectorAsUsages that are nestedUsages of this Usage. Note that this list includes - /// BindingConnectorAsUsages, SuccessionAsUsages, and FlowConnectionUsages because these are - /// ConnectorAsUsages even though they are not ConnectionUsages. + /// BindingConnectorAsUsages, SuccessionAsUsages, and FlowUsages because these are ConnectorAsUsages + /// even though they are not ConnectionUsages. /// [Property(xmiId: "_19_0_2_12e503d9_1591479754895_422988_1242", aggregation: AggregationKind.None, lowerValue: 0, upperValue: int.MaxValue, isOrdered: true, isReadOnly: false, isDerived: true, isDerivedUnion: false, isUnique: true, defaultValue: null)] [SubsettedProperty(propertyName: "_18_5_3_12e503d9_1565472757327_162097_21259")] @@ -625,7 +625,7 @@ bool Core.Features.IFeature.IsVariable public List nestedItem { get; internal set; } = []; /// - /// The MetadataUsages that are nestedUsages of this of this Usage. + /// The MetadataUsages that are ownedMembers of this of this Usage. /// [Property(xmiId: "_19_0_4_12e503d9_1661488589862_120785_2970", aggregation: AggregationKind.None, lowerValue: 0, upperValue: int.MaxValue, isOrdered: true, isReadOnly: false, isDerived: true, isDerivedUnion: false, isUnique: true, defaultValue: null)] [SubsettedProperty(propertyName: "_19_0_2_12e503d9_1591482421103_284620_2978")] diff --git a/SysML2.NET/Core/AutoGenDto/ViewDefinition.cs b/SysML2.NET/Core/AutoGenDto/ViewDefinition.cs index 700c08082..fc9985ad8 100644 --- a/SysML2.NET/Core/AutoGenDto/ViewDefinition.cs +++ b/SysML2.NET/Core/AutoGenDto/ViewDefinition.cs @@ -230,11 +230,11 @@ public partial class ViewDefinition : IViewDefinition /// /// Whether all things that meet the classification conditions of this Type must be classified by the - /// Type. (A Type gives conditions that must be met by whatever it - /// classifies, but when isSufficient is false, things may meet those conditions but still not be - /// classified by the Type. For example, a Type Car that is not sufficient could require everything it - /// classifies to have four wheels, but not all four wheeled things would classify as cars. However, if - /// the Type Car were sufficient, it would classify all four-wheeled things.) + /// Type.(A Type gives conditions that must be met by whatever it classifies, but when isSufficient + /// is false, things may meet those conditions but still not be classified by the Type. For example, a + /// Type Car that is not sufficient could require everything it classifies to have four wheels, but not + /// all four wheeled things would classify as cars. However, if the Type Car were sufficient, it would + /// classify all four-wheeled things.) /// [Property(xmiId: "_18_5_3_b9102da_1564072709069_937523_30797", aggregation: AggregationKind.None, lowerValue: 1, upperValue: 1, isOrdered: false, isReadOnly: false, isDerived: false, isDerivedUnion: false, isUnique: true, defaultValue: "false")] [Implements(implementation: "IType.IsSufficient")] @@ -512,7 +512,7 @@ public partial class ViewDefinition : IViewDefinition public List ownedMembership { get; internal set; } = []; /// - /// The MetadataUsages that are ownedUsages of this Definition. + /// The MetadataUsages that are ownedMembers of this Definition. /// [Property(xmiId: "_19_0_4_12e503d9_1661488358064_457109_2881", aggregation: AggregationKind.None, lowerValue: 0, upperValue: int.MaxValue, isOrdered: true, isReadOnly: false, isDerived: true, isDerivedUnion: false, isUnique: true, defaultValue: null)] [SubsettedProperty(propertyName: "_19_0_2_12e503d9_1591482567975_649284_3005")] diff --git a/SysML2.NET/Core/AutoGenDto/ViewUsage.cs b/SysML2.NET/Core/AutoGenDto/ViewUsage.cs index cd6925122..f2a648b05 100644 --- a/SysML2.NET/Core/AutoGenDto/ViewUsage.cs +++ b/SysML2.NET/Core/AutoGenDto/ViewUsage.cs @@ -378,11 +378,11 @@ public partial class ViewUsage : IViewUsage /// /// Whether all things that meet the classification conditions of this Type must be classified by the - /// Type. (A Type gives conditions that must be met by whatever it - /// classifies, but when isSufficient is false, things may meet those conditions but still not be - /// classified by the Type. For example, a Type Car that is not sufficient could require everything it - /// classifies to have four wheels, but not all four wheeled things would classify as cars. However, if - /// the Type Car were sufficient, it would classify all four-wheeled things.) + /// Type.(A Type gives conditions that must be met by whatever it classifies, but when isSufficient + /// is false, things may meet those conditions but still not be classified by the Type. For example, a + /// Type Car that is not sufficient could require everything it classifies to have four wheels, but not + /// all four wheeled things would classify as cars. However, if the Type Car were sufficient, it would + /// classify all four-wheeled things.) /// [Property(xmiId: "_18_5_3_b9102da_1564072709069_937523_30797", aggregation: AggregationKind.None, lowerValue: 1, upperValue: 1, isOrdered: false, isReadOnly: false, isDerived: false, isDerivedUnion: false, isUnique: true, defaultValue: "false")] [Implements(implementation: "IType.IsSufficient")] @@ -430,9 +430,9 @@ bool Core.Features.IFeature.IsVariable /// Whether this Usage may be time varying (that is, whether it is featured by the snapshots of its /// owningType, rather than being featured by the owningType itself). However, if isConstant is also /// true, then the value of the Usage is nevertheless constant over the entire duration of an instance - /// of its owningType (that is, it has the same value on all snapshots). The - /// property mayTimeVary redefines the KerML property Feature::isVariable, making it derived. The - /// property isConstant is inherited from Feature. + /// of its owningType (that is, it has the same value on all snapshots).The property mayTimeVary + /// redefines the KerML property Feature::isVariable, making it derived. The property isConstant is + /// inherited from Feature. /// [Property(xmiId: "_2022x_2_12e503d9_1737227200362_771035_69", aggregation: AggregationKind.None, lowerValue: 1, upperValue: 1, isOrdered: false, isReadOnly: false, isDerived: true, isDerivedUnion: false, isUnique: true, defaultValue: null)] [RedefinedProperty(propertyName: "_2022x_2_12e503d9_1725998273002_23711_212")] @@ -533,8 +533,8 @@ bool Core.Features.IFeature.IsVariable /// /// The ConnectorAsUsages that are nestedUsages of this Usage. Note that this list includes - /// BindingConnectorAsUsages, SuccessionAsUsages, and FlowConnectionUsages because these are - /// ConnectorAsUsages even though they are not ConnectionUsages. + /// BindingConnectorAsUsages, SuccessionAsUsages, and FlowUsages because these are ConnectorAsUsages + /// even though they are not ConnectionUsages. /// [Property(xmiId: "_19_0_2_12e503d9_1591479754895_422988_1242", aggregation: AggregationKind.None, lowerValue: 0, upperValue: int.MaxValue, isOrdered: true, isReadOnly: false, isDerived: true, isDerivedUnion: false, isUnique: true, defaultValue: null)] [SubsettedProperty(propertyName: "_18_5_3_12e503d9_1565472757327_162097_21259")] @@ -582,7 +582,7 @@ bool Core.Features.IFeature.IsVariable public List nestedItem { get; internal set; } = []; /// - /// The MetadataUsages that are nestedUsages of this of this Usage. + /// The MetadataUsages that are ownedMembers of this of this Usage. /// [Property(xmiId: "_19_0_4_12e503d9_1661488589862_120785_2970", aggregation: AggregationKind.None, lowerValue: 0, upperValue: int.MaxValue, isOrdered: true, isReadOnly: false, isDerived: true, isDerivedUnion: false, isUnique: true, defaultValue: null)] [SubsettedProperty(propertyName: "_19_0_2_12e503d9_1591482421103_284620_2978")] diff --git a/SysML2.NET/Core/AutoGenDto/ViewpointDefinition.cs b/SysML2.NET/Core/AutoGenDto/ViewpointDefinition.cs index fec898f80..e5b1687e5 100644 --- a/SysML2.NET/Core/AutoGenDto/ViewpointDefinition.cs +++ b/SysML2.NET/Core/AutoGenDto/ViewpointDefinition.cs @@ -274,9 +274,9 @@ string Root.Elements.IElement.DeclaredShortName /// /// Whether this Function can be used as the function of a model-level evaluable InvocationExpression. /// Certain Functions from the Kernel Functions Library are considered to have isModelLevelEvaluable = - /// true. For all other Functions it is false. Note: See the - /// specification of the KerML concrete syntax notation for Expressions for an identification of which - /// library Functions are model-level evaluable. + /// true. For all other Functions it is false.Note: See the specification of the KerML + /// concrete syntax notation for Expressions for an identification of which library Functions are + /// model-level evaluable. /// [Property(xmiId: "_19_0_4_12e503d9_1617395221463_139517_26381", aggregation: AggregationKind.None, lowerValue: 1, upperValue: 1, isOrdered: false, isReadOnly: false, isDerived: true, isDerivedUnion: false, isUnique: true, defaultValue: null)] [Implements(implementation: "IFunction.IsModelLevelEvaluable")] @@ -284,11 +284,11 @@ string Root.Elements.IElement.DeclaredShortName /// /// Whether all things that meet the classification conditions of this Type must be classified by the - /// Type. (A Type gives conditions that must be met by whatever it - /// classifies, but when isSufficient is false, things may meet those conditions but still not be - /// classified by the Type. For example, a Type Car that is not sufficient could require everything it - /// classifies to have four wheels, but not all four wheeled things would classify as cars. However, if - /// the Type Car were sufficient, it would classify all four-wheeled things.) + /// Type.(A Type gives conditions that must be met by whatever it classifies, but when isSufficient + /// is false, things may meet those conditions but still not be classified by the Type. For example, a + /// Type Car that is not sufficient could require everything it classifies to have four wheels, but not + /// all four wheeled things would classify as cars. However, if the Type Car were sufficient, it would + /// classify all four-wheeled things.) /// [Property(xmiId: "_18_5_3_b9102da_1564072709069_937523_30797", aggregation: AggregationKind.None, lowerValue: 1, upperValue: 1, isOrdered: false, isReadOnly: false, isDerived: false, isDerivedUnion: false, isUnique: true, defaultValue: "false")] [Implements(implementation: "IType.IsSufficient")] @@ -566,7 +566,7 @@ string Root.Elements.IElement.DeclaredShortName public List ownedMembership { get; internal set; } = []; /// - /// The MetadataUsages that are ownedUsages of this Definition. + /// The MetadataUsages that are ownedMembers of this Definition. /// [Property(xmiId: "_19_0_4_12e503d9_1661488358064_457109_2881", aggregation: AggregationKind.None, lowerValue: 0, upperValue: int.MaxValue, isOrdered: true, isReadOnly: false, isDerived: true, isDerivedUnion: false, isUnique: true, defaultValue: null)] [SubsettedProperty(propertyName: "_19_0_2_12e503d9_1591482567975_649284_3005")] @@ -808,7 +808,7 @@ string Root.Elements.IElement.DeclaredShortName public string shortName { get; internal set; } /// - /// The parameters of this RequirementDefinition that represent stakeholders for th requirement. + /// The parameters of this RequirementDefinition that represent stakeholders for the requirement. /// [Property(xmiId: "_19_0_4_12e503d9_1624033010374_29375_40166", aggregation: AggregationKind.None, lowerValue: 0, upperValue: int.MaxValue, isOrdered: true, isReadOnly: false, isDerived: true, isDerivedUnion: false, isUnique: true, defaultValue: null)] [SubsettedProperty(propertyName: "_18_5_3_12e503d9_1543948010065_362066_20413")] diff --git a/SysML2.NET/Core/AutoGenDto/ViewpointUsage.cs b/SysML2.NET/Core/AutoGenDto/ViewpointUsage.cs index 9e00c48c6..a8c327da8 100644 --- a/SysML2.NET/Core/AutoGenDto/ViewpointUsage.cs +++ b/SysML2.NET/Core/AutoGenDto/ViewpointUsage.cs @@ -440,11 +440,11 @@ string Root.Elements.IElement.DeclaredShortName /// /// Whether all things that meet the classification conditions of this Type must be classified by the - /// Type. (A Type gives conditions that must be met by whatever it - /// classifies, but when isSufficient is false, things may meet those conditions but still not be - /// classified by the Type. For example, a Type Car that is not sufficient could require everything it - /// classifies to have four wheels, but not all four wheeled things would classify as cars. However, if - /// the Type Car were sufficient, it would classify all four-wheeled things.) + /// Type.(A Type gives conditions that must be met by whatever it classifies, but when isSufficient + /// is false, things may meet those conditions but still not be classified by the Type. For example, a + /// Type Car that is not sufficient could require everything it classifies to have four wheels, but not + /// all four wheeled things would classify as cars. However, if the Type Car were sufficient, it would + /// classify all four-wheeled things.) /// [Property(xmiId: "_18_5_3_b9102da_1564072709069_937523_30797", aggregation: AggregationKind.None, lowerValue: 1, upperValue: 1, isOrdered: false, isReadOnly: false, isDerived: false, isDerivedUnion: false, isUnique: true, defaultValue: "false")] [Implements(implementation: "IType.IsSufficient")] @@ -482,9 +482,9 @@ bool Core.Features.IFeature.IsVariable /// Whether this Usage may be time varying (that is, whether it is featured by the snapshots of its /// owningType, rather than being featured by the owningType itself). However, if isConstant is also /// true, then the value of the Usage is nevertheless constant over the entire duration of an instance - /// of its owningType (that is, it has the same value on all snapshots). The - /// property mayTimeVary redefines the KerML property Feature::isVariable, making it derived. The - /// property isConstant is inherited from Feature. + /// of its owningType (that is, it has the same value on all snapshots).The property mayTimeVary + /// redefines the KerML property Feature::isVariable, making it derived. The property isConstant is + /// inherited from Feature. /// [Property(xmiId: "_2022x_2_12e503d9_1737227200362_771035_69", aggregation: AggregationKind.None, lowerValue: 1, upperValue: 1, isOrdered: false, isReadOnly: false, isDerived: true, isDerivedUnion: false, isUnique: true, defaultValue: null)] [RedefinedProperty(propertyName: "_2022x_2_12e503d9_1725998273002_23711_212")] @@ -585,8 +585,8 @@ bool Core.Features.IFeature.IsVariable /// /// The ConnectorAsUsages that are nestedUsages of this Usage. Note that this list includes - /// BindingConnectorAsUsages, SuccessionAsUsages, and FlowConnectionUsages because these are - /// ConnectorAsUsages even though they are not ConnectionUsages. + /// BindingConnectorAsUsages, SuccessionAsUsages, and FlowUsages because these are ConnectorAsUsages + /// even though they are not ConnectionUsages. /// [Property(xmiId: "_19_0_2_12e503d9_1591479754895_422988_1242", aggregation: AggregationKind.None, lowerValue: 0, upperValue: int.MaxValue, isOrdered: true, isReadOnly: false, isDerived: true, isDerivedUnion: false, isUnique: true, defaultValue: null)] [SubsettedProperty(propertyName: "_18_5_3_12e503d9_1565472757327_162097_21259")] @@ -634,7 +634,7 @@ bool Core.Features.IFeature.IsVariable public List nestedItem { get; internal set; } = []; /// - /// The MetadataUsages that are nestedUsages of this of this Usage. + /// The MetadataUsages that are ownedMembers of this of this Usage. /// [Property(xmiId: "_19_0_4_12e503d9_1661488589862_120785_2970", aggregation: AggregationKind.None, lowerValue: 0, upperValue: int.MaxValue, isOrdered: true, isReadOnly: false, isDerived: true, isDerivedUnion: false, isUnique: true, defaultValue: null)] [SubsettedProperty(propertyName: "_19_0_2_12e503d9_1591482421103_284620_2978")] diff --git a/SysML2.NET/Core/AutoGenDto/WhileLoopActionUsage.cs b/SysML2.NET/Core/AutoGenDto/WhileLoopActionUsage.cs index a3ae3ab0c..0f1fbfe68 100644 --- a/SysML2.NET/Core/AutoGenDto/WhileLoopActionUsage.cs +++ b/SysML2.NET/Core/AutoGenDto/WhileLoopActionUsage.cs @@ -398,11 +398,11 @@ public partial class WhileLoopActionUsage : IWhileLoopActionUsage /// /// Whether all things that meet the classification conditions of this Type must be classified by the - /// Type. (A Type gives conditions that must be met by whatever it - /// classifies, but when isSufficient is false, things may meet those conditions but still not be - /// classified by the Type. For example, a Type Car that is not sufficient could require everything it - /// classifies to have four wheels, but not all four wheeled things would classify as cars. However, if - /// the Type Car were sufficient, it would classify all four-wheeled things.) + /// Type.(A Type gives conditions that must be met by whatever it classifies, but when isSufficient + /// is false, things may meet those conditions but still not be classified by the Type. For example, a + /// Type Car that is not sufficient could require everything it classifies to have four wheels, but not + /// all four wheeled things would classify as cars. However, if the Type Car were sufficient, it would + /// classify all four-wheeled things.) /// [Property(xmiId: "_18_5_3_b9102da_1564072709069_937523_30797", aggregation: AggregationKind.None, lowerValue: 1, upperValue: 1, isOrdered: false, isReadOnly: false, isDerived: false, isDerivedUnion: false, isUnique: true, defaultValue: "false")] [Implements(implementation: "IType.IsSufficient")] @@ -440,9 +440,9 @@ bool Core.Features.IFeature.IsVariable /// Whether this Usage may be time varying (that is, whether it is featured by the snapshots of its /// owningType, rather than being featured by the owningType itself). However, if isConstant is also /// true, then the value of the Usage is nevertheless constant over the entire duration of an instance - /// of its owningType (that is, it has the same value on all snapshots). The - /// property mayTimeVary redefines the KerML property Feature::isVariable, making it derived. The - /// property isConstant is inherited from Feature. + /// of its owningType (that is, it has the same value on all snapshots).The property mayTimeVary + /// redefines the KerML property Feature::isVariable, making it derived. The property isConstant is + /// inherited from Feature. /// [Property(xmiId: "_2022x_2_12e503d9_1737227200362_771035_69", aggregation: AggregationKind.None, lowerValue: 1, upperValue: 1, isOrdered: false, isReadOnly: false, isDerived: true, isDerivedUnion: false, isUnique: true, defaultValue: null)] [RedefinedProperty(propertyName: "_2022x_2_12e503d9_1725998273002_23711_212")] @@ -543,8 +543,8 @@ bool Core.Features.IFeature.IsVariable /// /// The ConnectorAsUsages that are nestedUsages of this Usage. Note that this list includes - /// BindingConnectorAsUsages, SuccessionAsUsages, and FlowConnectionUsages because these are - /// ConnectorAsUsages even though they are not ConnectionUsages. + /// BindingConnectorAsUsages, SuccessionAsUsages, and FlowUsages because these are ConnectorAsUsages + /// even though they are not ConnectionUsages. /// [Property(xmiId: "_19_0_2_12e503d9_1591479754895_422988_1242", aggregation: AggregationKind.None, lowerValue: 0, upperValue: int.MaxValue, isOrdered: true, isReadOnly: false, isDerived: true, isDerivedUnion: false, isUnique: true, defaultValue: null)] [SubsettedProperty(propertyName: "_18_5_3_12e503d9_1565472757327_162097_21259")] @@ -592,7 +592,7 @@ bool Core.Features.IFeature.IsVariable public List nestedItem { get; internal set; } = []; /// - /// The MetadataUsages that are nestedUsages of this of this Usage. + /// The MetadataUsages that are ownedMembers of this of this Usage. /// [Property(xmiId: "_19_0_4_12e503d9_1661488589862_120785_2970", aggregation: AggregationKind.None, lowerValue: 0, upperValue: int.MaxValue, isOrdered: true, isReadOnly: false, isDerived: true, isDerivedUnion: false, isUnique: true, defaultValue: null)] [SubsettedProperty(propertyName: "_19_0_2_12e503d9_1591482421103_284620_2978")] diff --git a/SysML2.NET/Core/AutoGenPoco/AcceptActionUsage.cs b/SysML2.NET/Core/AutoGenPoco/AcceptActionUsage.cs index 0caf04fb5..0bab4fc7f 100644 --- a/SysML2.NET/Core/AutoGenPoco/AcceptActionUsage.cs +++ b/SysML2.NET/Core/AutoGenPoco/AcceptActionUsage.cs @@ -434,11 +434,11 @@ public AcceptActionUsage() /// /// Whether all things that meet the classification conditions of this Type must be classified by the - /// Type. (A Type gives conditions that must be met by whatever it - /// classifies, but when isSufficient is false, things may meet those conditions but still not be - /// classified by the Type. For example, a Type Car that is not sufficient could require everything it - /// classifies to have four wheels, but not all four wheeled things would classify as cars. However, if - /// the Type Car were sufficient, it would classify all four-wheeled things.) + /// Type.(A Type gives conditions that must be met by whatever it classifies, but when isSufficient + /// is false, things may meet those conditions but still not be classified by the Type. For example, a + /// Type Car that is not sufficient could require everything it classifies to have four wheels, but not + /// all four wheeled things would classify as cars. However, if the Type Car were sufficient, it would + /// classify all four-wheeled things.) /// [Property(xmiId: "_18_5_3_b9102da_1564072709069_937523_30797", aggregation: AggregationKind.None, lowerValue: 1, upperValue: 1, isOrdered: false, isReadOnly: false, isDerived: false, isDerivedUnion: false, isUnique: true, defaultValue: "false")] [Implements(implementation: "IType.IsSufficient")] @@ -476,9 +476,9 @@ bool Core.Features.IFeature.IsVariable /// Whether this Usage may be time varying (that is, whether it is featured by the snapshots of its /// owningType, rather than being featured by the owningType itself). However, if isConstant is also /// true, then the value of the Usage is nevertheless constant over the entire duration of an instance - /// of its owningType (that is, it has the same value on all snapshots). The - /// property mayTimeVary redefines the KerML property Feature::isVariable, making it derived. The - /// property isConstant is inherited from Feature. + /// of its owningType (that is, it has the same value on all snapshots).The property mayTimeVary + /// redefines the KerML property Feature::isVariable, making it derived. The property isConstant is + /// inherited from Feature. /// [Property(xmiId: "_2022x_2_12e503d9_1737227200362_771035_69", aggregation: AggregationKind.None, lowerValue: 1, upperValue: 1, isOrdered: false, isReadOnly: false, isDerived: true, isDerivedUnion: false, isUnique: true, defaultValue: null)] [RedefinedProperty(propertyName: "_2022x_2_12e503d9_1725998273002_23711_212")] @@ -579,8 +579,8 @@ bool Core.Features.IFeature.IsVariable /// /// The ConnectorAsUsages that are nestedUsages of this Usage. Note that this list includes - /// BindingConnectorAsUsages, SuccessionAsUsages, and FlowConnectionUsages because these are - /// ConnectorAsUsages even though they are not ConnectionUsages. + /// BindingConnectorAsUsages, SuccessionAsUsages, and FlowUsages because these are ConnectorAsUsages + /// even though they are not ConnectionUsages. /// [Property(xmiId: "_19_0_2_12e503d9_1591479754895_422988_1242", aggregation: AggregationKind.None, lowerValue: 0, upperValue: int.MaxValue, isOrdered: true, isReadOnly: false, isDerived: true, isDerivedUnion: false, isUnique: true, defaultValue: null)] [SubsettedProperty(propertyName: "_18_5_3_12e503d9_1565472757327_162097_21259")] @@ -628,7 +628,7 @@ bool Core.Features.IFeature.IsVariable public List nestedItem => this.ComputeNestedItem(); /// - /// The MetadataUsages that are nestedUsages of this of this Usage. + /// The MetadataUsages that are ownedMembers of this of this Usage. /// [Property(xmiId: "_19_0_4_12e503d9_1661488589862_120785_2970", aggregation: AggregationKind.None, lowerValue: 0, upperValue: int.MaxValue, isOrdered: true, isReadOnly: false, isDerived: true, isDerivedUnion: false, isUnique: true, defaultValue: null)] [SubsettedProperty(propertyName: "_19_0_2_12e503d9_1591482421103_284620_2978")] @@ -1273,9 +1273,8 @@ bool Core.Features.IFeature.IsVariable public FeatureDirectionKind? DirectionOfExcluding(IFeature feature, List excluded) => this.ComputeDirectionOfExcludingOperation(feature, excluded); /// - /// If a Feature has no declaredName or declaredShortName , then its - /// effective name is given by the effective name of the Feature returned by the namingFeature() - /// operation, if any. + /// If a Feature has no declaredName or declaredShortName, then its effective name is given by the + /// effective name of the Feature returned by the namingFeature() operation, if any. /// /// /// The expected @@ -1400,11 +1399,10 @@ bool Core.Features.IFeature.IsVariable /// /// A Feature is compatible with an otherType if it either directly or indirectly specializes the - /// otherType or if the otherType is also a Feature and all of the following are true. - ///
  1. Neither this Feature or the otherType have any - /// ownedFeatures.
  2. This Feature directly or indirectly redefines a - /// Feature that is also directly or indirectly redefined by the otherType.
  3. - ///
  4. This Feature can access the otherType.
+ /// otherType or if the otherType is also a Feature and all of the following are true.
  1. Neither + /// this Feature or the otherType have any ownedFeatures.
  2. This Feature directly or indirectly + /// redefines a Feature that is also directly or indirectly redefined by the otherType.
  3. This + /// Feature can access the otherType.
///
/// /// No documentation provided @@ -1580,8 +1578,8 @@ bool Core.Features.IFeature.IsVariable /// an owningRelationship, then return the string constructed by appending to the path of it's /// owningRelationship the character / followed by the string representation of its position in the list /// of ownedRelatedElements of the owningRelationship (indexed starting at 1). Otherwise, return the - /// empty string. (Note that this operation is overridden for Relationships - /// to use owningRelatedElement when appropriate.) + /// empty string.(Note that this operation is overridden for Relationships to use owningRelatedElement + /// when appropriate.) /// /// /// The expected @@ -1635,13 +1633,12 @@ bool Core.Features.IFeature.IsVariable /// /// Return a subset of memberships, removing those Memberships whose memberElements are Features and for - /// which either of the following two conditions holds:
    - ///
  1. The memberElement of the Membership is included in redefined Features of another - /// Membership in memberships.
  2. One of the redefined Features of the - /// Membership is a directly redefinedFeature of an ownedFeature of this Type.
  3. - ///
For this purpose, the redefined Features of a Membership - /// whose memberElement is a Feature includes the memberElement and all Features directly or indirectly - /// redefined by the memberElement. + /// which either of the following two conditions holds:
  1. The memberElement of the Membership is + /// included in redefined Features of another Membership in memberships.
  2. One of the redefined + /// Features of the Membership is a directly redefinedFeature of an ownedFeature of this + /// Type.
For this purpose, the redefined Features of a Membership whose memberElement is a + /// Feature includes the memberElement and all Features directly or indirectly redefined by the + /// memberElement. ///
/// /// No documentation provided @@ -1768,11 +1765,11 @@ bool Core.Features.IFeature.IsVariable /// Return the Features used to determine the types of this Feature (other than this Feature itself). If /// this Feature is not conjugated, then the typingFeatures consist of all subsetted Features, except /// from CrossSubsetting, and the last chainingFeature (if any). If this Feature is conjugated, then the - /// typingFeatures are only its originalType (if the originalType is a Feature). - /// Note. CrossSubsetting is excluded from the determination of the type of a - /// Feature in order to avoid circularity in the construction of implied CrossSubsetting relationships. - /// The validateFeatureCrossFeatureType requires that the crossFeature of a Feature have the same type - /// as the Feature. + /// typingFeatures are only its originalType (if the originalType is a Feature).Note. + /// CrossSubsetting is excluded from the determination of the type of a Feature in order to avoid + /// circularity in the construction of implied CrossSubsetting relationships. The + /// validateFeatureCrossFeatureType requires that the crossFeature of a Feature have the same type as + /// the Feature. /// /// /// The expected collection of diff --git a/SysML2.NET/Core/AutoGenPoco/ActionDefinition.cs b/SysML2.NET/Core/AutoGenPoco/ActionDefinition.cs index 9691c7dd0..168471324 100644 --- a/SysML2.NET/Core/AutoGenPoco/ActionDefinition.cs +++ b/SysML2.NET/Core/AutoGenPoco/ActionDefinition.cs @@ -281,11 +281,11 @@ public ActionDefinition() /// /// Whether all things that meet the classification conditions of this Type must be classified by the - /// Type. (A Type gives conditions that must be met by whatever it - /// classifies, but when isSufficient is false, things may meet those conditions but still not be - /// classified by the Type. For example, a Type Car that is not sufficient could require everything it - /// classifies to have four wheels, but not all four wheeled things would classify as cars. However, if - /// the Type Car were sufficient, it would classify all four-wheeled things.) + /// Type.(A Type gives conditions that must be met by whatever it classifies, but when isSufficient + /// is false, things may meet those conditions but still not be classified by the Type. For example, a + /// Type Car that is not sufficient could require everything it classifies to have four wheels, but not + /// all four wheeled things would classify as cars. However, if the Type Car were sufficient, it would + /// classify all four-wheeled things.) /// [Property(xmiId: "_18_5_3_b9102da_1564072709069_937523_30797", aggregation: AggregationKind.None, lowerValue: 1, upperValue: 1, isOrdered: false, isReadOnly: false, isDerived: false, isDerivedUnion: false, isUnique: true, defaultValue: "false")] [Implements(implementation: "IType.IsSufficient")] @@ -563,7 +563,7 @@ public ActionDefinition() public List ownedMembership => this.ComputeOwnedMembership(); /// - /// The MetadataUsages that are ownedUsages of this Definition. + /// The MetadataUsages that are ownedMembers of this Definition. /// [Property(xmiId: "_19_0_4_12e503d9_1661488358064_457109_2881", aggregation: AggregationKind.None, lowerValue: 0, upperValue: int.MaxValue, isOrdered: true, isReadOnly: false, isDerived: true, isDerivedUnion: false, isUnique: true, defaultValue: null)] [SubsettedProperty(propertyName: "_19_0_2_12e503d9_1591482567975_649284_3005")] @@ -1047,8 +1047,8 @@ public ActionDefinition() /// an owningRelationship, then return the string constructed by appending to the path of it's /// owningRelationship the character / followed by the string representation of its position in the list /// of ownedRelatedElements of the owningRelationship (indexed starting at 1). Otherwise, return the - /// empty string. (Note that this operation is overridden for Relationships - /// to use owningRelatedElement when appropriate.) + /// empty string.(Note that this operation is overridden for Relationships to use owningRelatedElement + /// when appropriate.) /// /// /// The expected @@ -1070,13 +1070,12 @@ public ActionDefinition() /// /// Return a subset of memberships, removing those Memberships whose memberElements are Features and for - /// which either of the following two conditions holds:
    - ///
  1. The memberElement of the Membership is included in redefined Features of another - /// Membership in memberships.
  2. One of the redefined Features of the - /// Membership is a directly redefinedFeature of an ownedFeature of this Type.
  3. - ///
For this purpose, the redefined Features of a Membership - /// whose memberElement is a Feature includes the memberElement and all Features directly or indirectly - /// redefined by the memberElement. + /// which either of the following two conditions holds:
  1. The memberElement of the Membership is + /// included in redefined Features of another Membership in memberships.
  2. One of the redefined + /// Features of the Membership is a directly redefinedFeature of an ownedFeature of this + /// Type.
For this purpose, the redefined Features of a Membership whose memberElement is a + /// Feature includes the memberElement and all Features directly or indirectly redefined by the + /// memberElement. ///
/// /// No documentation provided diff --git a/SysML2.NET/Core/AutoGenPoco/ActionUsage.cs b/SysML2.NET/Core/AutoGenPoco/ActionUsage.cs index f7db86727..b74486355 100644 --- a/SysML2.NET/Core/AutoGenPoco/ActionUsage.cs +++ b/SysML2.NET/Core/AutoGenPoco/ActionUsage.cs @@ -433,11 +433,11 @@ public ActionUsage() /// /// Whether all things that meet the classification conditions of this Type must be classified by the - /// Type. (A Type gives conditions that must be met by whatever it - /// classifies, but when isSufficient is false, things may meet those conditions but still not be - /// classified by the Type. For example, a Type Car that is not sufficient could require everything it - /// classifies to have four wheels, but not all four wheeled things would classify as cars. However, if - /// the Type Car were sufficient, it would classify all four-wheeled things.) + /// Type.(A Type gives conditions that must be met by whatever it classifies, but when isSufficient + /// is false, things may meet those conditions but still not be classified by the Type. For example, a + /// Type Car that is not sufficient could require everything it classifies to have four wheels, but not + /// all four wheeled things would classify as cars. However, if the Type Car were sufficient, it would + /// classify all four-wheeled things.) /// [Property(xmiId: "_18_5_3_b9102da_1564072709069_937523_30797", aggregation: AggregationKind.None, lowerValue: 1, upperValue: 1, isOrdered: false, isReadOnly: false, isDerived: false, isDerivedUnion: false, isUnique: true, defaultValue: "false")] [Implements(implementation: "IType.IsSufficient")] @@ -475,9 +475,9 @@ bool Core.Features.IFeature.IsVariable /// Whether this Usage may be time varying (that is, whether it is featured by the snapshots of its /// owningType, rather than being featured by the owningType itself). However, if isConstant is also /// true, then the value of the Usage is nevertheless constant over the entire duration of an instance - /// of its owningType (that is, it has the same value on all snapshots). The - /// property mayTimeVary redefines the KerML property Feature::isVariable, making it derived. The - /// property isConstant is inherited from Feature. + /// of its owningType (that is, it has the same value on all snapshots).The property mayTimeVary + /// redefines the KerML property Feature::isVariable, making it derived. The property isConstant is + /// inherited from Feature. /// [Property(xmiId: "_2022x_2_12e503d9_1737227200362_771035_69", aggregation: AggregationKind.None, lowerValue: 1, upperValue: 1, isOrdered: false, isReadOnly: false, isDerived: true, isDerivedUnion: false, isUnique: true, defaultValue: null)] [RedefinedProperty(propertyName: "_2022x_2_12e503d9_1725998273002_23711_212")] @@ -578,8 +578,8 @@ bool Core.Features.IFeature.IsVariable /// /// The ConnectorAsUsages that are nestedUsages of this Usage. Note that this list includes - /// BindingConnectorAsUsages, SuccessionAsUsages, and FlowConnectionUsages because these are - /// ConnectorAsUsages even though they are not ConnectionUsages. + /// BindingConnectorAsUsages, SuccessionAsUsages, and FlowUsages because these are ConnectorAsUsages + /// even though they are not ConnectionUsages. /// [Property(xmiId: "_19_0_2_12e503d9_1591479754895_422988_1242", aggregation: AggregationKind.None, lowerValue: 0, upperValue: int.MaxValue, isOrdered: true, isReadOnly: false, isDerived: true, isDerivedUnion: false, isUnique: true, defaultValue: null)] [SubsettedProperty(propertyName: "_18_5_3_12e503d9_1565472757327_162097_21259")] @@ -627,7 +627,7 @@ bool Core.Features.IFeature.IsVariable public List nestedItem => this.ComputeNestedItem(); /// - /// The MetadataUsages that are nestedUsages of this of this Usage. + /// The MetadataUsages that are ownedMembers of this of this Usage. /// [Property(xmiId: "_19_0_4_12e503d9_1661488589862_120785_2970", aggregation: AggregationKind.None, lowerValue: 0, upperValue: int.MaxValue, isOrdered: true, isReadOnly: false, isDerived: true, isDerivedUnion: false, isUnique: true, defaultValue: null)] [SubsettedProperty(propertyName: "_19_0_2_12e503d9_1591482421103_284620_2978")] @@ -1248,9 +1248,8 @@ bool Core.Features.IFeature.IsVariable public FeatureDirectionKind? DirectionOfExcluding(IFeature feature, List excluded) => this.ComputeDirectionOfExcludingOperation(feature, excluded); /// - /// If a Feature has no declaredName or declaredShortName , then its - /// effective name is given by the effective name of the Feature returned by the namingFeature() - /// operation, if any. + /// If a Feature has no declaredName or declaredShortName, then its effective name is given by the + /// effective name of the Feature returned by the namingFeature() operation, if any. /// /// /// The expected @@ -1375,11 +1374,10 @@ bool Core.Features.IFeature.IsVariable /// /// A Feature is compatible with an otherType if it either directly or indirectly specializes the - /// otherType or if the otherType is also a Feature and all of the following are true. - ///
  1. Neither this Feature or the otherType have any - /// ownedFeatures.
  2. This Feature directly or indirectly redefines a - /// Feature that is also directly or indirectly redefined by the otherType.
  3. - ///
  4. This Feature can access the otherType.
+ /// otherType or if the otherType is also a Feature and all of the following are true.
  1. Neither + /// this Feature or the otherType have any ownedFeatures.
  2. This Feature directly or indirectly + /// redefines a Feature that is also directly or indirectly redefined by the otherType.
  3. This + /// Feature can access the otherType.
///
/// /// No documentation provided @@ -1547,8 +1545,8 @@ bool Core.Features.IFeature.IsVariable /// an owningRelationship, then return the string constructed by appending to the path of it's /// owningRelationship the character / followed by the string representation of its position in the list /// of ownedRelatedElements of the owningRelationship (indexed starting at 1). Otherwise, return the - /// empty string. (Note that this operation is overridden for Relationships - /// to use owningRelatedElement when appropriate.) + /// empty string.(Note that this operation is overridden for Relationships to use owningRelatedElement + /// when appropriate.) /// /// /// The expected @@ -1602,13 +1600,12 @@ bool Core.Features.IFeature.IsVariable /// /// Return a subset of memberships, removing those Memberships whose memberElements are Features and for - /// which either of the following two conditions holds:
    - ///
  1. The memberElement of the Membership is included in redefined Features of another - /// Membership in memberships.
  2. One of the redefined Features of the - /// Membership is a directly redefinedFeature of an ownedFeature of this Type.
  3. - ///
For this purpose, the redefined Features of a Membership - /// whose memberElement is a Feature includes the memberElement and all Features directly or indirectly - /// redefined by the memberElement. + /// which either of the following two conditions holds:
  1. The memberElement of the Membership is + /// included in redefined Features of another Membership in memberships.
  2. One of the redefined + /// Features of the Membership is a directly redefinedFeature of an ownedFeature of this + /// Type.
For this purpose, the redefined Features of a Membership whose memberElement is a + /// Feature includes the memberElement and all Features directly or indirectly redefined by the + /// memberElement. ///
/// /// No documentation provided @@ -1735,11 +1732,11 @@ bool Core.Features.IFeature.IsVariable /// Return the Features used to determine the types of this Feature (other than this Feature itself). If /// this Feature is not conjugated, then the typingFeatures consist of all subsetted Features, except /// from CrossSubsetting, and the last chainingFeature (if any). If this Feature is conjugated, then the - /// typingFeatures are only its originalType (if the originalType is a Feature). - /// Note. CrossSubsetting is excluded from the determination of the type of a - /// Feature in order to avoid circularity in the construction of implied CrossSubsetting relationships. - /// The validateFeatureCrossFeatureType requires that the crossFeature of a Feature have the same type - /// as the Feature. + /// typingFeatures are only its originalType (if the originalType is a Feature).Note. + /// CrossSubsetting is excluded from the determination of the type of a Feature in order to avoid + /// circularity in the construction of implied CrossSubsetting relationships. The + /// validateFeatureCrossFeatureType requires that the crossFeature of a Feature have the same type as + /// the Feature. /// /// /// The expected collection of diff --git a/SysML2.NET/Core/AutoGenPoco/ActorMembership.cs b/SysML2.NET/Core/AutoGenPoco/ActorMembership.cs index b817fa620..55236bf84 100644 --- a/SysML2.NET/Core/AutoGenPoco/ActorMembership.cs +++ b/SysML2.NET/Core/AutoGenPoco/ActorMembership.cs @@ -539,8 +539,8 @@ List Root.Elements.IRelationship.Target /// an owningRelationship, then return the string constructed by appending to the path of it's /// owningRelationship the character / followed by the string representation of its position in the list /// of ownedRelatedElements of the owningRelationship (indexed starting at 1). Otherwise, return the - /// empty string. (Note that this operation is overridden for Relationships - /// to use owningRelatedElement when appropriate.) + /// empty string.(Note that this operation is overridden for Relationships to use owningRelatedElement + /// when appropriate.) /// /// /// The expected diff --git a/SysML2.NET/Core/AutoGenPoco/AllocationDefinition.cs b/SysML2.NET/Core/AutoGenPoco/AllocationDefinition.cs index 56e9a7f76..080b3b2cd 100644 --- a/SysML2.NET/Core/AutoGenPoco/AllocationDefinition.cs +++ b/SysML2.NET/Core/AutoGenPoco/AllocationDefinition.cs @@ -323,11 +323,11 @@ public AllocationDefinition() /// /// Whether all things that meet the classification conditions of this Type must be classified by the - /// Type. (A Type gives conditions that must be met by whatever it - /// classifies, but when isSufficient is false, things may meet those conditions but still not be - /// classified by the Type. For example, a Type Car that is not sufficient could require everything it - /// classifies to have four wheels, but not all four wheeled things would classify as cars. However, if - /// the Type Car were sufficient, it would classify all four-wheeled things.) + /// Type.(A Type gives conditions that must be met by whatever it classifies, but when isSufficient + /// is false, things may meet those conditions but still not be classified by the Type. For example, a + /// Type Car that is not sufficient could require everything it classifies to have four wheels, but not + /// all four wheeled things would classify as cars. However, if the Type Car were sufficient, it would + /// classify all four-wheeled things.) /// [Property(xmiId: "_18_5_3_b9102da_1564072709069_937523_30797", aggregation: AggregationKind.None, lowerValue: 1, upperValue: 1, isOrdered: false, isReadOnly: false, isDerived: false, isDerivedUnion: false, isUnique: true, defaultValue: "false")] [RedefinedByProperty("IConnectionDefinition.IsSufficient")] @@ -613,7 +613,7 @@ bool Core.Types.IType.IsSufficient public List ownedMembership => this.ComputeOwnedMembership(); /// - /// The MetadataUsages that are ownedUsages of this Definition. + /// The MetadataUsages that are ownedMembers of this Definition. /// [Property(xmiId: "_19_0_4_12e503d9_1661488358064_457109_2881", aggregation: AggregationKind.None, lowerValue: 0, upperValue: int.MaxValue, isOrdered: true, isReadOnly: false, isDerived: true, isDerivedUnion: false, isUnique: true, defaultValue: null)] [SubsettedProperty(propertyName: "_19_0_2_12e503d9_1591482567975_649284_3005")] @@ -1174,8 +1174,8 @@ List Root.Elements.IRelationship.Target /// an owningRelationship, then return the string constructed by appending to the path of it's /// owningRelationship the character / followed by the string representation of its position in the list /// of ownedRelatedElements of the owningRelationship (indexed starting at 1). Otherwise, return the - /// empty string. (Note that this operation is overridden for Relationships - /// to use owningRelatedElement when appropriate.) + /// empty string.(Note that this operation is overridden for Relationships to use owningRelatedElement + /// when appropriate.) /// /// /// The expected @@ -1208,13 +1208,12 @@ List Root.Elements.IRelationship.Target /// /// Return a subset of memberships, removing those Memberships whose memberElements are Features and for - /// which either of the following two conditions holds:
    - ///
  1. The memberElement of the Membership is included in redefined Features of another - /// Membership in memberships.
  2. One of the redefined Features of the - /// Membership is a directly redefinedFeature of an ownedFeature of this Type.
  3. - ///
For this purpose, the redefined Features of a Membership - /// whose memberElement is a Feature includes the memberElement and all Features directly or indirectly - /// redefined by the memberElement. + /// which either of the following two conditions holds:
  1. The memberElement of the Membership is + /// included in redefined Features of another Membership in memberships.
  2. One of the redefined + /// Features of the Membership is a directly redefinedFeature of an ownedFeature of this + /// Type.
For this purpose, the redefined Features of a Membership whose memberElement is a + /// Feature includes the memberElement and all Features directly or indirectly redefined by the + /// memberElement. ///
/// /// No documentation provided diff --git a/SysML2.NET/Core/AutoGenPoco/AllocationUsage.cs b/SysML2.NET/Core/AutoGenPoco/AllocationUsage.cs index 773ddbbc9..1ae894fef 100644 --- a/SysML2.NET/Core/AutoGenPoco/AllocationUsage.cs +++ b/SysML2.NET/Core/AutoGenPoco/AllocationUsage.cs @@ -473,11 +473,11 @@ public AllocationUsage() /// /// Whether all things that meet the classification conditions of this Type must be classified by the - /// Type. (A Type gives conditions that must be met by whatever it - /// classifies, but when isSufficient is false, things may meet those conditions but still not be - /// classified by the Type. For example, a Type Car that is not sufficient could require everything it - /// classifies to have four wheels, but not all four wheeled things would classify as cars. However, if - /// the Type Car were sufficient, it would classify all four-wheeled things.) + /// Type.(A Type gives conditions that must be met by whatever it classifies, but when isSufficient + /// is false, things may meet those conditions but still not be classified by the Type. For example, a + /// Type Car that is not sufficient could require everything it classifies to have four wheels, but not + /// all four wheeled things would classify as cars. However, if the Type Car were sufficient, it would + /// classify all four-wheeled things.) /// [Property(xmiId: "_18_5_3_b9102da_1564072709069_937523_30797", aggregation: AggregationKind.None, lowerValue: 1, upperValue: 1, isOrdered: false, isReadOnly: false, isDerived: false, isDerivedUnion: false, isUnique: true, defaultValue: "false")] [Implements(implementation: "IType.IsSufficient")] @@ -525,9 +525,9 @@ bool Core.Features.IFeature.IsVariable /// Whether this Usage may be time varying (that is, whether it is featured by the snapshots of its /// owningType, rather than being featured by the owningType itself). However, if isConstant is also /// true, then the value of the Usage is nevertheless constant over the entire duration of an instance - /// of its owningType (that is, it has the same value on all snapshots). The - /// property mayTimeVary redefines the KerML property Feature::isVariable, making it derived. The - /// property isConstant is inherited from Feature. + /// of its owningType (that is, it has the same value on all snapshots).The property mayTimeVary + /// redefines the KerML property Feature::isVariable, making it derived. The property isConstant is + /// inherited from Feature. /// [Property(xmiId: "_2022x_2_12e503d9_1737227200362_771035_69", aggregation: AggregationKind.None, lowerValue: 1, upperValue: 1, isOrdered: false, isReadOnly: false, isDerived: true, isDerivedUnion: false, isUnique: true, defaultValue: null)] [RedefinedProperty(propertyName: "_2022x_2_12e503d9_1725998273002_23711_212")] @@ -628,8 +628,8 @@ bool Core.Features.IFeature.IsVariable /// /// The ConnectorAsUsages that are nestedUsages of this Usage. Note that this list includes - /// BindingConnectorAsUsages, SuccessionAsUsages, and FlowConnectionUsages because these are - /// ConnectorAsUsages even though they are not ConnectionUsages. + /// BindingConnectorAsUsages, SuccessionAsUsages, and FlowUsages because these are ConnectorAsUsages + /// even though they are not ConnectionUsages. /// [Property(xmiId: "_19_0_2_12e503d9_1591479754895_422988_1242", aggregation: AggregationKind.None, lowerValue: 0, upperValue: int.MaxValue, isOrdered: true, isReadOnly: false, isDerived: true, isDerivedUnion: false, isUnique: true, defaultValue: null)] [SubsettedProperty(propertyName: "_18_5_3_12e503d9_1565472757327_162097_21259")] @@ -677,7 +677,7 @@ bool Core.Features.IFeature.IsVariable public List nestedItem => this.ComputeNestedItem(); /// - /// The MetadataUsages that are nestedUsages of this of this Usage. + /// The MetadataUsages that are ownedMembers of this of this Usage. /// [Property(xmiId: "_19_0_4_12e503d9_1661488589862_120785_2970", aggregation: AggregationKind.None, lowerValue: 0, upperValue: int.MaxValue, isOrdered: true, isReadOnly: false, isDerived: true, isDerivedUnion: false, isUnique: true, defaultValue: null)] [SubsettedProperty(propertyName: "_19_0_2_12e503d9_1591482421103_284620_2978")] @@ -1369,9 +1369,8 @@ List Root.Elements.IRelationship.Target public FeatureDirectionKind? DirectionOfExcluding(IFeature feature, List excluded) => this.ComputeDirectionOfExcludingOperation(feature, excluded); /// - /// If a Feature has no declaredName or declaredShortName , then its - /// effective name is given by the effective name of the Feature returned by the namingFeature() - /// operation, if any. + /// If a Feature has no declaredName or declaredShortName, then its effective name is given by the + /// effective name of the Feature returned by the namingFeature() operation, if any. /// /// /// The expected @@ -1476,11 +1475,10 @@ List Root.Elements.IRelationship.Target /// /// A Feature is compatible with an otherType if it either directly or indirectly specializes the - /// otherType or if the otherType is also a Feature and all of the following are true. - ///
  1. Neither this Feature or the otherType have any - /// ownedFeatures.
  2. This Feature directly or indirectly redefines a - /// Feature that is also directly or indirectly redefined by the otherType.
  3. - ///
  4. This Feature can access the otherType.
+ /// otherType or if the otherType is also a Feature and all of the following are true.
  1. Neither + /// this Feature or the otherType have any ownedFeatures.
  2. This Feature directly or indirectly + /// redefines a Feature that is also directly or indirectly redefined by the otherType.
  3. This + /// Feature can access the otherType.
///
/// /// No documentation provided @@ -1647,8 +1645,8 @@ List Root.Elements.IRelationship.Target /// an owningRelationship, then return the string constructed by appending to the path of it's /// owningRelationship the character / followed by the string representation of its position in the list /// of ownedRelatedElements of the owningRelationship (indexed starting at 1). Otherwise, return the - /// empty string. (Note that this operation is overridden for Relationships - /// to use owningRelatedElement when appropriate.) + /// empty string.(Note that this operation is overridden for Relationships to use owningRelatedElement + /// when appropriate.) /// /// /// The expected @@ -1713,13 +1711,12 @@ List Root.Elements.IRelationship.Target /// /// Return a subset of memberships, removing those Memberships whose memberElements are Features and for - /// which either of the following two conditions holds:
    - ///
  1. The memberElement of the Membership is included in redefined Features of another - /// Membership in memberships.
  2. One of the redefined Features of the - /// Membership is a directly redefinedFeature of an ownedFeature of this Type.
  3. - ///
For this purpose, the redefined Features of a Membership - /// whose memberElement is a Feature includes the memberElement and all Features directly or indirectly - /// redefined by the memberElement. + /// which either of the following two conditions holds:
  1. The memberElement of the Membership is + /// included in redefined Features of another Membership in memberships.
  2. One of the redefined + /// Features of the Membership is a directly redefinedFeature of an ownedFeature of this + /// Type.
For this purpose, the redefined Features of a Membership whose memberElement is a + /// Feature includes the memberElement and all Features directly or indirectly redefined by the + /// memberElement. ///
/// /// No documentation provided @@ -1846,11 +1843,11 @@ List Root.Elements.IRelationship.Target /// Return the Features used to determine the types of this Feature (other than this Feature itself). If /// this Feature is not conjugated, then the typingFeatures consist of all subsetted Features, except /// from CrossSubsetting, and the last chainingFeature (if any). If this Feature is conjugated, then the - /// typingFeatures are only its originalType (if the originalType is a Feature). - /// Note. CrossSubsetting is excluded from the determination of the type of a - /// Feature in order to avoid circularity in the construction of implied CrossSubsetting relationships. - /// The validateFeatureCrossFeatureType requires that the crossFeature of a Feature have the same type - /// as the Feature. + /// typingFeatures are only its originalType (if the originalType is a Feature).Note. + /// CrossSubsetting is excluded from the determination of the type of a Feature in order to avoid + /// circularity in the construction of implied CrossSubsetting relationships. The + /// validateFeatureCrossFeatureType requires that the crossFeature of a Feature have the same type as + /// the Feature. /// /// /// The expected collection of diff --git a/SysML2.NET/Core/AutoGenPoco/AnalysisCaseDefinition.cs b/SysML2.NET/Core/AutoGenPoco/AnalysisCaseDefinition.cs index 4707948d4..0c05b10bc 100644 --- a/SysML2.NET/Core/AutoGenPoco/AnalysisCaseDefinition.cs +++ b/SysML2.NET/Core/AutoGenPoco/AnalysisCaseDefinition.cs @@ -306,9 +306,9 @@ public AnalysisCaseDefinition() /// /// Whether this Function can be used as the function of a model-level evaluable InvocationExpression. /// Certain Functions from the Kernel Functions Library are considered to have isModelLevelEvaluable = - /// true. For all other Functions it is false. Note: See the - /// specification of the KerML concrete syntax notation for Expressions for an identification of which - /// library Functions are model-level evaluable. + /// true. For all other Functions it is false.Note: See the specification of the KerML + /// concrete syntax notation for Expressions for an identification of which library Functions are + /// model-level evaluable. /// [Property(xmiId: "_19_0_4_12e503d9_1617395221463_139517_26381", aggregation: AggregationKind.None, lowerValue: 1, upperValue: 1, isOrdered: false, isReadOnly: false, isDerived: true, isDerivedUnion: false, isUnique: true, defaultValue: null)] [Implements(implementation: "IFunction.IsModelLevelEvaluable")] @@ -316,11 +316,11 @@ public AnalysisCaseDefinition() /// /// Whether all things that meet the classification conditions of this Type must be classified by the - /// Type. (A Type gives conditions that must be met by whatever it - /// classifies, but when isSufficient is false, things may meet those conditions but still not be - /// classified by the Type. For example, a Type Car that is not sufficient could require everything it - /// classifies to have four wheels, but not all four wheeled things would classify as cars. However, if - /// the Type Car were sufficient, it would classify all four-wheeled things.) + /// Type.(A Type gives conditions that must be met by whatever it classifies, but when isSufficient + /// is false, things may meet those conditions but still not be classified by the Type. For example, a + /// Type Car that is not sufficient could require everything it classifies to have four wheels, but not + /// all four wheeled things would classify as cars. However, if the Type Car were sufficient, it would + /// classify all four-wheeled things.) /// [Property(xmiId: "_18_5_3_b9102da_1564072709069_937523_30797", aggregation: AggregationKind.None, lowerValue: 1, upperValue: 1, isOrdered: false, isReadOnly: false, isDerived: false, isDerivedUnion: false, isUnique: true, defaultValue: "false")] [Implements(implementation: "IType.IsSufficient")] @@ -606,7 +606,7 @@ public AnalysisCaseDefinition() public List ownedMembership => this.ComputeOwnedMembership(); /// - /// The MetadataUsages that are ownedUsages of this Definition. + /// The MetadataUsages that are ownedMembers of this Definition. /// [Property(xmiId: "_19_0_4_12e503d9_1661488358064_457109_2881", aggregation: AggregationKind.None, lowerValue: 0, upperValue: int.MaxValue, isOrdered: true, isReadOnly: false, isDerived: true, isDerivedUnion: false, isUnique: true, defaultValue: null)] [SubsettedProperty(propertyName: "_19_0_2_12e503d9_1591482567975_649284_3005")] @@ -1117,8 +1117,8 @@ public AnalysisCaseDefinition() /// an owningRelationship, then return the string constructed by appending to the path of it's /// owningRelationship the character / followed by the string representation of its position in the list /// of ownedRelatedElements of the owningRelationship (indexed starting at 1). Otherwise, return the - /// empty string. (Note that this operation is overridden for Relationships - /// to use owningRelatedElement when appropriate.) + /// empty string.(Note that this operation is overridden for Relationships to use owningRelatedElement + /// when appropriate.) /// /// /// The expected @@ -1140,13 +1140,12 @@ public AnalysisCaseDefinition() /// /// Return a subset of memberships, removing those Memberships whose memberElements are Features and for - /// which either of the following two conditions holds:
    - ///
  1. The memberElement of the Membership is included in redefined Features of another - /// Membership in memberships.
  2. One of the redefined Features of the - /// Membership is a directly redefinedFeature of an ownedFeature of this Type.
  3. - ///
For this purpose, the redefined Features of a Membership - /// whose memberElement is a Feature includes the memberElement and all Features directly or indirectly - /// redefined by the memberElement. + /// which either of the following two conditions holds:
  1. The memberElement of the Membership is + /// included in redefined Features of another Membership in memberships.
  2. One of the redefined + /// Features of the Membership is a directly redefinedFeature of an ownedFeature of this + /// Type.
For this purpose, the redefined Features of a Membership whose memberElement is a + /// Feature includes the memberElement and all Features directly or indirectly redefined by the + /// memberElement. ///
/// /// No documentation provided diff --git a/SysML2.NET/Core/AutoGenPoco/AnalysisCaseUsage.cs b/SysML2.NET/Core/AutoGenPoco/AnalysisCaseUsage.cs index ba833c90a..8c2a74959 100644 --- a/SysML2.NET/Core/AutoGenPoco/AnalysisCaseUsage.cs +++ b/SysML2.NET/Core/AutoGenPoco/AnalysisCaseUsage.cs @@ -483,11 +483,11 @@ public AnalysisCaseUsage() /// /// Whether all things that meet the classification conditions of this Type must be classified by the - /// Type. (A Type gives conditions that must be met by whatever it - /// classifies, but when isSufficient is false, things may meet those conditions but still not be - /// classified by the Type. For example, a Type Car that is not sufficient could require everything it - /// classifies to have four wheels, but not all four wheeled things would classify as cars. However, if - /// the Type Car were sufficient, it would classify all four-wheeled things.) + /// Type.(A Type gives conditions that must be met by whatever it classifies, but when isSufficient + /// is false, things may meet those conditions but still not be classified by the Type. For example, a + /// Type Car that is not sufficient could require everything it classifies to have four wheels, but not + /// all four wheeled things would classify as cars. However, if the Type Car were sufficient, it would + /// classify all four-wheeled things.) /// [Property(xmiId: "_18_5_3_b9102da_1564072709069_937523_30797", aggregation: AggregationKind.None, lowerValue: 1, upperValue: 1, isOrdered: false, isReadOnly: false, isDerived: false, isDerivedUnion: false, isUnique: true, defaultValue: "false")] [Implements(implementation: "IType.IsSufficient")] @@ -525,9 +525,9 @@ bool Core.Features.IFeature.IsVariable /// Whether this Usage may be time varying (that is, whether it is featured by the snapshots of its /// owningType, rather than being featured by the owningType itself). However, if isConstant is also /// true, then the value of the Usage is nevertheless constant over the entire duration of an instance - /// of its owningType (that is, it has the same value on all snapshots). The - /// property mayTimeVary redefines the KerML property Feature::isVariable, making it derived. The - /// property isConstant is inherited from Feature. + /// of its owningType (that is, it has the same value on all snapshots).The property mayTimeVary + /// redefines the KerML property Feature::isVariable, making it derived. The property isConstant is + /// inherited from Feature. /// [Property(xmiId: "_2022x_2_12e503d9_1737227200362_771035_69", aggregation: AggregationKind.None, lowerValue: 1, upperValue: 1, isOrdered: false, isReadOnly: false, isDerived: true, isDerivedUnion: false, isUnique: true, defaultValue: null)] [RedefinedProperty(propertyName: "_2022x_2_12e503d9_1725998273002_23711_212")] @@ -628,8 +628,8 @@ bool Core.Features.IFeature.IsVariable /// /// The ConnectorAsUsages that are nestedUsages of this Usage. Note that this list includes - /// BindingConnectorAsUsages, SuccessionAsUsages, and FlowConnectionUsages because these are - /// ConnectorAsUsages even though they are not ConnectionUsages. + /// BindingConnectorAsUsages, SuccessionAsUsages, and FlowUsages because these are ConnectorAsUsages + /// even though they are not ConnectionUsages. /// [Property(xmiId: "_19_0_2_12e503d9_1591479754895_422988_1242", aggregation: AggregationKind.None, lowerValue: 0, upperValue: int.MaxValue, isOrdered: true, isReadOnly: false, isDerived: true, isDerivedUnion: false, isUnique: true, defaultValue: null)] [SubsettedProperty(propertyName: "_18_5_3_12e503d9_1565472757327_162097_21259")] @@ -677,7 +677,7 @@ bool Core.Features.IFeature.IsVariable public List nestedItem => this.ComputeNestedItem(); /// - /// The MetadataUsages that are nestedUsages of this of this Usage. + /// The MetadataUsages that are ownedMembers of this of this Usage. /// [Property(xmiId: "_19_0_4_12e503d9_1661488589862_120785_2970", aggregation: AggregationKind.None, lowerValue: 0, upperValue: int.MaxValue, isOrdered: true, isReadOnly: false, isDerived: true, isDerivedUnion: false, isUnique: true, defaultValue: null)] [SubsettedProperty(propertyName: "_19_0_2_12e503d9_1591482421103_284620_2978")] @@ -1346,9 +1346,8 @@ bool Core.Features.IFeature.IsVariable public FeatureDirectionKind? DirectionOfExcluding(IFeature feature, List excluded) => this.ComputeDirectionOfExcludingOperation(feature, excluded); /// - /// If a Feature has no declaredName or declaredShortName , then its - /// effective name is given by the effective name of the Feature returned by the namingFeature() - /// operation, if any. + /// If a Feature has no declaredName or declaredShortName, then its effective name is given by the + /// effective name of the Feature returned by the namingFeature() operation, if any. /// /// /// The expected @@ -1487,11 +1486,10 @@ bool Core.Features.IFeature.IsVariable /// /// A Feature is compatible with an otherType if it either directly or indirectly specializes the - /// otherType or if the otherType is also a Feature and all of the following are true. - ///
  1. Neither this Feature or the otherType have any - /// ownedFeatures.
  2. This Feature directly or indirectly redefines a - /// Feature that is also directly or indirectly redefined by the otherType.
  3. - ///
  4. This Feature can access the otherType.
+ /// otherType or if the otherType is also a Feature and all of the following are true.
  1. Neither + /// this Feature or the otherType have any ownedFeatures.
  2. This Feature directly or indirectly + /// redefines a Feature that is also directly or indirectly redefined by the otherType.
  3. This + /// Feature can access the otherType.
///
/// /// No documentation provided @@ -1601,11 +1599,11 @@ bool Core.Features.IFeature.IsVariable /// Return whether this Expression is model-level evaluable. The visited parameter is used to track /// possible circular Feature references made from FeatureReferenceExpressions (see the redefinition of /// this operation for FeatureReferenceExpression). Such circular references are not allowed in - /// model-level evaluable expressions. An Expression that is not otherwise - /// specialized is model-level evaluable if it has no (non-implied) ownedSpecializations and all its - /// ownedFeatures are either in parameters, the result parameter or a result Expression owned via a - /// ResultExpressionMembership. The parameters must not have any ownedFeatures or a FeatureValue, and - /// the result Expression must be model-level evaluable. + /// model-level evaluable expressions.An Expression that is not otherwise specialized is model-level + /// evaluable if it has no (non-implied) ownedSpecializations and all its ownedFeatures are either in + /// parameters, the result parameter or a result Expression owned via a ResultExpressionMembership. The + /// parameters must not have any ownedFeatures or a FeatureValue, and the result Expression must be + /// model-level evaluable. /// /// /// No documentation provided @@ -1688,8 +1686,8 @@ bool Core.Features.IFeature.IsVariable /// an owningRelationship, then return the string constructed by appending to the path of it's /// owningRelationship the character / followed by the string representation of its position in the list /// of ownedRelatedElements of the owningRelationship (indexed starting at 1). Otherwise, return the - /// empty string. (Note that this operation is overridden for Relationships - /// to use owningRelatedElement when appropriate.) + /// empty string.(Note that this operation is overridden for Relationships to use owningRelatedElement + /// when appropriate.) /// /// /// The expected @@ -1743,13 +1741,12 @@ bool Core.Features.IFeature.IsVariable /// /// Return a subset of memberships, removing those Memberships whose memberElements are Features and for - /// which either of the following two conditions holds:
    - ///
  1. The memberElement of the Membership is included in redefined Features of another - /// Membership in memberships.
  2. One of the redefined Features of the - /// Membership is a directly redefinedFeature of an ownedFeature of this Type.
  3. - ///
For this purpose, the redefined Features of a Membership - /// whose memberElement is a Feature includes the memberElement and all Features directly or indirectly - /// redefined by the memberElement. + /// which either of the following two conditions holds:
  1. The memberElement of the Membership is + /// included in redefined Features of another Membership in memberships.
  2. One of the redefined + /// Features of the Membership is a directly redefinedFeature of an ownedFeature of this + /// Type.
For this purpose, the redefined Features of a Membership whose memberElement is a + /// Feature includes the memberElement and all Features directly or indirectly redefined by the + /// memberElement. ///
/// /// No documentation provided @@ -1876,11 +1873,11 @@ bool Core.Features.IFeature.IsVariable /// Return the Features used to determine the types of this Feature (other than this Feature itself). If /// this Feature is not conjugated, then the typingFeatures consist of all subsetted Features, except /// from CrossSubsetting, and the last chainingFeature (if any). If this Feature is conjugated, then the - /// typingFeatures are only its originalType (if the originalType is a Feature). - /// Note. CrossSubsetting is excluded from the determination of the type of a - /// Feature in order to avoid circularity in the construction of implied CrossSubsetting relationships. - /// The validateFeatureCrossFeatureType requires that the crossFeature of a Feature have the same type - /// as the Feature. + /// typingFeatures are only its originalType (if the originalType is a Feature).Note. + /// CrossSubsetting is excluded from the determination of the type of a Feature in order to avoid + /// circularity in the construction of implied CrossSubsetting relationships. The + /// validateFeatureCrossFeatureType requires that the crossFeature of a Feature have the same type as + /// the Feature. /// /// /// The expected collection of diff --git a/SysML2.NET/Core/AutoGenPoco/AnnotatingElement.cs b/SysML2.NET/Core/AutoGenPoco/AnnotatingElement.cs index d89032412..5f740862b 100644 --- a/SysML2.NET/Core/AutoGenPoco/AnnotatingElement.cs +++ b/SysML2.NET/Core/AutoGenPoco/AnnotatingElement.cs @@ -307,8 +307,8 @@ public AnnotatingElement() /// an owningRelationship, then return the string constructed by appending to the path of it's /// owningRelationship the character / followed by the string representation of its position in the list /// of ownedRelatedElements of the owningRelationship (indexed starting at 1). Otherwise, return the - /// empty string. (Note that this operation is overridden for Relationships - /// to use owningRelatedElement when appropriate.) + /// empty string.(Note that this operation is overridden for Relationships to use owningRelatedElement + /// when appropriate.) /// /// /// The expected diff --git a/SysML2.NET/Core/AutoGenPoco/Annotation.cs b/SysML2.NET/Core/AutoGenPoco/Annotation.cs index c9b494b4f..e7ee7c052 100644 --- a/SysML2.NET/Core/AutoGenPoco/Annotation.cs +++ b/SysML2.NET/Core/AutoGenPoco/Annotation.cs @@ -407,8 +407,8 @@ List Root.Elements.IRelationship.Target /// an owningRelationship, then return the string constructed by appending to the path of it's /// owningRelationship the character / followed by the string representation of its position in the list /// of ownedRelatedElements of the owningRelationship (indexed starting at 1). Otherwise, return the - /// empty string. (Note that this operation is overridden for Relationships - /// to use owningRelatedElement when appropriate.) + /// empty string.(Note that this operation is overridden for Relationships to use owningRelatedElement + /// when appropriate.) /// /// /// The expected diff --git a/SysML2.NET/Core/AutoGenPoco/AssertConstraintUsage.cs b/SysML2.NET/Core/AutoGenPoco/AssertConstraintUsage.cs index c12dfa4b0..fd0fa8c7e 100644 --- a/SysML2.NET/Core/AutoGenPoco/AssertConstraintUsage.cs +++ b/SysML2.NET/Core/AutoGenPoco/AssertConstraintUsage.cs @@ -465,11 +465,11 @@ public AssertConstraintUsage() /// /// Whether all things that meet the classification conditions of this Type must be classified by the - /// Type. (A Type gives conditions that must be met by whatever it - /// classifies, but when isSufficient is false, things may meet those conditions but still not be - /// classified by the Type. For example, a Type Car that is not sufficient could require everything it - /// classifies to have four wheels, but not all four wheeled things would classify as cars. However, if - /// the Type Car were sufficient, it would classify all four-wheeled things.) + /// Type.(A Type gives conditions that must be met by whatever it classifies, but when isSufficient + /// is false, things may meet those conditions but still not be classified by the Type. For example, a + /// Type Car that is not sufficient could require everything it classifies to have four wheels, but not + /// all four wheeled things would classify as cars. However, if the Type Car were sufficient, it would + /// classify all four-wheeled things.) /// [Property(xmiId: "_18_5_3_b9102da_1564072709069_937523_30797", aggregation: AggregationKind.None, lowerValue: 1, upperValue: 1, isOrdered: false, isReadOnly: false, isDerived: false, isDerivedUnion: false, isUnique: true, defaultValue: "false")] [Implements(implementation: "IType.IsSufficient")] @@ -507,9 +507,9 @@ bool Core.Features.IFeature.IsVariable /// Whether this Usage may be time varying (that is, whether it is featured by the snapshots of its /// owningType, rather than being featured by the owningType itself). However, if isConstant is also /// true, then the value of the Usage is nevertheless constant over the entire duration of an instance - /// of its owningType (that is, it has the same value on all snapshots). The - /// property mayTimeVary redefines the KerML property Feature::isVariable, making it derived. The - /// property isConstant is inherited from Feature. + /// of its owningType (that is, it has the same value on all snapshots).The property mayTimeVary + /// redefines the KerML property Feature::isVariable, making it derived. The property isConstant is + /// inherited from Feature. /// [Property(xmiId: "_2022x_2_12e503d9_1737227200362_771035_69", aggregation: AggregationKind.None, lowerValue: 1, upperValue: 1, isOrdered: false, isReadOnly: false, isDerived: true, isDerivedUnion: false, isUnique: true, defaultValue: null)] [RedefinedProperty(propertyName: "_2022x_2_12e503d9_1725998273002_23711_212")] @@ -610,8 +610,8 @@ bool Core.Features.IFeature.IsVariable /// /// The ConnectorAsUsages that are nestedUsages of this Usage. Note that this list includes - /// BindingConnectorAsUsages, SuccessionAsUsages, and FlowConnectionUsages because these are - /// ConnectorAsUsages even though they are not ConnectionUsages. + /// BindingConnectorAsUsages, SuccessionAsUsages, and FlowUsages because these are ConnectorAsUsages + /// even though they are not ConnectionUsages. /// [Property(xmiId: "_19_0_2_12e503d9_1591479754895_422988_1242", aggregation: AggregationKind.None, lowerValue: 0, upperValue: int.MaxValue, isOrdered: true, isReadOnly: false, isDerived: true, isDerivedUnion: false, isUnique: true, defaultValue: null)] [SubsettedProperty(propertyName: "_18_5_3_12e503d9_1565472757327_162097_21259")] @@ -659,7 +659,7 @@ bool Core.Features.IFeature.IsVariable public List nestedItem => this.ComputeNestedItem(); /// - /// The MetadataUsages that are nestedUsages of this of this Usage. + /// The MetadataUsages that are ownedMembers of this of this Usage. /// [Property(xmiId: "_19_0_4_12e503d9_1661488589862_120785_2970", aggregation: AggregationKind.None, lowerValue: 0, upperValue: int.MaxValue, isOrdered: true, isReadOnly: false, isDerived: true, isDerivedUnion: false, isUnique: true, defaultValue: null)] [SubsettedProperty(propertyName: "_19_0_2_12e503d9_1591482421103_284620_2978")] @@ -1299,9 +1299,8 @@ bool Core.Features.IFeature.IsVariable public FeatureDirectionKind? DirectionOfExcluding(IFeature feature, List excluded) => this.ComputeDirectionOfExcludingOperation(feature, excluded); /// - /// If a Feature has no declaredName or declaredShortName , then its - /// effective name is given by the effective name of the Feature returned by the namingFeature() - /// operation, if any. + /// If a Feature has no declaredName or declaredShortName, then its effective name is given by the + /// effective name of the Feature returned by the namingFeature() operation, if any. /// /// /// The expected @@ -1420,11 +1419,10 @@ bool Core.Features.IFeature.IsVariable /// /// A Feature is compatible with an otherType if it either directly or indirectly specializes the - /// otherType or if the otherType is also a Feature and all of the following are true. - ///
  1. Neither this Feature or the otherType have any - /// ownedFeatures.
  2. This Feature directly or indirectly redefines a - /// Feature that is also directly or indirectly redefined by the otherType.
  3. - ///
  4. This Feature can access the otherType.
+ /// otherType or if the otherType is also a Feature and all of the following are true.
  1. Neither + /// this Feature or the otherType have any ownedFeatures.
  2. This Feature directly or indirectly + /// redefines a Feature that is also directly or indirectly redefined by the otherType.
  3. This + /// Feature can access the otherType.
///
/// /// No documentation provided @@ -1524,11 +1522,11 @@ bool Core.Features.IFeature.IsVariable /// Return whether this Expression is model-level evaluable. The visited parameter is used to track /// possible circular Feature references made from FeatureReferenceExpressions (see the redefinition of /// this operation for FeatureReferenceExpression). Such circular references are not allowed in - /// model-level evaluable expressions. An Expression that is not otherwise - /// specialized is model-level evaluable if it has no (non-implied) ownedSpecializations and all its - /// ownedFeatures are either in parameters, the result parameter or a result Expression owned via a - /// ResultExpressionMembership. The parameters must not have any ownedFeatures or a FeatureValue, and - /// the result Expression must be model-level evaluable. + /// model-level evaluable expressions.An Expression that is not otherwise specialized is model-level + /// evaluable if it has no (non-implied) ownedSpecializations and all its ownedFeatures are either in + /// parameters, the result parameter or a result Expression owned via a ResultExpressionMembership. The + /// parameters must not have any ownedFeatures or a FeatureValue, and the result Expression must be + /// model-level evaluable. /// /// /// No documentation provided @@ -1621,8 +1619,8 @@ bool Core.Features.IFeature.IsVariable /// an owningRelationship, then return the string constructed by appending to the path of it's /// owningRelationship the character / followed by the string representation of its position in the list /// of ownedRelatedElements of the owningRelationship (indexed starting at 1). Otherwise, return the - /// empty string. (Note that this operation is overridden for Relationships - /// to use owningRelatedElement when appropriate.) + /// empty string.(Note that this operation is overridden for Relationships to use owningRelatedElement + /// when appropriate.) /// /// /// The expected @@ -1676,13 +1674,12 @@ bool Core.Features.IFeature.IsVariable /// /// Return a subset of memberships, removing those Memberships whose memberElements are Features and for - /// which either of the following two conditions holds:
    - ///
  1. The memberElement of the Membership is included in redefined Features of another - /// Membership in memberships.
  2. One of the redefined Features of the - /// Membership is a directly redefinedFeature of an ownedFeature of this Type.
  3. - ///
For this purpose, the redefined Features of a Membership - /// whose memberElement is a Feature includes the memberElement and all Features directly or indirectly - /// redefined by the memberElement. + /// which either of the following two conditions holds:
  1. The memberElement of the Membership is + /// included in redefined Features of another Membership in memberships.
  2. One of the redefined + /// Features of the Membership is a directly redefinedFeature of an ownedFeature of this + /// Type.
For this purpose, the redefined Features of a Membership whose memberElement is a + /// Feature includes the memberElement and all Features directly or indirectly redefined by the + /// memberElement. ///
/// /// No documentation provided @@ -1809,11 +1806,11 @@ bool Core.Features.IFeature.IsVariable /// Return the Features used to determine the types of this Feature (other than this Feature itself). If /// this Feature is not conjugated, then the typingFeatures consist of all subsetted Features, except /// from CrossSubsetting, and the last chainingFeature (if any). If this Feature is conjugated, then the - /// typingFeatures are only its originalType (if the originalType is a Feature). - /// Note. CrossSubsetting is excluded from the determination of the type of a - /// Feature in order to avoid circularity in the construction of implied CrossSubsetting relationships. - /// The validateFeatureCrossFeatureType requires that the crossFeature of a Feature have the same type - /// as the Feature. + /// typingFeatures are only its originalType (if the originalType is a Feature).Note. + /// CrossSubsetting is excluded from the determination of the type of a Feature in order to avoid + /// circularity in the construction of implied CrossSubsetting relationships. The + /// validateFeatureCrossFeatureType requires that the crossFeature of a Feature have the same type as + /// the Feature. /// /// /// The expected collection of diff --git a/SysML2.NET/Core/AutoGenPoco/AssignmentActionUsage.cs b/SysML2.NET/Core/AutoGenPoco/AssignmentActionUsage.cs index 92911b9e3..8e2cdc349 100644 --- a/SysML2.NET/Core/AutoGenPoco/AssignmentActionUsage.cs +++ b/SysML2.NET/Core/AutoGenPoco/AssignmentActionUsage.cs @@ -433,11 +433,11 @@ public AssignmentActionUsage() /// /// Whether all things that meet the classification conditions of this Type must be classified by the - /// Type. (A Type gives conditions that must be met by whatever it - /// classifies, but when isSufficient is false, things may meet those conditions but still not be - /// classified by the Type. For example, a Type Car that is not sufficient could require everything it - /// classifies to have four wheels, but not all four wheeled things would classify as cars. However, if - /// the Type Car were sufficient, it would classify all four-wheeled things.) + /// Type.(A Type gives conditions that must be met by whatever it classifies, but when isSufficient + /// is false, things may meet those conditions but still not be classified by the Type. For example, a + /// Type Car that is not sufficient could require everything it classifies to have four wheels, but not + /// all four wheeled things would classify as cars. However, if the Type Car were sufficient, it would + /// classify all four-wheeled things.) /// [Property(xmiId: "_18_5_3_b9102da_1564072709069_937523_30797", aggregation: AggregationKind.None, lowerValue: 1, upperValue: 1, isOrdered: false, isReadOnly: false, isDerived: false, isDerivedUnion: false, isUnique: true, defaultValue: "false")] [Implements(implementation: "IType.IsSufficient")] @@ -475,9 +475,9 @@ bool Core.Features.IFeature.IsVariable /// Whether this Usage may be time varying (that is, whether it is featured by the snapshots of its /// owningType, rather than being featured by the owningType itself). However, if isConstant is also /// true, then the value of the Usage is nevertheless constant over the entire duration of an instance - /// of its owningType (that is, it has the same value on all snapshots). The - /// property mayTimeVary redefines the KerML property Feature::isVariable, making it derived. The - /// property isConstant is inherited from Feature. + /// of its owningType (that is, it has the same value on all snapshots).The property mayTimeVary + /// redefines the KerML property Feature::isVariable, making it derived. The property isConstant is + /// inherited from Feature. /// [Property(xmiId: "_2022x_2_12e503d9_1737227200362_771035_69", aggregation: AggregationKind.None, lowerValue: 1, upperValue: 1, isOrdered: false, isReadOnly: false, isDerived: true, isDerivedUnion: false, isUnique: true, defaultValue: null)] [RedefinedProperty(propertyName: "_2022x_2_12e503d9_1725998273002_23711_212")] @@ -578,8 +578,8 @@ bool Core.Features.IFeature.IsVariable /// /// The ConnectorAsUsages that are nestedUsages of this Usage. Note that this list includes - /// BindingConnectorAsUsages, SuccessionAsUsages, and FlowConnectionUsages because these are - /// ConnectorAsUsages even though they are not ConnectionUsages. + /// BindingConnectorAsUsages, SuccessionAsUsages, and FlowUsages because these are ConnectorAsUsages + /// even though they are not ConnectionUsages. /// [Property(xmiId: "_19_0_2_12e503d9_1591479754895_422988_1242", aggregation: AggregationKind.None, lowerValue: 0, upperValue: int.MaxValue, isOrdered: true, isReadOnly: false, isDerived: true, isDerivedUnion: false, isUnique: true, defaultValue: null)] [SubsettedProperty(propertyName: "_18_5_3_12e503d9_1565472757327_162097_21259")] @@ -627,7 +627,7 @@ bool Core.Features.IFeature.IsVariable public List nestedItem => this.ComputeNestedItem(); /// - /// The MetadataUsages that are nestedUsages of this of this Usage. + /// The MetadataUsages that are ownedMembers of this of this Usage. /// [Property(xmiId: "_19_0_4_12e503d9_1661488589862_120785_2970", aggregation: AggregationKind.None, lowerValue: 0, upperValue: int.MaxValue, isOrdered: true, isReadOnly: false, isDerived: true, isDerivedUnion: false, isUnique: true, defaultValue: null)] [SubsettedProperty(propertyName: "_19_0_2_12e503d9_1591482421103_284620_2978")] @@ -1272,9 +1272,8 @@ bool Core.Features.IFeature.IsVariable public FeatureDirectionKind? DirectionOfExcluding(IFeature feature, List excluded) => this.ComputeDirectionOfExcludingOperation(feature, excluded); /// - /// If a Feature has no declaredName or declaredShortName , then its - /// effective name is given by the effective name of the Feature returned by the namingFeature() - /// operation, if any. + /// If a Feature has no declaredName or declaredShortName, then its effective name is given by the + /// effective name of the Feature returned by the namingFeature() operation, if any. /// /// /// The expected @@ -1399,11 +1398,10 @@ bool Core.Features.IFeature.IsVariable /// /// A Feature is compatible with an otherType if it either directly or indirectly specializes the - /// otherType or if the otherType is also a Feature and all of the following are true. - ///
  1. Neither this Feature or the otherType have any - /// ownedFeatures.
  2. This Feature directly or indirectly redefines a - /// Feature that is also directly or indirectly redefined by the otherType.
  3. - ///
  4. This Feature can access the otherType.
+ /// otherType or if the otherType is also a Feature and all of the following are true.
  1. Neither + /// this Feature or the otherType have any ownedFeatures.
  2. This Feature directly or indirectly + /// redefines a Feature that is also directly or indirectly redefined by the otherType.
  3. This + /// Feature can access the otherType.
///
/// /// No documentation provided @@ -1571,8 +1569,8 @@ bool Core.Features.IFeature.IsVariable /// an owningRelationship, then return the string constructed by appending to the path of it's /// owningRelationship the character / followed by the string representation of its position in the list /// of ownedRelatedElements of the owningRelationship (indexed starting at 1). Otherwise, return the - /// empty string. (Note that this operation is overridden for Relationships - /// to use owningRelatedElement when appropriate.) + /// empty string.(Note that this operation is overridden for Relationships to use owningRelatedElement + /// when appropriate.) /// /// /// The expected @@ -1626,13 +1624,12 @@ bool Core.Features.IFeature.IsVariable /// /// Return a subset of memberships, removing those Memberships whose memberElements are Features and for - /// which either of the following two conditions holds:
    - ///
  1. The memberElement of the Membership is included in redefined Features of another - /// Membership in memberships.
  2. One of the redefined Features of the - /// Membership is a directly redefinedFeature of an ownedFeature of this Type.
  3. - ///
For this purpose, the redefined Features of a Membership - /// whose memberElement is a Feature includes the memberElement and all Features directly or indirectly - /// redefined by the memberElement. + /// which either of the following two conditions holds:
  1. The memberElement of the Membership is + /// included in redefined Features of another Membership in memberships.
  2. One of the redefined + /// Features of the Membership is a directly redefinedFeature of an ownedFeature of this + /// Type.
For this purpose, the redefined Features of a Membership whose memberElement is a + /// Feature includes the memberElement and all Features directly or indirectly redefined by the + /// memberElement. ///
/// /// No documentation provided @@ -1759,11 +1756,11 @@ bool Core.Features.IFeature.IsVariable /// Return the Features used to determine the types of this Feature (other than this Feature itself). If /// this Feature is not conjugated, then the typingFeatures consist of all subsetted Features, except /// from CrossSubsetting, and the last chainingFeature (if any). If this Feature is conjugated, then the - /// typingFeatures are only its originalType (if the originalType is a Feature). - /// Note. CrossSubsetting is excluded from the determination of the type of a - /// Feature in order to avoid circularity in the construction of implied CrossSubsetting relationships. - /// The validateFeatureCrossFeatureType requires that the crossFeature of a Feature have the same type - /// as the Feature. + /// typingFeatures are only its originalType (if the originalType is a Feature).Note. + /// CrossSubsetting is excluded from the determination of the type of a Feature in order to avoid + /// circularity in the construction of implied CrossSubsetting relationships. The + /// validateFeatureCrossFeatureType requires that the crossFeature of a Feature have the same type as + /// the Feature. /// /// /// The expected collection of diff --git a/SysML2.NET/Core/AutoGenPoco/Association.cs b/SysML2.NET/Core/AutoGenPoco/Association.cs index c5f22db77..b6643bcaa 100644 --- a/SysML2.NET/Core/AutoGenPoco/Association.cs +++ b/SysML2.NET/Core/AutoGenPoco/Association.cs @@ -258,11 +258,11 @@ public Association() /// /// Whether all things that meet the classification conditions of this Type must be classified by the - /// Type. (A Type gives conditions that must be met by whatever it - /// classifies, but when isSufficient is false, things may meet those conditions but still not be - /// classified by the Type. For example, a Type Car that is not sufficient could require everything it - /// classifies to have four wheels, but not all four wheeled things would classify as cars. However, if - /// the Type Car were sufficient, it would classify all four-wheeled things.) + /// Type.(A Type gives conditions that must be met by whatever it classifies, but when isSufficient + /// is false, things may meet those conditions but still not be classified by the Type. For example, a + /// Type Car that is not sufficient could require everything it classifies to have four wheels, but not + /// all four wheeled things would classify as cars. However, if the Type Car were sufficient, it would + /// classify all four-wheeled things.) /// [Property(xmiId: "_18_5_3_b9102da_1564072709069_937523_30797", aggregation: AggregationKind.None, lowerValue: 1, upperValue: 1, isOrdered: false, isReadOnly: false, isDerived: false, isDerivedUnion: false, isUnique: true, defaultValue: "false")] [Implements(implementation: "IType.IsSufficient")] @@ -848,8 +848,8 @@ List Root.Elements.IRelationship.Target /// an owningRelationship, then return the string constructed by appending to the path of it's /// owningRelationship the character / followed by the string representation of its position in the list /// of ownedRelatedElements of the owningRelationship (indexed starting at 1). Otherwise, return the - /// empty string. (Note that this operation is overridden for Relationships - /// to use owningRelatedElement when appropriate.) + /// empty string.(Note that this operation is overridden for Relationships to use owningRelatedElement + /// when appropriate.) /// /// /// The expected @@ -882,13 +882,12 @@ List Root.Elements.IRelationship.Target /// /// Return a subset of memberships, removing those Memberships whose memberElements are Features and for - /// which either of the following two conditions holds:
    - ///
  1. The memberElement of the Membership is included in redefined Features of another - /// Membership in memberships.
  2. One of the redefined Features of the - /// Membership is a directly redefinedFeature of an ownedFeature of this Type.
  3. - ///
For this purpose, the redefined Features of a Membership - /// whose memberElement is a Feature includes the memberElement and all Features directly or indirectly - /// redefined by the memberElement. + /// which either of the following two conditions holds:
  1. The memberElement of the Membership is + /// included in redefined Features of another Membership in memberships.
  2. One of the redefined + /// Features of the Membership is a directly redefinedFeature of an ownedFeature of this + /// Type.
For this purpose, the redefined Features of a Membership whose memberElement is a + /// Feature includes the memberElement and all Features directly or indirectly redefined by the + /// memberElement. ///
/// /// No documentation provided diff --git a/SysML2.NET/Core/AutoGenPoco/AssociationStructure.cs b/SysML2.NET/Core/AutoGenPoco/AssociationStructure.cs index 9becc2cce..0cf04d1a5 100644 --- a/SysML2.NET/Core/AutoGenPoco/AssociationStructure.cs +++ b/SysML2.NET/Core/AutoGenPoco/AssociationStructure.cs @@ -260,11 +260,11 @@ public AssociationStructure() /// /// Whether all things that meet the classification conditions of this Type must be classified by the - /// Type. (A Type gives conditions that must be met by whatever it - /// classifies, but when isSufficient is false, things may meet those conditions but still not be - /// classified by the Type. For example, a Type Car that is not sufficient could require everything it - /// classifies to have four wheels, but not all four wheeled things would classify as cars. However, if - /// the Type Car were sufficient, it would classify all four-wheeled things.) + /// Type.(A Type gives conditions that must be met by whatever it classifies, but when isSufficient + /// is false, things may meet those conditions but still not be classified by the Type. For example, a + /// Type Car that is not sufficient could require everything it classifies to have four wheels, but not + /// all four wheeled things would classify as cars. However, if the Type Car were sufficient, it would + /// classify all four-wheeled things.) /// [Property(xmiId: "_18_5_3_b9102da_1564072709069_937523_30797", aggregation: AggregationKind.None, lowerValue: 1, upperValue: 1, isOrdered: false, isReadOnly: false, isDerived: false, isDerivedUnion: false, isUnique: true, defaultValue: "false")] [Implements(implementation: "IType.IsSufficient")] @@ -850,8 +850,8 @@ List Root.Elements.IRelationship.Target /// an owningRelationship, then return the string constructed by appending to the path of it's /// owningRelationship the character / followed by the string representation of its position in the list /// of ownedRelatedElements of the owningRelationship (indexed starting at 1). Otherwise, return the - /// empty string. (Note that this operation is overridden for Relationships - /// to use owningRelatedElement when appropriate.) + /// empty string.(Note that this operation is overridden for Relationships to use owningRelatedElement + /// when appropriate.) /// /// /// The expected @@ -884,13 +884,12 @@ List Root.Elements.IRelationship.Target /// /// Return a subset of memberships, removing those Memberships whose memberElements are Features and for - /// which either of the following two conditions holds:
    - ///
  1. The memberElement of the Membership is included in redefined Features of another - /// Membership in memberships.
  2. One of the redefined Features of the - /// Membership is a directly redefinedFeature of an ownedFeature of this Type.
  3. - ///
For this purpose, the redefined Features of a Membership - /// whose memberElement is a Feature includes the memberElement and all Features directly or indirectly - /// redefined by the memberElement. + /// which either of the following two conditions holds:
  1. The memberElement of the Membership is + /// included in redefined Features of another Membership in memberships.
  2. One of the redefined + /// Features of the Membership is a directly redefinedFeature of an ownedFeature of this + /// Type.
For this purpose, the redefined Features of a Membership whose memberElement is a + /// Feature includes the memberElement and all Features directly or indirectly redefined by the + /// memberElement. ///
/// /// No documentation provided diff --git a/SysML2.NET/Core/AutoGenPoco/AttributeDefinition.cs b/SysML2.NET/Core/AutoGenPoco/AttributeDefinition.cs index d91fcd5e0..8c0f9de9c 100644 --- a/SysML2.NET/Core/AutoGenPoco/AttributeDefinition.cs +++ b/SysML2.NET/Core/AutoGenPoco/AttributeDefinition.cs @@ -65,9 +65,9 @@ namespace SysML2.NET.Core.POCO.Systems.Attributes /// /// An AttributeDefinition is a Definition and a DataType of information about a quality or /// characteristic of a system or part of a system that has no independent identity other than its - /// value. All features of an AttributeDefinition must be referential (non-composite). - /// As a DataType, an AttributeDefinition must specialize, directly or indirectly, the base - /// DataType Base::DataValue from the Kernel Semantic Library. + /// value. All features of an AttributeDefinition must be referential (non-composite).As a DataType, an + /// AttributeDefinition must specialize, directly or indirectly, the base DataType Base::DataValue from + /// the Kernel Semantic Library. /// [Class(xmiId: "_18_5_3_12e503d9_1565471213468_167708_20650", isAbstract: false, isFinalSpecialization: false, isActive: false)] [GeneratedCode("SysML2.NET", "latest")] @@ -267,11 +267,11 @@ public AttributeDefinition() /// /// Whether all things that meet the classification conditions of this Type must be classified by the - /// Type. (A Type gives conditions that must be met by whatever it - /// classifies, but when isSufficient is false, things may meet those conditions but still not be - /// classified by the Type. For example, a Type Car that is not sufficient could require everything it - /// classifies to have four wheels, but not all four wheeled things would classify as cars. However, if - /// the Type Car were sufficient, it would classify all four-wheeled things.) + /// Type.(A Type gives conditions that must be met by whatever it classifies, but when isSufficient + /// is false, things may meet those conditions but still not be classified by the Type. For example, a + /// Type Car that is not sufficient could require everything it classifies to have four wheels, but not + /// all four wheeled things would classify as cars. However, if the Type Car were sufficient, it would + /// classify all four-wheeled things.) /// [Property(xmiId: "_18_5_3_b9102da_1564072709069_937523_30797", aggregation: AggregationKind.None, lowerValue: 1, upperValue: 1, isOrdered: false, isReadOnly: false, isDerived: false, isDerivedUnion: false, isUnique: true, defaultValue: "false")] [Implements(implementation: "IType.IsSufficient")] @@ -549,7 +549,7 @@ public AttributeDefinition() public List ownedMembership => this.ComputeOwnedMembership(); /// - /// The MetadataUsages that are ownedUsages of this Definition. + /// The MetadataUsages that are ownedMembers of this Definition. /// [Property(xmiId: "_19_0_4_12e503d9_1661488358064_457109_2881", aggregation: AggregationKind.None, lowerValue: 0, upperValue: int.MaxValue, isOrdered: true, isReadOnly: false, isDerived: true, isDerivedUnion: false, isUnique: true, defaultValue: null)] [SubsettedProperty(propertyName: "_19_0_2_12e503d9_1591482567975_649284_3005")] @@ -1016,8 +1016,8 @@ public AttributeDefinition() /// an owningRelationship, then return the string constructed by appending to the path of it's /// owningRelationship the character / followed by the string representation of its position in the list /// of ownedRelatedElements of the owningRelationship (indexed starting at 1). Otherwise, return the - /// empty string. (Note that this operation is overridden for Relationships - /// to use owningRelatedElement when appropriate.) + /// empty string.(Note that this operation is overridden for Relationships to use owningRelatedElement + /// when appropriate.) /// /// /// The expected @@ -1039,13 +1039,12 @@ public AttributeDefinition() /// /// Return a subset of memberships, removing those Memberships whose memberElements are Features and for - /// which either of the following two conditions holds:
    - ///
  1. The memberElement of the Membership is included in redefined Features of another - /// Membership in memberships.
  2. One of the redefined Features of the - /// Membership is a directly redefinedFeature of an ownedFeature of this Type.
  3. - ///
For this purpose, the redefined Features of a Membership - /// whose memberElement is a Feature includes the memberElement and all Features directly or indirectly - /// redefined by the memberElement. + /// which either of the following two conditions holds:
  1. The memberElement of the Membership is + /// included in redefined Features of another Membership in memberships.
  2. One of the redefined + /// Features of the Membership is a directly redefinedFeature of an ownedFeature of this + /// Type.
For this purpose, the redefined Features of a Membership whose memberElement is a + /// Feature includes the memberElement and all Features directly or indirectly redefined by the + /// memberElement. ///
/// /// No documentation provided diff --git a/SysML2.NET/Core/AutoGenPoco/AttributeUsage.cs b/SysML2.NET/Core/AutoGenPoco/AttributeUsage.cs index 644d4ae10..9478814a3 100644 --- a/SysML2.NET/Core/AutoGenPoco/AttributeUsage.cs +++ b/SysML2.NET/Core/AutoGenPoco/AttributeUsage.cs @@ -67,9 +67,8 @@ namespace SysML2.NET.Core.POCO.Systems.Attributes /// AttributeDefinition, an AttributeUsage is a usage of a AttributeDefinition to represent the value of /// some system quality or characteristic. However, other kinds of kernel DataTypes are also allowed, to /// permit use of DataTypes from the Kernel Model Libraries. An AttributeUsage itself as well as all its - /// nested features must be referential (non-composite). An AttributeUsage must - /// specialize, directly or indirectly, the base Feature Base::dataValues from the Kernel Semantic - /// Library. + /// nested features must be referential (non-composite).An AttributeUsage must specialize, directly or + /// indirectly, the base Feature Base::dataValues from the Kernel Semantic Library. /// [Class(xmiId: "_18_5_3_12e503d9_1565471291545_950196_20762", isAbstract: false, isFinalSpecialization: false, isActive: false)] [GeneratedCode("SysML2.NET", "latest")] @@ -416,11 +415,11 @@ public AttributeUsage() /// /// Whether all things that meet the classification conditions of this Type must be classified by the - /// Type. (A Type gives conditions that must be met by whatever it - /// classifies, but when isSufficient is false, things may meet those conditions but still not be - /// classified by the Type. For example, a Type Car that is not sufficient could require everything it - /// classifies to have four wheels, but not all four wheeled things would classify as cars. However, if - /// the Type Car were sufficient, it would classify all four-wheeled things.) + /// Type.(A Type gives conditions that must be met by whatever it classifies, but when isSufficient + /// is false, things may meet those conditions but still not be classified by the Type. For example, a + /// Type Car that is not sufficient could require everything it classifies to have four wheels, but not + /// all four wheeled things would classify as cars. However, if the Type Car were sufficient, it would + /// classify all four-wheeled things.) /// [Property(xmiId: "_18_5_3_b9102da_1564072709069_937523_30797", aggregation: AggregationKind.None, lowerValue: 1, upperValue: 1, isOrdered: false, isReadOnly: false, isDerived: false, isDerivedUnion: false, isUnique: true, defaultValue: "false")] [Implements(implementation: "IType.IsSufficient")] @@ -458,9 +457,9 @@ bool Core.Features.IFeature.IsVariable /// Whether this Usage may be time varying (that is, whether it is featured by the snapshots of its /// owningType, rather than being featured by the owningType itself). However, if isConstant is also /// true, then the value of the Usage is nevertheless constant over the entire duration of an instance - /// of its owningType (that is, it has the same value on all snapshots). The - /// property mayTimeVary redefines the KerML property Feature::isVariable, making it derived. The - /// property isConstant is inherited from Feature. + /// of its owningType (that is, it has the same value on all snapshots).The property mayTimeVary + /// redefines the KerML property Feature::isVariable, making it derived. The property isConstant is + /// inherited from Feature. /// [Property(xmiId: "_2022x_2_12e503d9_1737227200362_771035_69", aggregation: AggregationKind.None, lowerValue: 1, upperValue: 1, isOrdered: false, isReadOnly: false, isDerived: true, isDerivedUnion: false, isUnique: true, defaultValue: null)] [RedefinedProperty(propertyName: "_2022x_2_12e503d9_1725998273002_23711_212")] @@ -561,8 +560,8 @@ bool Core.Features.IFeature.IsVariable /// /// The ConnectorAsUsages that are nestedUsages of this Usage. Note that this list includes - /// BindingConnectorAsUsages, SuccessionAsUsages, and FlowConnectionUsages because these are - /// ConnectorAsUsages even though they are not ConnectionUsages. + /// BindingConnectorAsUsages, SuccessionAsUsages, and FlowUsages because these are ConnectorAsUsages + /// even though they are not ConnectionUsages. /// [Property(xmiId: "_19_0_2_12e503d9_1591479754895_422988_1242", aggregation: AggregationKind.None, lowerValue: 0, upperValue: int.MaxValue, isOrdered: true, isReadOnly: false, isDerived: true, isDerivedUnion: false, isUnique: true, defaultValue: null)] [SubsettedProperty(propertyName: "_18_5_3_12e503d9_1565472757327_162097_21259")] @@ -610,7 +609,7 @@ bool Core.Features.IFeature.IsVariable public List nestedItem => this.ComputeNestedItem(); /// - /// The MetadataUsages that are nestedUsages of this of this Usage. + /// The MetadataUsages that are ownedMembers of this of this Usage. /// [Property(xmiId: "_19_0_4_12e503d9_1661488589862_120785_2970", aggregation: AggregationKind.None, lowerValue: 0, upperValue: int.MaxValue, isOrdered: true, isReadOnly: false, isDerived: true, isDerivedUnion: false, isUnique: true, defaultValue: null)] [SubsettedProperty(propertyName: "_19_0_2_12e503d9_1591482421103_284620_2978")] @@ -1190,9 +1189,8 @@ bool Core.Features.IFeature.IsVariable public FeatureDirectionKind? DirectionOfExcluding(IFeature feature, List excluded) => this.ComputeDirectionOfExcludingOperation(feature, excluded); /// - /// If a Feature has no declaredName or declaredShortName , then its - /// effective name is given by the effective name of the Feature returned by the namingFeature() - /// operation, if any. + /// If a Feature has no declaredName or declaredShortName, then its effective name is given by the + /// effective name of the Feature returned by the namingFeature() operation, if any. /// /// /// The expected @@ -1297,11 +1295,10 @@ bool Core.Features.IFeature.IsVariable /// /// A Feature is compatible with an otherType if it either directly or indirectly specializes the - /// otherType or if the otherType is also a Feature and all of the following are true. - ///
  1. Neither this Feature or the otherType have any - /// ownedFeatures.
  2. This Feature directly or indirectly redefines a - /// Feature that is also directly or indirectly redefined by the otherType.
  3. - ///
  4. This Feature can access the otherType.
+ /// otherType or if the otherType is also a Feature and all of the following are true.
  1. Neither + /// this Feature or the otherType have any ownedFeatures.
  2. This Feature directly or indirectly + /// redefines a Feature that is also directly or indirectly redefined by the otherType.
  3. This + /// Feature can access the otherType.
///
/// /// No documentation provided @@ -1459,8 +1456,8 @@ bool Core.Features.IFeature.IsVariable /// an owningRelationship, then return the string constructed by appending to the path of it's /// owningRelationship the character / followed by the string representation of its position in the list /// of ownedRelatedElements of the owningRelationship (indexed starting at 1). Otherwise, return the - /// empty string. (Note that this operation is overridden for Relationships - /// to use owningRelatedElement when appropriate.) + /// empty string.(Note that this operation is overridden for Relationships to use owningRelatedElement + /// when appropriate.) /// /// /// The expected @@ -1514,13 +1511,12 @@ bool Core.Features.IFeature.IsVariable /// /// Return a subset of memberships, removing those Memberships whose memberElements are Features and for - /// which either of the following two conditions holds:
    - ///
  1. The memberElement of the Membership is included in redefined Features of another - /// Membership in memberships.
  2. One of the redefined Features of the - /// Membership is a directly redefinedFeature of an ownedFeature of this Type.
  3. - ///
For this purpose, the redefined Features of a Membership - /// whose memberElement is a Feature includes the memberElement and all Features directly or indirectly - /// redefined by the memberElement. + /// which either of the following two conditions holds:
  1. The memberElement of the Membership is + /// included in redefined Features of another Membership in memberships.
  2. One of the redefined + /// Features of the Membership is a directly redefinedFeature of an ownedFeature of this + /// Type.
For this purpose, the redefined Features of a Membership whose memberElement is a + /// Feature includes the memberElement and all Features directly or indirectly redefined by the + /// memberElement. ///
/// /// No documentation provided @@ -1647,11 +1643,11 @@ bool Core.Features.IFeature.IsVariable /// Return the Features used to determine the types of this Feature (other than this Feature itself). If /// this Feature is not conjugated, then the typingFeatures consist of all subsetted Features, except /// from CrossSubsetting, and the last chainingFeature (if any). If this Feature is conjugated, then the - /// typingFeatures are only its originalType (if the originalType is a Feature). - /// Note. CrossSubsetting is excluded from the determination of the type of a - /// Feature in order to avoid circularity in the construction of implied CrossSubsetting relationships. - /// The validateFeatureCrossFeatureType requires that the crossFeature of a Feature have the same type - /// as the Feature. + /// typingFeatures are only its originalType (if the originalType is a Feature).Note. + /// CrossSubsetting is excluded from the determination of the type of a Feature in order to avoid + /// circularity in the construction of implied CrossSubsetting relationships. The + /// validateFeatureCrossFeatureType requires that the crossFeature of a Feature have the same type as + /// the Feature. /// /// /// The expected collection of diff --git a/SysML2.NET/Core/AutoGenPoco/Behavior.cs b/SysML2.NET/Core/AutoGenPoco/Behavior.cs index 36558c145..ff49259b4 100644 --- a/SysML2.NET/Core/AutoGenPoco/Behavior.cs +++ b/SysML2.NET/Core/AutoGenPoco/Behavior.cs @@ -236,11 +236,11 @@ public Behavior() /// /// Whether all things that meet the classification conditions of this Type must be classified by the - /// Type. (A Type gives conditions that must be met by whatever it - /// classifies, but when isSufficient is false, things may meet those conditions but still not be - /// classified by the Type. For example, a Type Car that is not sufficient could require everything it - /// classifies to have four wheels, but not all four wheeled things would classify as cars. However, if - /// the Type Car were sufficient, it would classify all four-wheeled things.) + /// Type.(A Type gives conditions that must be met by whatever it classifies, but when isSufficient + /// is false, things may meet those conditions but still not be classified by the Type. For example, a + /// Type Car that is not sufficient could require everything it classifies to have four wheels, but not + /// all four wheeled things would classify as cars. However, if the Type Car were sufficient, it would + /// classify all four-wheeled things.) /// [Property(xmiId: "_18_5_3_b9102da_1564072709069_937523_30797", aggregation: AggregationKind.None, lowerValue: 1, upperValue: 1, isOrdered: false, isReadOnly: false, isDerived: false, isDerivedUnion: false, isUnique: true, defaultValue: "false")] [Implements(implementation: "IType.IsSufficient")] @@ -749,8 +749,8 @@ public Behavior() /// an owningRelationship, then return the string constructed by appending to the path of it's /// owningRelationship the character / followed by the string representation of its position in the list /// of ownedRelatedElements of the owningRelationship (indexed starting at 1). Otherwise, return the - /// empty string. (Note that this operation is overridden for Relationships - /// to use owningRelatedElement when appropriate.) + /// empty string.(Note that this operation is overridden for Relationships to use owningRelatedElement + /// when appropriate.) /// /// /// The expected @@ -772,13 +772,12 @@ public Behavior() /// /// Return a subset of memberships, removing those Memberships whose memberElements are Features and for - /// which either of the following two conditions holds:
    - ///
  1. The memberElement of the Membership is included in redefined Features of another - /// Membership in memberships.
  2. One of the redefined Features of the - /// Membership is a directly redefinedFeature of an ownedFeature of this Type.
  3. - ///
For this purpose, the redefined Features of a Membership - /// whose memberElement is a Feature includes the memberElement and all Features directly or indirectly - /// redefined by the memberElement. + /// which either of the following two conditions holds:
  1. The memberElement of the Membership is + /// included in redefined Features of another Membership in memberships.
  2. One of the redefined + /// Features of the Membership is a directly redefinedFeature of an ownedFeature of this + /// Type.
For this purpose, the redefined Features of a Membership whose memberElement is a + /// Feature includes the memberElement and all Features directly or indirectly redefined by the + /// memberElement. ///
/// /// No documentation provided diff --git a/SysML2.NET/Core/AutoGenPoco/BindingConnector.cs b/SysML2.NET/Core/AutoGenPoco/BindingConnector.cs index bd8c1d590..8e0f75863 100644 --- a/SysML2.NET/Core/AutoGenPoco/BindingConnector.cs +++ b/SysML2.NET/Core/AutoGenPoco/BindingConnector.cs @@ -384,11 +384,11 @@ public BindingConnector() /// /// Whether all things that meet the classification conditions of this Type must be classified by the - /// Type. (A Type gives conditions that must be met by whatever it - /// classifies, but when isSufficient is false, things may meet those conditions but still not be - /// classified by the Type. For example, a Type Car that is not sufficient could require everything it - /// classifies to have four wheels, but not all four wheeled things would classify as cars. However, if - /// the Type Car were sufficient, it would classify all four-wheeled things.) + /// Type.(A Type gives conditions that must be met by whatever it classifies, but when isSufficient + /// is false, things may meet those conditions but still not be classified by the Type. For example, a + /// Type Car that is not sufficient could require everything it classifies to have four wheels, but not + /// all four wheeled things would classify as cars. However, if the Type Car were sufficient, it would + /// classify all four-wheeled things.) /// [Property(xmiId: "_18_5_3_b9102da_1564072709069_937523_30797", aggregation: AggregationKind.None, lowerValue: 1, upperValue: 1, isOrdered: false, isReadOnly: false, isDerived: false, isDerivedUnion: false, isUnique: true, defaultValue: "false")] [Implements(implementation: "IType.IsSufficient")] @@ -957,9 +957,8 @@ List Root.Elements.IRelationship.Target public FeatureDirectionKind? DirectionOfExcluding(IFeature feature, List excluded) => this.ComputeDirectionOfExcludingOperation(feature, excluded); /// - /// If a Feature has no declaredName or declaredShortName , then its - /// effective name is given by the effective name of the Feature returned by the namingFeature() - /// operation, if any. + /// If a Feature has no declaredName or declaredShortName, then its effective name is given by the + /// effective name of the Feature returned by the namingFeature() operation, if any. /// /// /// The expected @@ -1064,11 +1063,10 @@ List Root.Elements.IRelationship.Target /// /// A Feature is compatible with an otherType if it either directly or indirectly specializes the - /// otherType or if the otherType is also a Feature and all of the following are true. - ///
  1. Neither this Feature or the otherType have any - /// ownedFeatures.
  2. This Feature directly or indirectly redefines a - /// Feature that is also directly or indirectly redefined by the otherType.
  3. - ///
  4. This Feature can access the otherType.
+ /// otherType or if the otherType is also a Feature and all of the following are true.
  1. Neither + /// this Feature or the otherType have any ownedFeatures.
  2. This Feature directly or indirectly + /// redefines a Feature that is also directly or indirectly redefined by the otherType.
  3. This + /// Feature can access the otherType.
///
/// /// No documentation provided @@ -1226,8 +1224,8 @@ List Root.Elements.IRelationship.Target /// an owningRelationship, then return the string constructed by appending to the path of it's /// owningRelationship the character / followed by the string representation of its position in the list /// of ownedRelatedElements of the owningRelationship (indexed starting at 1). Otherwise, return the - /// empty string. (Note that this operation is overridden for Relationships - /// to use owningRelatedElement when appropriate.) + /// empty string.(Note that this operation is overridden for Relationships to use owningRelatedElement + /// when appropriate.) /// /// /// The expected @@ -1283,13 +1281,12 @@ List Root.Elements.IRelationship.Target /// /// Return a subset of memberships, removing those Memberships whose memberElements are Features and for - /// which either of the following two conditions holds:
    - ///
  1. The memberElement of the Membership is included in redefined Features of another - /// Membership in memberships.
  2. One of the redefined Features of the - /// Membership is a directly redefinedFeature of an ownedFeature of this Type.
  3. - ///
For this purpose, the redefined Features of a Membership - /// whose memberElement is a Feature includes the memberElement and all Features directly or indirectly - /// redefined by the memberElement. + /// which either of the following two conditions holds:
  1. The memberElement of the Membership is + /// included in redefined Features of another Membership in memberships.
  2. One of the redefined + /// Features of the Membership is a directly redefinedFeature of an ownedFeature of this + /// Type.
For this purpose, the redefined Features of a Membership whose memberElement is a + /// Feature includes the memberElement and all Features directly or indirectly redefined by the + /// memberElement. ///
/// /// No documentation provided @@ -1416,11 +1413,11 @@ List Root.Elements.IRelationship.Target /// Return the Features used to determine the types of this Feature (other than this Feature itself). If /// this Feature is not conjugated, then the typingFeatures consist of all subsetted Features, except /// from CrossSubsetting, and the last chainingFeature (if any). If this Feature is conjugated, then the - /// typingFeatures are only its originalType (if the originalType is a Feature). - /// Note. CrossSubsetting is excluded from the determination of the type of a - /// Feature in order to avoid circularity in the construction of implied CrossSubsetting relationships. - /// The validateFeatureCrossFeatureType requires that the crossFeature of a Feature have the same type - /// as the Feature. + /// typingFeatures are only its originalType (if the originalType is a Feature).Note. + /// CrossSubsetting is excluded from the determination of the type of a Feature in order to avoid + /// circularity in the construction of implied CrossSubsetting relationships. The + /// validateFeatureCrossFeatureType requires that the crossFeature of a Feature have the same type as + /// the Feature. /// /// /// The expected collection of diff --git a/SysML2.NET/Core/AutoGenPoco/BindingConnectorAsUsage.cs b/SysML2.NET/Core/AutoGenPoco/BindingConnectorAsUsage.cs index ea5336aa1..44b9c1f9e 100644 --- a/SysML2.NET/Core/AutoGenPoco/BindingConnectorAsUsage.cs +++ b/SysML2.NET/Core/AutoGenPoco/BindingConnectorAsUsage.cs @@ -431,11 +431,11 @@ public BindingConnectorAsUsage() /// /// Whether all things that meet the classification conditions of this Type must be classified by the - /// Type. (A Type gives conditions that must be met by whatever it - /// classifies, but when isSufficient is false, things may meet those conditions but still not be - /// classified by the Type. For example, a Type Car that is not sufficient could require everything it - /// classifies to have four wheels, but not all four wheeled things would classify as cars. However, if - /// the Type Car were sufficient, it would classify all four-wheeled things.) + /// Type.(A Type gives conditions that must be met by whatever it classifies, but when isSufficient + /// is false, things may meet those conditions but still not be classified by the Type. For example, a + /// Type Car that is not sufficient could require everything it classifies to have four wheels, but not + /// all four wheeled things would classify as cars. However, if the Type Car were sufficient, it would + /// classify all four-wheeled things.) /// [Property(xmiId: "_18_5_3_b9102da_1564072709069_937523_30797", aggregation: AggregationKind.None, lowerValue: 1, upperValue: 1, isOrdered: false, isReadOnly: false, isDerived: false, isDerivedUnion: false, isUnique: true, defaultValue: "false")] [Implements(implementation: "IType.IsSufficient")] @@ -473,9 +473,9 @@ bool Core.Features.IFeature.IsVariable /// Whether this Usage may be time varying (that is, whether it is featured by the snapshots of its /// owningType, rather than being featured by the owningType itself). However, if isConstant is also /// true, then the value of the Usage is nevertheless constant over the entire duration of an instance - /// of its owningType (that is, it has the same value on all snapshots). The - /// property mayTimeVary redefines the KerML property Feature::isVariable, making it derived. The - /// property isConstant is inherited from Feature. + /// of its owningType (that is, it has the same value on all snapshots).The property mayTimeVary + /// redefines the KerML property Feature::isVariable, making it derived. The property isConstant is + /// inherited from Feature. /// [Property(xmiId: "_2022x_2_12e503d9_1737227200362_771035_69", aggregation: AggregationKind.None, lowerValue: 1, upperValue: 1, isOrdered: false, isReadOnly: false, isDerived: true, isDerivedUnion: false, isUnique: true, defaultValue: null)] [RedefinedProperty(propertyName: "_2022x_2_12e503d9_1725998273002_23711_212")] @@ -576,8 +576,8 @@ bool Core.Features.IFeature.IsVariable /// /// The ConnectorAsUsages that are nestedUsages of this Usage. Note that this list includes - /// BindingConnectorAsUsages, SuccessionAsUsages, and FlowConnectionUsages because these are - /// ConnectorAsUsages even though they are not ConnectionUsages. + /// BindingConnectorAsUsages, SuccessionAsUsages, and FlowUsages because these are ConnectorAsUsages + /// even though they are not ConnectionUsages. /// [Property(xmiId: "_19_0_2_12e503d9_1591479754895_422988_1242", aggregation: AggregationKind.None, lowerValue: 0, upperValue: int.MaxValue, isOrdered: true, isReadOnly: false, isDerived: true, isDerivedUnion: false, isUnique: true, defaultValue: null)] [SubsettedProperty(propertyName: "_18_5_3_12e503d9_1565472757327_162097_21259")] @@ -625,7 +625,7 @@ bool Core.Features.IFeature.IsVariable public List nestedItem => this.ComputeNestedItem(); /// - /// The MetadataUsages that are nestedUsages of this of this Usage. + /// The MetadataUsages that are ownedMembers of this of this Usage. /// [Property(xmiId: "_19_0_4_12e503d9_1661488589862_120785_2970", aggregation: AggregationKind.None, lowerValue: 0, upperValue: int.MaxValue, isOrdered: true, isReadOnly: false, isDerived: true, isDerivedUnion: false, isUnique: true, defaultValue: null)] [SubsettedProperty(propertyName: "_19_0_2_12e503d9_1591482421103_284620_2978")] @@ -1290,9 +1290,8 @@ List Root.Elements.IRelationship.Target public FeatureDirectionKind? DirectionOfExcluding(IFeature feature, List excluded) => this.ComputeDirectionOfExcludingOperation(feature, excluded); /// - /// If a Feature has no declaredName or declaredShortName , then its - /// effective name is given by the effective name of the Feature returned by the namingFeature() - /// operation, if any. + /// If a Feature has no declaredName or declaredShortName, then its effective name is given by the + /// effective name of the Feature returned by the namingFeature() operation, if any. /// /// /// The expected @@ -1397,11 +1396,10 @@ List Root.Elements.IRelationship.Target /// /// A Feature is compatible with an otherType if it either directly or indirectly specializes the - /// otherType or if the otherType is also a Feature and all of the following are true. - ///
  1. Neither this Feature or the otherType have any - /// ownedFeatures.
  2. This Feature directly or indirectly redefines a - /// Feature that is also directly or indirectly redefined by the otherType.
  3. - ///
  4. This Feature can access the otherType.
+ /// otherType or if the otherType is also a Feature and all of the following are true.
  1. Neither + /// this Feature or the otherType have any ownedFeatures.
  2. This Feature directly or indirectly + /// redefines a Feature that is also directly or indirectly redefined by the otherType.
  3. This + /// Feature can access the otherType.
///
/// /// No documentation provided @@ -1568,8 +1566,8 @@ List Root.Elements.IRelationship.Target /// an owningRelationship, then return the string constructed by appending to the path of it's /// owningRelationship the character / followed by the string representation of its position in the list /// of ownedRelatedElements of the owningRelationship (indexed starting at 1). Otherwise, return the - /// empty string. (Note that this operation is overridden for Relationships - /// to use owningRelatedElement when appropriate.) + /// empty string.(Note that this operation is overridden for Relationships to use owningRelatedElement + /// when appropriate.) /// /// /// The expected @@ -1634,13 +1632,12 @@ List Root.Elements.IRelationship.Target /// /// Return a subset of memberships, removing those Memberships whose memberElements are Features and for - /// which either of the following two conditions holds:
    - ///
  1. The memberElement of the Membership is included in redefined Features of another - /// Membership in memberships.
  2. One of the redefined Features of the - /// Membership is a directly redefinedFeature of an ownedFeature of this Type.
  3. - ///
For this purpose, the redefined Features of a Membership - /// whose memberElement is a Feature includes the memberElement and all Features directly or indirectly - /// redefined by the memberElement. + /// which either of the following two conditions holds:
  1. The memberElement of the Membership is + /// included in redefined Features of another Membership in memberships.
  2. One of the redefined + /// Features of the Membership is a directly redefinedFeature of an ownedFeature of this + /// Type.
For this purpose, the redefined Features of a Membership whose memberElement is a + /// Feature includes the memberElement and all Features directly or indirectly redefined by the + /// memberElement. ///
/// /// No documentation provided @@ -1767,11 +1764,11 @@ List Root.Elements.IRelationship.Target /// Return the Features used to determine the types of this Feature (other than this Feature itself). If /// this Feature is not conjugated, then the typingFeatures consist of all subsetted Features, except /// from CrossSubsetting, and the last chainingFeature (if any). If this Feature is conjugated, then the - /// typingFeatures are only its originalType (if the originalType is a Feature). - /// Note. CrossSubsetting is excluded from the determination of the type of a - /// Feature in order to avoid circularity in the construction of implied CrossSubsetting relationships. - /// The validateFeatureCrossFeatureType requires that the crossFeature of a Feature have the same type - /// as the Feature. + /// typingFeatures are only its originalType (if the originalType is a Feature).Note. + /// CrossSubsetting is excluded from the determination of the type of a Feature in order to avoid + /// circularity in the construction of implied CrossSubsetting relationships. The + /// validateFeatureCrossFeatureType requires that the crossFeature of a Feature have the same type as + /// the Feature. /// /// /// The expected collection of diff --git a/SysML2.NET/Core/AutoGenPoco/BooleanExpression.cs b/SysML2.NET/Core/AutoGenPoco/BooleanExpression.cs index 2cba11e4a..be85d7edb 100644 --- a/SysML2.NET/Core/AutoGenPoco/BooleanExpression.cs +++ b/SysML2.NET/Core/AutoGenPoco/BooleanExpression.cs @@ -371,11 +371,11 @@ public BooleanExpression() /// /// Whether all things that meet the classification conditions of this Type must be classified by the - /// Type. (A Type gives conditions that must be met by whatever it - /// classifies, but when isSufficient is false, things may meet those conditions but still not be - /// classified by the Type. For example, a Type Car that is not sufficient could require everything it - /// classifies to have four wheels, but not all four wheeled things would classify as cars. However, if - /// the Type Car were sufficient, it would classify all four-wheeled things.) + /// Type.(A Type gives conditions that must be met by whatever it classifies, but when isSufficient + /// is false, things may meet those conditions but still not be classified by the Type. For example, a + /// Type Car that is not sufficient could require everything it classifies to have four wheels, but not + /// all four wheeled things would classify as cars. However, if the Type Car were sufficient, it would + /// classify all four-wheeled things.) /// [Property(xmiId: "_18_5_3_b9102da_1564072709069_937523_30797", aggregation: AggregationKind.None, lowerValue: 1, upperValue: 1, isOrdered: false, isReadOnly: false, isDerived: false, isDerivedUnion: false, isUnique: true, defaultValue: "false")] [Implements(implementation: "IType.IsSufficient")] @@ -898,9 +898,8 @@ public BooleanExpression() public FeatureDirectionKind? DirectionOfExcluding(IFeature feature, List excluded) => this.ComputeDirectionOfExcludingOperation(feature, excluded); /// - /// If a Feature has no declaredName or declaredShortName , then its - /// effective name is given by the effective name of the Feature returned by the namingFeature() - /// operation, if any. + /// If a Feature has no declaredName or declaredShortName, then its effective name is given by the + /// effective name of the Feature returned by the namingFeature() operation, if any. /// /// /// The expected @@ -1019,11 +1018,10 @@ public BooleanExpression() /// /// A Feature is compatible with an otherType if it either directly or indirectly specializes the - /// otherType or if the otherType is also a Feature and all of the following are true. - ///
  1. Neither this Feature or the otherType have any - /// ownedFeatures.
  2. This Feature directly or indirectly redefines a - /// Feature that is also directly or indirectly redefined by the otherType.
  3. - ///
  4. This Feature can access the otherType.
+ /// otherType or if the otherType is also a Feature and all of the following are true.
  1. Neither + /// this Feature or the otherType have any ownedFeatures.
  2. This Feature directly or indirectly + /// redefines a Feature that is also directly or indirectly redefined by the otherType.
  3. This + /// Feature can access the otherType.
///
/// /// No documentation provided @@ -1112,11 +1110,11 @@ public BooleanExpression() /// Return whether this Expression is model-level evaluable. The visited parameter is used to track /// possible circular Feature references made from FeatureReferenceExpressions (see the redefinition of /// this operation for FeatureReferenceExpression). Such circular references are not allowed in - /// model-level evaluable expressions. An Expression that is not otherwise - /// specialized is model-level evaluable if it has no (non-implied) ownedSpecializations and all its - /// ownedFeatures are either in parameters, the result parameter or a result Expression owned via a - /// ResultExpressionMembership. The parameters must not have any ownedFeatures or a FeatureValue, and - /// the result Expression must be model-level evaluable. + /// model-level evaluable expressions.An Expression that is not otherwise specialized is model-level + /// evaluable if it has no (non-implied) ownedSpecializations and all its ownedFeatures are either in + /// parameters, the result parameter or a result Expression owned via a ResultExpressionMembership. The + /// parameters must not have any ownedFeatures or a FeatureValue, and the result Expression must be + /// model-level evaluable. /// /// /// No documentation provided @@ -1190,8 +1188,8 @@ public BooleanExpression() /// an owningRelationship, then return the string constructed by appending to the path of it's /// owningRelationship the character / followed by the string representation of its position in the list /// of ownedRelatedElements of the owningRelationship (indexed starting at 1). Otherwise, return the - /// empty string. (Note that this operation is overridden for Relationships - /// to use owningRelatedElement when appropriate.) + /// empty string.(Note that this operation is overridden for Relationships to use owningRelatedElement + /// when appropriate.) /// /// /// The expected @@ -1236,13 +1234,12 @@ public BooleanExpression() /// /// Return a subset of memberships, removing those Memberships whose memberElements are Features and for - /// which either of the following two conditions holds:
    - ///
  1. The memberElement of the Membership is included in redefined Features of another - /// Membership in memberships.
  2. One of the redefined Features of the - /// Membership is a directly redefinedFeature of an ownedFeature of this Type.
  3. - ///
For this purpose, the redefined Features of a Membership - /// whose memberElement is a Feature includes the memberElement and all Features directly or indirectly - /// redefined by the memberElement. + /// which either of the following two conditions holds:
  1. The memberElement of the Membership is + /// included in redefined Features of another Membership in memberships.
  2. One of the redefined + /// Features of the Membership is a directly redefinedFeature of an ownedFeature of this + /// Type.
For this purpose, the redefined Features of a Membership whose memberElement is a + /// Feature includes the memberElement and all Features directly or indirectly redefined by the + /// memberElement. ///
/// /// No documentation provided @@ -1369,11 +1366,11 @@ public BooleanExpression() /// Return the Features used to determine the types of this Feature (other than this Feature itself). If /// this Feature is not conjugated, then the typingFeatures consist of all subsetted Features, except /// from CrossSubsetting, and the last chainingFeature (if any). If this Feature is conjugated, then the - /// typingFeatures are only its originalType (if the originalType is a Feature). - /// Note. CrossSubsetting is excluded from the determination of the type of a - /// Feature in order to avoid circularity in the construction of implied CrossSubsetting relationships. - /// The validateFeatureCrossFeatureType requires that the crossFeature of a Feature have the same type - /// as the Feature. + /// typingFeatures are only its originalType (if the originalType is a Feature).Note. + /// CrossSubsetting is excluded from the determination of the type of a Feature in order to avoid + /// circularity in the construction of implied CrossSubsetting relationships. The + /// validateFeatureCrossFeatureType requires that the crossFeature of a Feature have the same type as + /// the Feature. /// /// /// The expected collection of diff --git a/SysML2.NET/Core/AutoGenPoco/CalculationDefinition.cs b/SysML2.NET/Core/AutoGenPoco/CalculationDefinition.cs index a85ff6ba4..2e25d8aac 100644 --- a/SysML2.NET/Core/AutoGenPoco/CalculationDefinition.cs +++ b/SysML2.NET/Core/AutoGenPoco/CalculationDefinition.cs @@ -299,9 +299,9 @@ public CalculationDefinition() /// /// Whether this Function can be used as the function of a model-level evaluable InvocationExpression. /// Certain Functions from the Kernel Functions Library are considered to have isModelLevelEvaluable = - /// true. For all other Functions it is false. Note: See the - /// specification of the KerML concrete syntax notation for Expressions for an identification of which - /// library Functions are model-level evaluable. + /// true. For all other Functions it is false.Note: See the specification of the KerML + /// concrete syntax notation for Expressions for an identification of which library Functions are + /// model-level evaluable. /// [Property(xmiId: "_19_0_4_12e503d9_1617395221463_139517_26381", aggregation: AggregationKind.None, lowerValue: 1, upperValue: 1, isOrdered: false, isReadOnly: false, isDerived: true, isDerivedUnion: false, isUnique: true, defaultValue: null)] [Implements(implementation: "IFunction.IsModelLevelEvaluable")] @@ -309,11 +309,11 @@ public CalculationDefinition() /// /// Whether all things that meet the classification conditions of this Type must be classified by the - /// Type. (A Type gives conditions that must be met by whatever it - /// classifies, but when isSufficient is false, things may meet those conditions but still not be - /// classified by the Type. For example, a Type Car that is not sufficient could require everything it - /// classifies to have four wheels, but not all four wheeled things would classify as cars. However, if - /// the Type Car were sufficient, it would classify all four-wheeled things.) + /// Type.(A Type gives conditions that must be met by whatever it classifies, but when isSufficient + /// is false, things may meet those conditions but still not be classified by the Type. For example, a + /// Type Car that is not sufficient could require everything it classifies to have four wheels, but not + /// all four wheeled things would classify as cars. However, if the Type Car were sufficient, it would + /// classify all four-wheeled things.) /// [Property(xmiId: "_18_5_3_b9102da_1564072709069_937523_30797", aggregation: AggregationKind.None, lowerValue: 1, upperValue: 1, isOrdered: false, isReadOnly: false, isDerived: false, isDerivedUnion: false, isUnique: true, defaultValue: "false")] [Implements(implementation: "IType.IsSufficient")] @@ -591,7 +591,7 @@ public CalculationDefinition() public List ownedMembership => this.ComputeOwnedMembership(); /// - /// The MetadataUsages that are ownedUsages of this Definition. + /// The MetadataUsages that are ownedMembers of this Definition. /// [Property(xmiId: "_19_0_4_12e503d9_1661488358064_457109_2881", aggregation: AggregationKind.None, lowerValue: 0, upperValue: int.MaxValue, isOrdered: true, isReadOnly: false, isDerived: true, isDerivedUnion: false, isUnique: true, defaultValue: null)] [SubsettedProperty(propertyName: "_19_0_2_12e503d9_1591482567975_649284_3005")] @@ -1084,8 +1084,8 @@ public CalculationDefinition() /// an owningRelationship, then return the string constructed by appending to the path of it's /// owningRelationship the character / followed by the string representation of its position in the list /// of ownedRelatedElements of the owningRelationship (indexed starting at 1). Otherwise, return the - /// empty string. (Note that this operation is overridden for Relationships - /// to use owningRelatedElement when appropriate.) + /// empty string.(Note that this operation is overridden for Relationships to use owningRelatedElement + /// when appropriate.) /// /// /// The expected @@ -1107,13 +1107,12 @@ public CalculationDefinition() /// /// Return a subset of memberships, removing those Memberships whose memberElements are Features and for - /// which either of the following two conditions holds:
    - ///
  1. The memberElement of the Membership is included in redefined Features of another - /// Membership in memberships.
  2. One of the redefined Features of the - /// Membership is a directly redefinedFeature of an ownedFeature of this Type.
  3. - ///
For this purpose, the redefined Features of a Membership - /// whose memberElement is a Feature includes the memberElement and all Features directly or indirectly - /// redefined by the memberElement. + /// which either of the following two conditions holds:
  1. The memberElement of the Membership is + /// included in redefined Features of another Membership in memberships.
  2. One of the redefined + /// Features of the Membership is a directly redefinedFeature of an ownedFeature of this + /// Type.
For this purpose, the redefined Features of a Membership whose memberElement is a + /// Feature includes the memberElement and all Features directly or indirectly redefined by the + /// memberElement. ///
/// /// No documentation provided diff --git a/SysML2.NET/Core/AutoGenPoco/CalculationUsage.cs b/SysML2.NET/Core/AutoGenPoco/CalculationUsage.cs index 59734e37a..04d81679e 100644 --- a/SysML2.NET/Core/AutoGenPoco/CalculationUsage.cs +++ b/SysML2.NET/Core/AutoGenPoco/CalculationUsage.cs @@ -460,11 +460,11 @@ public CalculationUsage() /// /// Whether all things that meet the classification conditions of this Type must be classified by the - /// Type. (A Type gives conditions that must be met by whatever it - /// classifies, but when isSufficient is false, things may meet those conditions but still not be - /// classified by the Type. For example, a Type Car that is not sufficient could require everything it - /// classifies to have four wheels, but not all four wheeled things would classify as cars. However, if - /// the Type Car were sufficient, it would classify all four-wheeled things.) + /// Type.(A Type gives conditions that must be met by whatever it classifies, but when isSufficient + /// is false, things may meet those conditions but still not be classified by the Type. For example, a + /// Type Car that is not sufficient could require everything it classifies to have four wheels, but not + /// all four wheeled things would classify as cars. However, if the Type Car were sufficient, it would + /// classify all four-wheeled things.) /// [Property(xmiId: "_18_5_3_b9102da_1564072709069_937523_30797", aggregation: AggregationKind.None, lowerValue: 1, upperValue: 1, isOrdered: false, isReadOnly: false, isDerived: false, isDerivedUnion: false, isUnique: true, defaultValue: "false")] [Implements(implementation: "IType.IsSufficient")] @@ -502,9 +502,9 @@ bool Core.Features.IFeature.IsVariable /// Whether this Usage may be time varying (that is, whether it is featured by the snapshots of its /// owningType, rather than being featured by the owningType itself). However, if isConstant is also /// true, then the value of the Usage is nevertheless constant over the entire duration of an instance - /// of its owningType (that is, it has the same value on all snapshots). The - /// property mayTimeVary redefines the KerML property Feature::isVariable, making it derived. The - /// property isConstant is inherited from Feature. + /// of its owningType (that is, it has the same value on all snapshots).The property mayTimeVary + /// redefines the KerML property Feature::isVariable, making it derived. The property isConstant is + /// inherited from Feature. /// [Property(xmiId: "_2022x_2_12e503d9_1737227200362_771035_69", aggregation: AggregationKind.None, lowerValue: 1, upperValue: 1, isOrdered: false, isReadOnly: false, isDerived: true, isDerivedUnion: false, isUnique: true, defaultValue: null)] [RedefinedProperty(propertyName: "_2022x_2_12e503d9_1725998273002_23711_212")] @@ -605,8 +605,8 @@ bool Core.Features.IFeature.IsVariable /// /// The ConnectorAsUsages that are nestedUsages of this Usage. Note that this list includes - /// BindingConnectorAsUsages, SuccessionAsUsages, and FlowConnectionUsages because these are - /// ConnectorAsUsages even though they are not ConnectionUsages. + /// BindingConnectorAsUsages, SuccessionAsUsages, and FlowUsages because these are ConnectorAsUsages + /// even though they are not ConnectionUsages. /// [Property(xmiId: "_19_0_2_12e503d9_1591479754895_422988_1242", aggregation: AggregationKind.None, lowerValue: 0, upperValue: int.MaxValue, isOrdered: true, isReadOnly: false, isDerived: true, isDerivedUnion: false, isUnique: true, defaultValue: null)] [SubsettedProperty(propertyName: "_18_5_3_12e503d9_1565472757327_162097_21259")] @@ -654,7 +654,7 @@ bool Core.Features.IFeature.IsVariable public List nestedItem => this.ComputeNestedItem(); /// - /// The MetadataUsages that are nestedUsages of this of this Usage. + /// The MetadataUsages that are ownedMembers of this of this Usage. /// [Property(xmiId: "_19_0_4_12e503d9_1661488589862_120785_2970", aggregation: AggregationKind.None, lowerValue: 0, upperValue: int.MaxValue, isOrdered: true, isReadOnly: false, isDerived: true, isDerivedUnion: false, isUnique: true, defaultValue: null)] [SubsettedProperty(propertyName: "_19_0_2_12e503d9_1591482421103_284620_2978")] @@ -1298,9 +1298,8 @@ bool Core.Features.IFeature.IsVariable public FeatureDirectionKind? DirectionOfExcluding(IFeature feature, List excluded) => this.ComputeDirectionOfExcludingOperation(feature, excluded); /// - /// If a Feature has no declaredName or declaredShortName , then its - /// effective name is given by the effective name of the Feature returned by the namingFeature() - /// operation, if any. + /// If a Feature has no declaredName or declaredShortName, then its effective name is given by the + /// effective name of the Feature returned by the namingFeature() operation, if any. /// /// /// The expected @@ -1439,11 +1438,10 @@ bool Core.Features.IFeature.IsVariable /// /// A Feature is compatible with an otherType if it either directly or indirectly specializes the - /// otherType or if the otherType is also a Feature and all of the following are true. - ///
  1. Neither this Feature or the otherType have any - /// ownedFeatures.
  2. This Feature directly or indirectly redefines a - /// Feature that is also directly or indirectly redefined by the otherType.
  3. - ///
  4. This Feature can access the otherType.
+ /// otherType or if the otherType is also a Feature and all of the following are true.
  1. Neither + /// this Feature or the otherType have any ownedFeatures.
  2. This Feature directly or indirectly + /// redefines a Feature that is also directly or indirectly redefined by the otherType.
  3. This + /// Feature can access the otherType.
///
/// /// No documentation provided @@ -1553,11 +1551,11 @@ bool Core.Features.IFeature.IsVariable /// Return whether this Expression is model-level evaluable. The visited parameter is used to track /// possible circular Feature references made from FeatureReferenceExpressions (see the redefinition of /// this operation for FeatureReferenceExpression). Such circular references are not allowed in - /// model-level evaluable expressions. An Expression that is not otherwise - /// specialized is model-level evaluable if it has no (non-implied) ownedSpecializations and all its - /// ownedFeatures are either in parameters, the result parameter or a result Expression owned via a - /// ResultExpressionMembership. The parameters must not have any ownedFeatures or a FeatureValue, and - /// the result Expression must be model-level evaluable. + /// model-level evaluable expressions.An Expression that is not otherwise specialized is model-level + /// evaluable if it has no (non-implied) ownedSpecializations and all its ownedFeatures are either in + /// parameters, the result parameter or a result Expression owned via a ResultExpressionMembership. The + /// parameters must not have any ownedFeatures or a FeatureValue, and the result Expression must be + /// model-level evaluable. /// /// /// No documentation provided @@ -1640,8 +1638,8 @@ bool Core.Features.IFeature.IsVariable /// an owningRelationship, then return the string constructed by appending to the path of it's /// owningRelationship the character / followed by the string representation of its position in the list /// of ownedRelatedElements of the owningRelationship (indexed starting at 1). Otherwise, return the - /// empty string. (Note that this operation is overridden for Relationships - /// to use owningRelatedElement when appropriate.) + /// empty string.(Note that this operation is overridden for Relationships to use owningRelatedElement + /// when appropriate.) /// /// /// The expected @@ -1695,13 +1693,12 @@ bool Core.Features.IFeature.IsVariable /// /// Return a subset of memberships, removing those Memberships whose memberElements are Features and for - /// which either of the following two conditions holds:
    - ///
  1. The memberElement of the Membership is included in redefined Features of another - /// Membership in memberships.
  2. One of the redefined Features of the - /// Membership is a directly redefinedFeature of an ownedFeature of this Type.
  3. - ///
For this purpose, the redefined Features of a Membership - /// whose memberElement is a Feature includes the memberElement and all Features directly or indirectly - /// redefined by the memberElement. + /// which either of the following two conditions holds:
  1. The memberElement of the Membership is + /// included in redefined Features of another Membership in memberships.
  2. One of the redefined + /// Features of the Membership is a directly redefinedFeature of an ownedFeature of this + /// Type.
For this purpose, the redefined Features of a Membership whose memberElement is a + /// Feature includes the memberElement and all Features directly or indirectly redefined by the + /// memberElement. ///
/// /// No documentation provided @@ -1828,11 +1825,11 @@ bool Core.Features.IFeature.IsVariable /// Return the Features used to determine the types of this Feature (other than this Feature itself). If /// this Feature is not conjugated, then the typingFeatures consist of all subsetted Features, except /// from CrossSubsetting, and the last chainingFeature (if any). If this Feature is conjugated, then the - /// typingFeatures are only its originalType (if the originalType is a Feature). - /// Note. CrossSubsetting is excluded from the determination of the type of a - /// Feature in order to avoid circularity in the construction of implied CrossSubsetting relationships. - /// The validateFeatureCrossFeatureType requires that the crossFeature of a Feature have the same type - /// as the Feature. + /// typingFeatures are only its originalType (if the originalType is a Feature).Note. + /// CrossSubsetting is excluded from the determination of the type of a Feature in order to avoid + /// circularity in the construction of implied CrossSubsetting relationships. The + /// validateFeatureCrossFeatureType requires that the crossFeature of a Feature have the same type as + /// the Feature. /// /// /// The expected collection of diff --git a/SysML2.NET/Core/AutoGenPoco/CaseDefinition.cs b/SysML2.NET/Core/AutoGenPoco/CaseDefinition.cs index 6725297d8..bef7d884b 100644 --- a/SysML2.NET/Core/AutoGenPoco/CaseDefinition.cs +++ b/SysML2.NET/Core/AutoGenPoco/CaseDefinition.cs @@ -308,9 +308,9 @@ public CaseDefinition() /// /// Whether this Function can be used as the function of a model-level evaluable InvocationExpression. /// Certain Functions from the Kernel Functions Library are considered to have isModelLevelEvaluable = - /// true. For all other Functions it is false. Note: See the - /// specification of the KerML concrete syntax notation for Expressions for an identification of which - /// library Functions are model-level evaluable. + /// true. For all other Functions it is false.Note: See the specification of the KerML + /// concrete syntax notation for Expressions for an identification of which library Functions are + /// model-level evaluable. /// [Property(xmiId: "_19_0_4_12e503d9_1617395221463_139517_26381", aggregation: AggregationKind.None, lowerValue: 1, upperValue: 1, isOrdered: false, isReadOnly: false, isDerived: true, isDerivedUnion: false, isUnique: true, defaultValue: null)] [Implements(implementation: "IFunction.IsModelLevelEvaluable")] @@ -318,11 +318,11 @@ public CaseDefinition() /// /// Whether all things that meet the classification conditions of this Type must be classified by the - /// Type. (A Type gives conditions that must be met by whatever it - /// classifies, but when isSufficient is false, things may meet those conditions but still not be - /// classified by the Type. For example, a Type Car that is not sufficient could require everything it - /// classifies to have four wheels, but not all four wheeled things would classify as cars. However, if - /// the Type Car were sufficient, it would classify all four-wheeled things.) + /// Type.(A Type gives conditions that must be met by whatever it classifies, but when isSufficient + /// is false, things may meet those conditions but still not be classified by the Type. For example, a + /// Type Car that is not sufficient could require everything it classifies to have four wheels, but not + /// all four wheeled things would classify as cars. However, if the Type Car were sufficient, it would + /// classify all four-wheeled things.) /// [Property(xmiId: "_18_5_3_b9102da_1564072709069_937523_30797", aggregation: AggregationKind.None, lowerValue: 1, upperValue: 1, isOrdered: false, isReadOnly: false, isDerived: false, isDerivedUnion: false, isUnique: true, defaultValue: "false")] [Implements(implementation: "IType.IsSufficient")] @@ -608,7 +608,7 @@ public CaseDefinition() public List ownedMembership => this.ComputeOwnedMembership(); /// - /// The MetadataUsages that are ownedUsages of this Definition. + /// The MetadataUsages that are ownedMembers of this Definition. /// [Property(xmiId: "_19_0_4_12e503d9_1661488358064_457109_2881", aggregation: AggregationKind.None, lowerValue: 0, upperValue: int.MaxValue, isOrdered: true, isReadOnly: false, isDerived: true, isDerivedUnion: false, isUnique: true, defaultValue: null)] [SubsettedProperty(propertyName: "_19_0_2_12e503d9_1591482567975_649284_3005")] @@ -1109,8 +1109,8 @@ public CaseDefinition() /// an owningRelationship, then return the string constructed by appending to the path of it's /// owningRelationship the character / followed by the string representation of its position in the list /// of ownedRelatedElements of the owningRelationship (indexed starting at 1). Otherwise, return the - /// empty string. (Note that this operation is overridden for Relationships - /// to use owningRelatedElement when appropriate.) + /// empty string.(Note that this operation is overridden for Relationships to use owningRelatedElement + /// when appropriate.) /// /// /// The expected @@ -1132,13 +1132,12 @@ public CaseDefinition() /// /// Return a subset of memberships, removing those Memberships whose memberElements are Features and for - /// which either of the following two conditions holds:
    - ///
  1. The memberElement of the Membership is included in redefined Features of another - /// Membership in memberships.
  2. One of the redefined Features of the - /// Membership is a directly redefinedFeature of an ownedFeature of this Type.
  3. - ///
For this purpose, the redefined Features of a Membership - /// whose memberElement is a Feature includes the memberElement and all Features directly or indirectly - /// redefined by the memberElement. + /// which either of the following two conditions holds:
  1. The memberElement of the Membership is + /// included in redefined Features of another Membership in memberships.
  2. One of the redefined + /// Features of the Membership is a directly redefinedFeature of an ownedFeature of this + /// Type.
For this purpose, the redefined Features of a Membership whose memberElement is a + /// Feature includes the memberElement and all Features directly or indirectly redefined by the + /// memberElement. ///
/// /// No documentation provided diff --git a/SysML2.NET/Core/AutoGenPoco/CaseUsage.cs b/SysML2.NET/Core/AutoGenPoco/CaseUsage.cs index 50543efa5..bdf9f500c 100644 --- a/SysML2.NET/Core/AutoGenPoco/CaseUsage.cs +++ b/SysML2.NET/Core/AutoGenPoco/CaseUsage.cs @@ -474,11 +474,11 @@ public CaseUsage() /// /// Whether all things that meet the classification conditions of this Type must be classified by the - /// Type. (A Type gives conditions that must be met by whatever it - /// classifies, but when isSufficient is false, things may meet those conditions but still not be - /// classified by the Type. For example, a Type Car that is not sufficient could require everything it - /// classifies to have four wheels, but not all four wheeled things would classify as cars. However, if - /// the Type Car were sufficient, it would classify all four-wheeled things.) + /// Type.(A Type gives conditions that must be met by whatever it classifies, but when isSufficient + /// is false, things may meet those conditions but still not be classified by the Type. For example, a + /// Type Car that is not sufficient could require everything it classifies to have four wheels, but not + /// all four wheeled things would classify as cars. However, if the Type Car were sufficient, it would + /// classify all four-wheeled things.) /// [Property(xmiId: "_18_5_3_b9102da_1564072709069_937523_30797", aggregation: AggregationKind.None, lowerValue: 1, upperValue: 1, isOrdered: false, isReadOnly: false, isDerived: false, isDerivedUnion: false, isUnique: true, defaultValue: "false")] [Implements(implementation: "IType.IsSufficient")] @@ -516,9 +516,9 @@ bool Core.Features.IFeature.IsVariable /// Whether this Usage may be time varying (that is, whether it is featured by the snapshots of its /// owningType, rather than being featured by the owningType itself). However, if isConstant is also /// true, then the value of the Usage is nevertheless constant over the entire duration of an instance - /// of its owningType (that is, it has the same value on all snapshots). The - /// property mayTimeVary redefines the KerML property Feature::isVariable, making it derived. The - /// property isConstant is inherited from Feature. + /// of its owningType (that is, it has the same value on all snapshots).The property mayTimeVary + /// redefines the KerML property Feature::isVariable, making it derived. The property isConstant is + /// inherited from Feature. /// [Property(xmiId: "_2022x_2_12e503d9_1737227200362_771035_69", aggregation: AggregationKind.None, lowerValue: 1, upperValue: 1, isOrdered: false, isReadOnly: false, isDerived: true, isDerivedUnion: false, isUnique: true, defaultValue: null)] [RedefinedProperty(propertyName: "_2022x_2_12e503d9_1725998273002_23711_212")] @@ -619,8 +619,8 @@ bool Core.Features.IFeature.IsVariable /// /// The ConnectorAsUsages that are nestedUsages of this Usage. Note that this list includes - /// BindingConnectorAsUsages, SuccessionAsUsages, and FlowConnectionUsages because these are - /// ConnectorAsUsages even though they are not ConnectionUsages. + /// BindingConnectorAsUsages, SuccessionAsUsages, and FlowUsages because these are ConnectorAsUsages + /// even though they are not ConnectionUsages. /// [Property(xmiId: "_19_0_2_12e503d9_1591479754895_422988_1242", aggregation: AggregationKind.None, lowerValue: 0, upperValue: int.MaxValue, isOrdered: true, isReadOnly: false, isDerived: true, isDerivedUnion: false, isUnique: true, defaultValue: null)] [SubsettedProperty(propertyName: "_18_5_3_12e503d9_1565472757327_162097_21259")] @@ -668,7 +668,7 @@ bool Core.Features.IFeature.IsVariable public List nestedItem => this.ComputeNestedItem(); /// - /// The MetadataUsages that are nestedUsages of this of this Usage. + /// The MetadataUsages that are ownedMembers of this of this Usage. /// [Property(xmiId: "_19_0_4_12e503d9_1661488589862_120785_2970", aggregation: AggregationKind.None, lowerValue: 0, upperValue: int.MaxValue, isOrdered: true, isReadOnly: false, isDerived: true, isDerivedUnion: false, isUnique: true, defaultValue: null)] [SubsettedProperty(propertyName: "_19_0_2_12e503d9_1591482421103_284620_2978")] @@ -1328,9 +1328,8 @@ bool Core.Features.IFeature.IsVariable public FeatureDirectionKind? DirectionOfExcluding(IFeature feature, List excluded) => this.ComputeDirectionOfExcludingOperation(feature, excluded); /// - /// If a Feature has no declaredName or declaredShortName , then its - /// effective name is given by the effective name of the Feature returned by the namingFeature() - /// operation, if any. + /// If a Feature has no declaredName or declaredShortName, then its effective name is given by the + /// effective name of the Feature returned by the namingFeature() operation, if any. /// /// /// The expected @@ -1469,11 +1468,10 @@ bool Core.Features.IFeature.IsVariable /// /// A Feature is compatible with an otherType if it either directly or indirectly specializes the - /// otherType or if the otherType is also a Feature and all of the following are true. - ///
  1. Neither this Feature or the otherType have any - /// ownedFeatures.
  2. This Feature directly or indirectly redefines a - /// Feature that is also directly or indirectly redefined by the otherType.
  3. - ///
  4. This Feature can access the otherType.
+ /// otherType or if the otherType is also a Feature and all of the following are true.
  1. Neither + /// this Feature or the otherType have any ownedFeatures.
  2. This Feature directly or indirectly + /// redefines a Feature that is also directly or indirectly redefined by the otherType.
  3. This + /// Feature can access the otherType.
///
/// /// No documentation provided @@ -1583,11 +1581,11 @@ bool Core.Features.IFeature.IsVariable /// Return whether this Expression is model-level evaluable. The visited parameter is used to track /// possible circular Feature references made from FeatureReferenceExpressions (see the redefinition of /// this operation for FeatureReferenceExpression). Such circular references are not allowed in - /// model-level evaluable expressions. An Expression that is not otherwise - /// specialized is model-level evaluable if it has no (non-implied) ownedSpecializations and all its - /// ownedFeatures are either in parameters, the result parameter or a result Expression owned via a - /// ResultExpressionMembership. The parameters must not have any ownedFeatures or a FeatureValue, and - /// the result Expression must be model-level evaluable. + /// model-level evaluable expressions.An Expression that is not otherwise specialized is model-level + /// evaluable if it has no (non-implied) ownedSpecializations and all its ownedFeatures are either in + /// parameters, the result parameter or a result Expression owned via a ResultExpressionMembership. The + /// parameters must not have any ownedFeatures or a FeatureValue, and the result Expression must be + /// model-level evaluable. /// /// /// No documentation provided @@ -1670,8 +1668,8 @@ bool Core.Features.IFeature.IsVariable /// an owningRelationship, then return the string constructed by appending to the path of it's /// owningRelationship the character / followed by the string representation of its position in the list /// of ownedRelatedElements of the owningRelationship (indexed starting at 1). Otherwise, return the - /// empty string. (Note that this operation is overridden for Relationships - /// to use owningRelatedElement when appropriate.) + /// empty string.(Note that this operation is overridden for Relationships to use owningRelatedElement + /// when appropriate.) /// /// /// The expected @@ -1725,13 +1723,12 @@ bool Core.Features.IFeature.IsVariable /// /// Return a subset of memberships, removing those Memberships whose memberElements are Features and for - /// which either of the following two conditions holds:
    - ///
  1. The memberElement of the Membership is included in redefined Features of another - /// Membership in memberships.
  2. One of the redefined Features of the - /// Membership is a directly redefinedFeature of an ownedFeature of this Type.
  3. - ///
For this purpose, the redefined Features of a Membership - /// whose memberElement is a Feature includes the memberElement and all Features directly or indirectly - /// redefined by the memberElement. + /// which either of the following two conditions holds:
  1. The memberElement of the Membership is + /// included in redefined Features of another Membership in memberships.
  2. One of the redefined + /// Features of the Membership is a directly redefinedFeature of an ownedFeature of this + /// Type.
For this purpose, the redefined Features of a Membership whose memberElement is a + /// Feature includes the memberElement and all Features directly or indirectly redefined by the + /// memberElement. ///
/// /// No documentation provided @@ -1858,11 +1855,11 @@ bool Core.Features.IFeature.IsVariable /// Return the Features used to determine the types of this Feature (other than this Feature itself). If /// this Feature is not conjugated, then the typingFeatures consist of all subsetted Features, except /// from CrossSubsetting, and the last chainingFeature (if any). If this Feature is conjugated, then the - /// typingFeatures are only its originalType (if the originalType is a Feature). - /// Note. CrossSubsetting is excluded from the determination of the type of a - /// Feature in order to avoid circularity in the construction of implied CrossSubsetting relationships. - /// The validateFeatureCrossFeatureType requires that the crossFeature of a Feature have the same type - /// as the Feature. + /// typingFeatures are only its originalType (if the originalType is a Feature).Note. + /// CrossSubsetting is excluded from the determination of the type of a Feature in order to avoid + /// circularity in the construction of implied CrossSubsetting relationships. The + /// validateFeatureCrossFeatureType requires that the crossFeature of a Feature have the same type as + /// the Feature. /// /// /// The expected collection of diff --git a/SysML2.NET/Core/AutoGenPoco/Class.cs b/SysML2.NET/Core/AutoGenPoco/Class.cs index f285dd672..023deca24 100644 --- a/SysML2.NET/Core/AutoGenPoco/Class.cs +++ b/SysML2.NET/Core/AutoGenPoco/Class.cs @@ -235,11 +235,11 @@ public Class() /// /// Whether all things that meet the classification conditions of this Type must be classified by the - /// Type. (A Type gives conditions that must be met by whatever it - /// classifies, but when isSufficient is false, things may meet those conditions but still not be - /// classified by the Type. For example, a Type Car that is not sufficient could require everything it - /// classifies to have four wheels, but not all four wheeled things would classify as cars. However, if - /// the Type Car were sufficient, it would classify all four-wheeled things.) + /// Type.(A Type gives conditions that must be met by whatever it classifies, but when isSufficient + /// is false, things may meet those conditions but still not be classified by the Type. For example, a + /// Type Car that is not sufficient could require everything it classifies to have four wheels, but not + /// all four wheeled things would classify as cars. However, if the Type Car were sufficient, it would + /// classify all four-wheeled things.) /// [Property(xmiId: "_18_5_3_b9102da_1564072709069_937523_30797", aggregation: AggregationKind.None, lowerValue: 1, upperValue: 1, isOrdered: false, isReadOnly: false, isDerived: false, isDerivedUnion: false, isUnique: true, defaultValue: "false")] [Implements(implementation: "IType.IsSufficient")] @@ -731,8 +731,8 @@ public Class() /// an owningRelationship, then return the string constructed by appending to the path of it's /// owningRelationship the character / followed by the string representation of its position in the list /// of ownedRelatedElements of the owningRelationship (indexed starting at 1). Otherwise, return the - /// empty string. (Note that this operation is overridden for Relationships - /// to use owningRelatedElement when appropriate.) + /// empty string.(Note that this operation is overridden for Relationships to use owningRelatedElement + /// when appropriate.) /// /// /// The expected @@ -754,13 +754,12 @@ public Class() /// /// Return a subset of memberships, removing those Memberships whose memberElements are Features and for - /// which either of the following two conditions holds:
    - ///
  1. The memberElement of the Membership is included in redefined Features of another - /// Membership in memberships.
  2. One of the redefined Features of the - /// Membership is a directly redefinedFeature of an ownedFeature of this Type.
  3. - ///
For this purpose, the redefined Features of a Membership - /// whose memberElement is a Feature includes the memberElement and all Features directly or indirectly - /// redefined by the memberElement. + /// which either of the following two conditions holds:
  1. The memberElement of the Membership is + /// included in redefined Features of another Membership in memberships.
  2. One of the redefined + /// Features of the Membership is a directly redefinedFeature of an ownedFeature of this + /// Type.
For this purpose, the redefined Features of a Membership whose memberElement is a + /// Feature includes the memberElement and all Features directly or indirectly redefined by the + /// memberElement. ///
/// /// No documentation provided diff --git a/SysML2.NET/Core/AutoGenPoco/Classifier.cs b/SysML2.NET/Core/AutoGenPoco/Classifier.cs index 7c8df5249..1031c15d9 100644 --- a/SysML2.NET/Core/AutoGenPoco/Classifier.cs +++ b/SysML2.NET/Core/AutoGenPoco/Classifier.cs @@ -40,13 +40,12 @@ namespace SysML2.NET.Core.POCO.Core.Classifiers using SysML2.NET.Decorators; /// - /// A Classifier is a Type that classifies:
    - ///
  • Things (in the universe) regardless of how Features relate them. (These are interpreted - /// semantically as sequences of exactly one thing.)
  • How the above - /// things are related by Features. (These are interpreted semantically as sequences of multiple things, - /// such that the last thing in the sequence is also classified by the Classifier. Note that this means - /// that a Classifier modeled as specializing a Feature cannot classify anything.)
  • - ///
+ /// A Classifier is a Type that classifies:
  • Things (in the universe) regardless of how Features + /// relate them. (These are interpreted semantically as sequences of exactly one thing.)
  • How + /// the above things are related by Features. (These are interpreted semantically as sequences of + /// multiple things, such that the last thing in the sequence is also classified by the Classifier. Note + /// that this means that a Classifier modeled as specializing a Feature cannot classify + /// anything.)
///
[Class(xmiId: "_18_5_3_12e503d9_1533160651676_375105_42143", isAbstract: false, isFinalSpecialization: false, isActive: false)] [GeneratedCode("SysML2.NET", "latest")] @@ -238,11 +237,11 @@ public Classifier() /// /// Whether all things that meet the classification conditions of this Type must be classified by the - /// Type. (A Type gives conditions that must be met by whatever it - /// classifies, but when isSufficient is false, things may meet those conditions but still not be - /// classified by the Type. For example, a Type Car that is not sufficient could require everything it - /// classifies to have four wheels, but not all four wheeled things would classify as cars. However, if - /// the Type Car were sufficient, it would classify all four-wheeled things.) + /// Type.(A Type gives conditions that must be met by whatever it classifies, but when isSufficient + /// is false, things may meet those conditions but still not be classified by the Type. For example, a + /// Type Car that is not sufficient could require everything it classifies to have four wheels, but not + /// all four wheeled things would classify as cars. However, if the Type Car were sufficient, it would + /// classify all four-wheeled things.) /// [Property(xmiId: "_18_5_3_b9102da_1564072709069_937523_30797", aggregation: AggregationKind.None, lowerValue: 1, upperValue: 1, isOrdered: false, isReadOnly: false, isDerived: false, isDerivedUnion: false, isUnique: true, defaultValue: "false")] [Implements(implementation: "IType.IsSufficient")] @@ -734,8 +733,8 @@ public Classifier() /// an owningRelationship, then return the string constructed by appending to the path of it's /// owningRelationship the character / followed by the string representation of its position in the list /// of ownedRelatedElements of the owningRelationship (indexed starting at 1). Otherwise, return the - /// empty string. (Note that this operation is overridden for Relationships - /// to use owningRelatedElement when appropriate.) + /// empty string.(Note that this operation is overridden for Relationships to use owningRelatedElement + /// when appropriate.) /// /// /// The expected @@ -757,13 +756,12 @@ public Classifier() /// /// Return a subset of memberships, removing those Memberships whose memberElements are Features and for - /// which either of the following two conditions holds:
    - ///
  1. The memberElement of the Membership is included in redefined Features of another - /// Membership in memberships.
  2. One of the redefined Features of the - /// Membership is a directly redefinedFeature of an ownedFeature of this Type.
  3. - ///
For this purpose, the redefined Features of a Membership - /// whose memberElement is a Feature includes the memberElement and all Features directly or indirectly - /// redefined by the memberElement. + /// which either of the following two conditions holds:
  1. The memberElement of the Membership is + /// included in redefined Features of another Membership in memberships.
  2. One of the redefined + /// Features of the Membership is a directly redefinedFeature of an ownedFeature of this + /// Type.
For this purpose, the redefined Features of a Membership whose memberElement is a + /// Feature includes the memberElement and all Features directly or indirectly redefined by the + /// memberElement. ///
/// /// No documentation provided diff --git a/SysML2.NET/Core/AutoGenPoco/CollectExpression.cs b/SysML2.NET/Core/AutoGenPoco/CollectExpression.cs index 08df0a279..fc5617fe8 100644 --- a/SysML2.NET/Core/AutoGenPoco/CollectExpression.cs +++ b/SysML2.NET/Core/AutoGenPoco/CollectExpression.cs @@ -77,8 +77,8 @@ public CollectExpression() /// /// The Expressions whose results are bound to features of the instantiatedType. The arguments are /// ordered consistent with the order of the features, though they may not be one-to-one with all the - /// features. Note. The derivation of argument is given in - /// the concrete subclasses of InstantiationExpression. + /// features.Note. The derivation of argument is given in the concrete subclasses of + /// InstantiationExpression. /// [Property(xmiId: "_2022x_2_12e503d9_1739134437590_328753_108", aggregation: AggregationKind.None, lowerValue: 0, upperValue: int.MaxValue, isOrdered: true, isReadOnly: false, isDerived: true, isDerivedUnion: false, isUnique: true, defaultValue: null)] [Implements(implementation: "IInstantiationExpression.Argument")] @@ -389,11 +389,11 @@ public CollectExpression() /// /// Whether all things that meet the classification conditions of this Type must be classified by the - /// Type. (A Type gives conditions that must be met by whatever it - /// classifies, but when isSufficient is false, things may meet those conditions but still not be - /// classified by the Type. For example, a Type Car that is not sufficient could require everything it - /// classifies to have four wheels, but not all four wheeled things would classify as cars. However, if - /// the Type Car were sufficient, it would classify all four-wheeled things.) + /// Type.(A Type gives conditions that must be met by whatever it classifies, but when isSufficient + /// is false, things may meet those conditions but still not be classified by the Type. For example, a + /// Type Car that is not sufficient could require everything it classifies to have four wheels, but not + /// all four wheeled things would classify as cars. However, if the Type Car were sufficient, it would + /// classify all four-wheeled things.) /// [Property(xmiId: "_18_5_3_b9102da_1564072709069_937523_30797", aggregation: AggregationKind.None, lowerValue: 1, upperValue: 1, isOrdered: false, isReadOnly: false, isDerived: false, isDerivedUnion: false, isUnique: true, defaultValue: "false")] [Implements(implementation: "IType.IsSufficient")] @@ -931,9 +931,8 @@ string IOperatorExpression.Operator public FeatureDirectionKind? DirectionOfExcluding(IFeature feature, List excluded) => this.ComputeDirectionOfExcludingOperation(feature, excluded); /// - /// If a Feature has no declaredName or declaredShortName , then its - /// effective name is given by the effective name of the Feature returned by the namingFeature() - /// operation, if any. + /// If a Feature has no declaredName or declaredShortName, then its effective name is given by the + /// effective name of the Feature returned by the namingFeature() operation, if any. /// /// /// The expected @@ -1067,8 +1066,7 @@ string IOperatorExpression.Operator /// /// Return the Type to act as the instantiatedType for this InstantiationExpression. By default, this is /// the memberElement of the first ownedMembership that is not a FeatureMembership, which must be a - /// Type. Note. This operation is overridden in the subclass - /// OperatorExpression. + /// Type.Note. This operation is overridden in the subclass OperatorExpression. /// /// /// The expected @@ -1085,11 +1083,10 @@ string IOperatorExpression.Operator /// /// A Feature is compatible with an otherType if it either directly or indirectly specializes the - /// otherType or if the otherType is also a Feature and all of the following are true. - ///
  1. Neither this Feature or the otherType have any - /// ownedFeatures.
  2. This Feature directly or indirectly redefines a - /// Feature that is also directly or indirectly redefined by the otherType.
  3. - ///
  4. This Feature can access the otherType.
+ /// otherType or if the otherType is also a Feature and all of the following are true.
  1. Neither + /// this Feature or the otherType have any ownedFeatures.
  2. This Feature directly or indirectly + /// redefines a Feature that is also directly or indirectly redefined by the otherType.
  3. This + /// Feature can access the otherType.
///
/// /// No documentation provided @@ -1190,11 +1187,11 @@ string IOperatorExpression.Operator /// Return whether this Expression is model-level evaluable. The visited parameter is used to track /// possible circular Feature references made from FeatureReferenceExpressions (see the redefinition of /// this operation for FeatureReferenceExpression). Such circular references are not allowed in - /// model-level evaluable expressions. An Expression that is not otherwise - /// specialized is model-level evaluable if it has no (non-implied) ownedSpecializations and all its - /// ownedFeatures are either in parameters, the result parameter or a result Expression owned via a - /// ResultExpressionMembership. The parameters must not have any ownedFeatures or a FeatureValue, and - /// the result Expression must be model-level evaluable. + /// model-level evaluable expressions.An Expression that is not otherwise specialized is model-level + /// evaluable if it has no (non-implied) ownedSpecializations and all its ownedFeatures are either in + /// parameters, the result parameter or a result Expression owned via a ResultExpressionMembership. The + /// parameters must not have any ownedFeatures or a FeatureValue, and the result Expression must be + /// model-level evaluable. /// /// /// No documentation provided @@ -1268,8 +1265,8 @@ string IOperatorExpression.Operator /// an owningRelationship, then return the string constructed by appending to the path of it's /// owningRelationship the character / followed by the string representation of its position in the list /// of ownedRelatedElements of the owningRelationship (indexed starting at 1). Otherwise, return the - /// empty string. (Note that this operation is overridden for Relationships - /// to use owningRelatedElement when appropriate.) + /// empty string.(Note that this operation is overridden for Relationships to use owningRelatedElement + /// when appropriate.) /// /// /// The expected @@ -1314,13 +1311,12 @@ string IOperatorExpression.Operator /// /// Return a subset of memberships, removing those Memberships whose memberElements are Features and for - /// which either of the following two conditions holds:
    - ///
  1. The memberElement of the Membership is included in redefined Features of another - /// Membership in memberships.
  2. One of the redefined Features of the - /// Membership is a directly redefinedFeature of an ownedFeature of this Type.
  3. - ///
For this purpose, the redefined Features of a Membership - /// whose memberElement is a Feature includes the memberElement and all Features directly or indirectly - /// redefined by the memberElement. + /// which either of the following two conditions holds:
  1. The memberElement of the Membership is + /// included in redefined Features of another Membership in memberships.
  2. One of the redefined + /// Features of the Membership is a directly redefinedFeature of an ownedFeature of this + /// Type.
For this purpose, the redefined Features of a Membership whose memberElement is a + /// Feature includes the memberElement and all Features directly or indirectly redefined by the + /// memberElement. ///
/// /// No documentation provided @@ -1447,11 +1443,11 @@ string IOperatorExpression.Operator /// Return the Features used to determine the types of this Feature (other than this Feature itself). If /// this Feature is not conjugated, then the typingFeatures consist of all subsetted Features, except /// from CrossSubsetting, and the last chainingFeature (if any). If this Feature is conjugated, then the - /// typingFeatures are only its originalType (if the originalType is a Feature). - /// Note. CrossSubsetting is excluded from the determination of the type of a - /// Feature in order to avoid circularity in the construction of implied CrossSubsetting relationships. - /// The validateFeatureCrossFeatureType requires that the crossFeature of a Feature have the same type - /// as the Feature. + /// typingFeatures are only its originalType (if the originalType is a Feature).Note. + /// CrossSubsetting is excluded from the determination of the type of a Feature in order to avoid + /// circularity in the construction of implied CrossSubsetting relationships. The + /// validateFeatureCrossFeatureType requires that the crossFeature of a Feature have the same type as + /// the Feature. /// /// /// The expected collection of diff --git a/SysML2.NET/Core/AutoGenPoco/Comment.cs b/SysML2.NET/Core/AutoGenPoco/Comment.cs index 0ed01ef2d..f369b3dfc 100644 --- a/SysML2.NET/Core/AutoGenPoco/Comment.cs +++ b/SysML2.NET/Core/AutoGenPoco/Comment.cs @@ -321,8 +321,8 @@ public Comment() /// an owningRelationship, then return the string constructed by appending to the path of it's /// owningRelationship the character / followed by the string representation of its position in the list /// of ownedRelatedElements of the owningRelationship (indexed starting at 1). Otherwise, return the - /// empty string. (Note that this operation is overridden for Relationships - /// to use owningRelatedElement when appropriate.) + /// empty string.(Note that this operation is overridden for Relationships to use owningRelatedElement + /// when appropriate.) /// /// /// The expected diff --git a/SysML2.NET/Core/AutoGenPoco/ConcernDefinition.cs b/SysML2.NET/Core/AutoGenPoco/ConcernDefinition.cs index 9d3003e04..0b35b6b5c 100644 --- a/SysML2.NET/Core/AutoGenPoco/ConcernDefinition.cs +++ b/SysML2.NET/Core/AutoGenPoco/ConcernDefinition.cs @@ -318,9 +318,9 @@ string Root.Elements.IElement.DeclaredShortName /// /// Whether this Function can be used as the function of a model-level evaluable InvocationExpression. /// Certain Functions from the Kernel Functions Library are considered to have isModelLevelEvaluable = - /// true. For all other Functions it is false. Note: See the - /// specification of the KerML concrete syntax notation for Expressions for an identification of which - /// library Functions are model-level evaluable. + /// true. For all other Functions it is false.Note: See the specification of the KerML + /// concrete syntax notation for Expressions for an identification of which library Functions are + /// model-level evaluable. /// [Property(xmiId: "_19_0_4_12e503d9_1617395221463_139517_26381", aggregation: AggregationKind.None, lowerValue: 1, upperValue: 1, isOrdered: false, isReadOnly: false, isDerived: true, isDerivedUnion: false, isUnique: true, defaultValue: null)] [Implements(implementation: "IFunction.IsModelLevelEvaluable")] @@ -328,11 +328,11 @@ string Root.Elements.IElement.DeclaredShortName /// /// Whether all things that meet the classification conditions of this Type must be classified by the - /// Type. (A Type gives conditions that must be met by whatever it - /// classifies, but when isSufficient is false, things may meet those conditions but still not be - /// classified by the Type. For example, a Type Car that is not sufficient could require everything it - /// classifies to have four wheels, but not all four wheeled things would classify as cars. However, if - /// the Type Car were sufficient, it would classify all four-wheeled things.) + /// Type.(A Type gives conditions that must be met by whatever it classifies, but when isSufficient + /// is false, things may meet those conditions but still not be classified by the Type. For example, a + /// Type Car that is not sufficient could require everything it classifies to have four wheels, but not + /// all four wheeled things would classify as cars. However, if the Type Car were sufficient, it would + /// classify all four-wheeled things.) /// [Property(xmiId: "_18_5_3_b9102da_1564072709069_937523_30797", aggregation: AggregationKind.None, lowerValue: 1, upperValue: 1, isOrdered: false, isReadOnly: false, isDerived: false, isDerivedUnion: false, isUnique: true, defaultValue: "false")] [Implements(implementation: "IType.IsSufficient")] @@ -610,7 +610,7 @@ string Root.Elements.IElement.DeclaredShortName public List ownedMembership => this.ComputeOwnedMembership(); /// - /// The MetadataUsages that are ownedUsages of this Definition. + /// The MetadataUsages that are ownedMembers of this Definition. /// [Property(xmiId: "_19_0_4_12e503d9_1661488358064_457109_2881", aggregation: AggregationKind.None, lowerValue: 0, upperValue: int.MaxValue, isOrdered: true, isReadOnly: false, isDerived: true, isDerivedUnion: false, isUnique: true, defaultValue: null)] [SubsettedProperty(propertyName: "_19_0_2_12e503d9_1591482567975_649284_3005")] @@ -858,7 +858,7 @@ string Root.Elements.IElement.DeclaredShortName public string shortName => this.ComputeShortName(); /// - /// The parameters of this RequirementDefinition that represent stakeholders for th requirement. + /// The parameters of this RequirementDefinition that represent stakeholders for the requirement. /// [Property(xmiId: "_19_0_4_12e503d9_1624033010374_29375_40166", aggregation: AggregationKind.None, lowerValue: 0, upperValue: int.MaxValue, isOrdered: true, isReadOnly: false, isDerived: true, isDerivedUnion: false, isUnique: true, defaultValue: null)] [SubsettedProperty(propertyName: "_18_5_3_12e503d9_1543948010065_362066_20413")] @@ -1147,8 +1147,8 @@ string Root.Elements.IElement.DeclaredShortName /// an owningRelationship, then return the string constructed by appending to the path of it's /// owningRelationship the character / followed by the string representation of its position in the list /// of ownedRelatedElements of the owningRelationship (indexed starting at 1). Otherwise, return the - /// empty string. (Note that this operation is overridden for Relationships - /// to use owningRelatedElement when appropriate.) + /// empty string.(Note that this operation is overridden for Relationships to use owningRelatedElement + /// when appropriate.) /// /// /// The expected @@ -1170,13 +1170,12 @@ string Root.Elements.IElement.DeclaredShortName /// /// Return a subset of memberships, removing those Memberships whose memberElements are Features and for - /// which either of the following two conditions holds:
    - ///
  1. The memberElement of the Membership is included in redefined Features of another - /// Membership in memberships.
  2. One of the redefined Features of the - /// Membership is a directly redefinedFeature of an ownedFeature of this Type.
  3. - ///
For this purpose, the redefined Features of a Membership - /// whose memberElement is a Feature includes the memberElement and all Features directly or indirectly - /// redefined by the memberElement. + /// which either of the following two conditions holds:
  1. The memberElement of the Membership is + /// included in redefined Features of another Membership in memberships.
  2. One of the redefined + /// Features of the Membership is a directly redefinedFeature of an ownedFeature of this + /// Type.
For this purpose, the redefined Features of a Membership whose memberElement is a + /// Feature includes the memberElement and all Features directly or indirectly redefined by the + /// memberElement. ///
/// /// No documentation provided diff --git a/SysML2.NET/Core/AutoGenPoco/ConcernUsage.cs b/SysML2.NET/Core/AutoGenPoco/ConcernUsage.cs index 70e58dce4..7cdd839d9 100644 --- a/SysML2.NET/Core/AutoGenPoco/ConcernUsage.cs +++ b/SysML2.NET/Core/AutoGenPoco/ConcernUsage.cs @@ -66,10 +66,10 @@ namespace SysML2.NET.Core.POCO.Systems.Requirements using SysML2.NET.Decorators; /// - /// A ConcernUsage is a Usage of a ConcernDefinition. The ownedStakeholder - /// features of the ConcernUsage shall all subset the ConcernCheck::concernedStakeholders feature. If - /// the ConcernUsage is an ownedFeature of a StakeholderDefinition or StakeholderUsage, then the - /// ConcernUsage shall have an ownedStakeholder feature that is bound to the self feature of its owner. + /// A ConcernUsage is a Usage of a ConcernDefinition. The ownedStakeholder features of the ConcernUsage + /// shall all subset the ConcernCheck::concernedStakeholders feature. If the ConcernUsage is an + /// ownedFeature of a StakeholderDefinition or StakeholderUsage, then the ConcernUsage shall have an + /// ownedStakeholder feature that is bound to the self feature of its owner. /// [Class(xmiId: "_19_0_4_12e503d9_1617051561652_163085_1288", isAbstract: false, isFinalSpecialization: false, isActive: false)] [GeneratedCode("SysML2.NET", "latest")] @@ -494,11 +494,11 @@ string Root.Elements.IElement.DeclaredShortName /// /// Whether all things that meet the classification conditions of this Type must be classified by the - /// Type. (A Type gives conditions that must be met by whatever it - /// classifies, but when isSufficient is false, things may meet those conditions but still not be - /// classified by the Type. For example, a Type Car that is not sufficient could require everything it - /// classifies to have four wheels, but not all four wheeled things would classify as cars. However, if - /// the Type Car were sufficient, it would classify all four-wheeled things.) + /// Type.(A Type gives conditions that must be met by whatever it classifies, but when isSufficient + /// is false, things may meet those conditions but still not be classified by the Type. For example, a + /// Type Car that is not sufficient could require everything it classifies to have four wheels, but not + /// all four wheeled things would classify as cars. However, if the Type Car were sufficient, it would + /// classify all four-wheeled things.) /// [Property(xmiId: "_18_5_3_b9102da_1564072709069_937523_30797", aggregation: AggregationKind.None, lowerValue: 1, upperValue: 1, isOrdered: false, isReadOnly: false, isDerived: false, isDerivedUnion: false, isUnique: true, defaultValue: "false")] [Implements(implementation: "IType.IsSufficient")] @@ -536,9 +536,9 @@ bool Core.Features.IFeature.IsVariable /// Whether this Usage may be time varying (that is, whether it is featured by the snapshots of its /// owningType, rather than being featured by the owningType itself). However, if isConstant is also /// true, then the value of the Usage is nevertheless constant over the entire duration of an instance - /// of its owningType (that is, it has the same value on all snapshots). The - /// property mayTimeVary redefines the KerML property Feature::isVariable, making it derived. The - /// property isConstant is inherited from Feature. + /// of its owningType (that is, it has the same value on all snapshots).The property mayTimeVary + /// redefines the KerML property Feature::isVariable, making it derived. The property isConstant is + /// inherited from Feature. /// [Property(xmiId: "_2022x_2_12e503d9_1737227200362_771035_69", aggregation: AggregationKind.None, lowerValue: 1, upperValue: 1, isOrdered: false, isReadOnly: false, isDerived: true, isDerivedUnion: false, isUnique: true, defaultValue: null)] [RedefinedProperty(propertyName: "_2022x_2_12e503d9_1725998273002_23711_212")] @@ -639,8 +639,8 @@ bool Core.Features.IFeature.IsVariable /// /// The ConnectorAsUsages that are nestedUsages of this Usage. Note that this list includes - /// BindingConnectorAsUsages, SuccessionAsUsages, and FlowConnectionUsages because these are - /// ConnectorAsUsages even though they are not ConnectionUsages. + /// BindingConnectorAsUsages, SuccessionAsUsages, and FlowUsages because these are ConnectorAsUsages + /// even though they are not ConnectionUsages. /// [Property(xmiId: "_19_0_2_12e503d9_1591479754895_422988_1242", aggregation: AggregationKind.None, lowerValue: 0, upperValue: int.MaxValue, isOrdered: true, isReadOnly: false, isDerived: true, isDerivedUnion: false, isUnique: true, defaultValue: null)] [SubsettedProperty(propertyName: "_18_5_3_12e503d9_1565472757327_162097_21259")] @@ -688,7 +688,7 @@ bool Core.Features.IFeature.IsVariable public List nestedItem => this.ComputeNestedItem(); /// - /// The MetadataUsages that are nestedUsages of this of this Usage. + /// The MetadataUsages that are ownedMembers of this of this Usage. /// [Property(xmiId: "_19_0_4_12e503d9_1661488589862_120785_2970", aggregation: AggregationKind.None, lowerValue: 0, upperValue: int.MaxValue, isOrdered: true, isReadOnly: false, isDerived: true, isDerivedUnion: false, isUnique: true, defaultValue: null)] [SubsettedProperty(propertyName: "_19_0_2_12e503d9_1591482421103_284620_2978")] @@ -1381,9 +1381,8 @@ bool Core.Features.IFeature.IsVariable public FeatureDirectionKind? DirectionOfExcluding(IFeature feature, List excluded) => this.ComputeDirectionOfExcludingOperation(feature, excluded); /// - /// If a Feature has no declaredName or declaredShortName , then its - /// effective name is given by the effective name of the Feature returned by the namingFeature() - /// operation, if any. + /// If a Feature has no declaredName or declaredShortName, then its effective name is given by the + /// effective name of the Feature returned by the namingFeature() operation, if any. /// /// /// The expected @@ -1502,11 +1501,10 @@ bool Core.Features.IFeature.IsVariable /// /// A Feature is compatible with an otherType if it either directly or indirectly specializes the - /// otherType or if the otherType is also a Feature and all of the following are true. - ///
  1. Neither this Feature or the otherType have any - /// ownedFeatures.
  2. This Feature directly or indirectly redefines a - /// Feature that is also directly or indirectly redefined by the otherType.
  3. - ///
  4. This Feature can access the otherType.
+ /// otherType or if the otherType is also a Feature and all of the following are true.
  1. Neither + /// this Feature or the otherType have any ownedFeatures.
  2. This Feature directly or indirectly + /// redefines a Feature that is also directly or indirectly redefined by the otherType.
  3. This + /// Feature can access the otherType.
///
/// /// No documentation provided @@ -1606,11 +1604,11 @@ bool Core.Features.IFeature.IsVariable /// Return whether this Expression is model-level evaluable. The visited parameter is used to track /// possible circular Feature references made from FeatureReferenceExpressions (see the redefinition of /// this operation for FeatureReferenceExpression). Such circular references are not allowed in - /// model-level evaluable expressions. An Expression that is not otherwise - /// specialized is model-level evaluable if it has no (non-implied) ownedSpecializations and all its - /// ownedFeatures are either in parameters, the result parameter or a result Expression owned via a - /// ResultExpressionMembership. The parameters must not have any ownedFeatures or a FeatureValue, and - /// the result Expression must be model-level evaluable. + /// model-level evaluable expressions.An Expression that is not otherwise specialized is model-level + /// evaluable if it has no (non-implied) ownedSpecializations and all its ownedFeatures are either in + /// parameters, the result parameter or a result Expression owned via a ResultExpressionMembership. The + /// parameters must not have any ownedFeatures or a FeatureValue, and the result Expression must be + /// model-level evaluable. /// /// /// No documentation provided @@ -1703,8 +1701,8 @@ bool Core.Features.IFeature.IsVariable /// an owningRelationship, then return the string constructed by appending to the path of it's /// owningRelationship the character / followed by the string representation of its position in the list /// of ownedRelatedElements of the owningRelationship (indexed starting at 1). Otherwise, return the - /// empty string. (Note that this operation is overridden for Relationships - /// to use owningRelatedElement when appropriate.) + /// empty string.(Note that this operation is overridden for Relationships to use owningRelatedElement + /// when appropriate.) /// /// /// The expected @@ -1758,13 +1756,12 @@ bool Core.Features.IFeature.IsVariable /// /// Return a subset of memberships, removing those Memberships whose memberElements are Features and for - /// which either of the following two conditions holds:
    - ///
  1. The memberElement of the Membership is included in redefined Features of another - /// Membership in memberships.
  2. One of the redefined Features of the - /// Membership is a directly redefinedFeature of an ownedFeature of this Type.
  3. - ///
For this purpose, the redefined Features of a Membership - /// whose memberElement is a Feature includes the memberElement and all Features directly or indirectly - /// redefined by the memberElement. + /// which either of the following two conditions holds:
  1. The memberElement of the Membership is + /// included in redefined Features of another Membership in memberships.
  2. One of the redefined + /// Features of the Membership is a directly redefinedFeature of an ownedFeature of this + /// Type.
For this purpose, the redefined Features of a Membership whose memberElement is a + /// Feature includes the memberElement and all Features directly or indirectly redefined by the + /// memberElement. ///
/// /// No documentation provided @@ -1891,11 +1888,11 @@ bool Core.Features.IFeature.IsVariable /// Return the Features used to determine the types of this Feature (other than this Feature itself). If /// this Feature is not conjugated, then the typingFeatures consist of all subsetted Features, except /// from CrossSubsetting, and the last chainingFeature (if any). If this Feature is conjugated, then the - /// typingFeatures are only its originalType (if the originalType is a Feature). - /// Note. CrossSubsetting is excluded from the determination of the type of a - /// Feature in order to avoid circularity in the construction of implied CrossSubsetting relationships. - /// The validateFeatureCrossFeatureType requires that the crossFeature of a Feature have the same type - /// as the Feature. + /// typingFeatures are only its originalType (if the originalType is a Feature).Note. + /// CrossSubsetting is excluded from the determination of the type of a Feature in order to avoid + /// circularity in the construction of implied CrossSubsetting relationships. The + /// validateFeatureCrossFeatureType requires that the crossFeature of a Feature have the same type as + /// the Feature. /// /// /// The expected collection of diff --git a/SysML2.NET/Core/AutoGenPoco/ConjugatedPortDefinition.cs b/SysML2.NET/Core/AutoGenPoco/ConjugatedPortDefinition.cs index b224c03bf..6b3a44628 100644 --- a/SysML2.NET/Core/AutoGenPoco/ConjugatedPortDefinition.cs +++ b/SysML2.NET/Core/AutoGenPoco/ConjugatedPortDefinition.cs @@ -100,7 +100,7 @@ public ConjugatedPortDefinition() public List AliasIds { get; set; } = []; /// - /// The <> that is conjugate to this PortDefinition. + /// The ConjugatedPortDefinition that is conjugate to this PortDefinition. /// [Property(xmiId: "_19_0_2_12e503d9_1575484364015_206236_989", aggregation: AggregationKind.None, lowerValue: 0, upperValue: 1, isOrdered: false, isReadOnly: false, isDerived: true, isDerivedUnion: false, isUnique: true, defaultValue: null)] [SubsettedProperty(propertyName: "_18_5_3_12e503d9_1533160674979_259543_43268")] @@ -283,11 +283,11 @@ public ConjugatedPortDefinition() /// /// Whether all things that meet the classification conditions of this Type must be classified by the - /// Type. (A Type gives conditions that must be met by whatever it - /// classifies, but when isSufficient is false, things may meet those conditions but still not be - /// classified by the Type. For example, a Type Car that is not sufficient could require everything it - /// classifies to have four wheels, but not all four wheeled things would classify as cars. However, if - /// the Type Car were sufficient, it would classify all four-wheeled things.) + /// Type.(A Type gives conditions that must be met by whatever it classifies, but when isSufficient + /// is false, things may meet those conditions but still not be classified by the Type. For example, a + /// Type Car that is not sufficient could require everything it classifies to have four wheels, but not + /// all four wheeled things would classify as cars. However, if the Type Car were sufficient, it would + /// classify all four-wheeled things.) /// [Property(xmiId: "_18_5_3_b9102da_1564072709069_937523_30797", aggregation: AggregationKind.None, lowerValue: 1, upperValue: 1, isOrdered: false, isReadOnly: false, isDerived: false, isDerivedUnion: false, isUnique: true, defaultValue: "false")] [Implements(implementation: "IType.IsSufficient")] @@ -575,7 +575,7 @@ public ConjugatedPortDefinition() public List ownedMembership => this.ComputeOwnedMembership(); /// - /// The MetadataUsages that are ownedUsages of this Definition. + /// The MetadataUsages that are ownedMembers of this Definition. /// [Property(xmiId: "_19_0_4_12e503d9_1661488358064_457109_2881", aggregation: AggregationKind.None, lowerValue: 0, upperValue: int.MaxValue, isOrdered: true, isReadOnly: false, isDerived: true, isDerivedUnion: false, isUnique: true, defaultValue: null)] [SubsettedProperty(propertyName: "_19_0_2_12e503d9_1591482567975_649284_3005")] @@ -1061,8 +1061,8 @@ public ConjugatedPortDefinition() /// an owningRelationship, then return the string constructed by appending to the path of it's /// owningRelationship the character / followed by the string representation of its position in the list /// of ownedRelatedElements of the owningRelationship (indexed starting at 1). Otherwise, return the - /// empty string. (Note that this operation is overridden for Relationships - /// to use owningRelatedElement when appropriate.) + /// empty string.(Note that this operation is overridden for Relationships to use owningRelatedElement + /// when appropriate.) /// /// /// The expected @@ -1084,13 +1084,12 @@ public ConjugatedPortDefinition() /// /// Return a subset of memberships, removing those Memberships whose memberElements are Features and for - /// which either of the following two conditions holds:
    - ///
  1. The memberElement of the Membership is included in redefined Features of another - /// Membership in memberships.
  2. One of the redefined Features of the - /// Membership is a directly redefinedFeature of an ownedFeature of this Type.
  3. - ///
For this purpose, the redefined Features of a Membership - /// whose memberElement is a Feature includes the memberElement and all Features directly or indirectly - /// redefined by the memberElement. + /// which either of the following two conditions holds:
  1. The memberElement of the Membership is + /// included in redefined Features of another Membership in memberships.
  2. One of the redefined + /// Features of the Membership is a directly redefinedFeature of an ownedFeature of this + /// Type.
For this purpose, the redefined Features of a Membership whose memberElement is a + /// Feature includes the memberElement and all Features directly or indirectly redefined by the + /// memberElement. ///
/// /// No documentation provided diff --git a/SysML2.NET/Core/AutoGenPoco/ConjugatedPortTyping.cs b/SysML2.NET/Core/AutoGenPoco/ConjugatedPortTyping.cs index b8b5688e0..306deb62d 100644 --- a/SysML2.NET/Core/AutoGenPoco/ConjugatedPortTyping.cs +++ b/SysML2.NET/Core/AutoGenPoco/ConjugatedPortTyping.cs @@ -470,8 +470,8 @@ IType Core.Features.IFeatureTyping.Type /// an owningRelationship, then return the string constructed by appending to the path of it's /// owningRelationship the character / followed by the string representation of its position in the list /// of ownedRelatedElements of the owningRelationship (indexed starting at 1). Otherwise, return the - /// empty string. (Note that this operation is overridden for Relationships - /// to use owningRelatedElement when appropriate.) + /// empty string.(Note that this operation is overridden for Relationships to use owningRelatedElement + /// when appropriate.) /// /// /// The expected diff --git a/SysML2.NET/Core/AutoGenPoco/Conjugation.cs b/SysML2.NET/Core/AutoGenPoco/Conjugation.cs index 6760befce..ff147c209 100644 --- a/SysML2.NET/Core/AutoGenPoco/Conjugation.cs +++ b/SysML2.NET/Core/AutoGenPoco/Conjugation.cs @@ -41,9 +41,9 @@ namespace SysML2.NET.Core.POCO.Core.Types /// with a direction in relative to the originalType are considered to have an effective direction of /// out relative to the conjugatedType and, similarly, Features with direction out in the originalType /// are considered to have an effective direction of in in the conjugatedType. Features with direction - /// inout, or with no direction, in the originalType, are inherited without change. - /// A Type may participate as a conjugatedType in at most one Conjugation relationship, and such a - /// Type may not also be the specific Type in any Specialization relationship. + /// inout, or with no direction, in the originalType, are inherited without change.A Type may + /// participate as a conjugatedType in at most one Conjugation relationship, and such a Type may not + /// also be the specific Type in any Specialization relationship. /// [Class(xmiId: "_19_0_2_12e503d9_1575482328287_696279_181", isAbstract: false, isFinalSpecialization: false, isActive: false)] [GeneratedCode("SysML2.NET", "latest")] @@ -401,8 +401,8 @@ List Root.Elements.IRelationship.Target /// an owningRelationship, then return the string constructed by appending to the path of it's /// owningRelationship the character / followed by the string representation of its position in the list /// of ownedRelatedElements of the owningRelationship (indexed starting at 1). Otherwise, return the - /// empty string. (Note that this operation is overridden for Relationships - /// to use owningRelatedElement when appropriate.) + /// empty string.(Note that this operation is overridden for Relationships to use owningRelatedElement + /// when appropriate.) /// /// /// The expected diff --git a/SysML2.NET/Core/AutoGenPoco/ConnectionDefinition.cs b/SysML2.NET/Core/AutoGenPoco/ConnectionDefinition.cs index f56a5de59..8b8af231a 100644 --- a/SysML2.NET/Core/AutoGenPoco/ConnectionDefinition.cs +++ b/SysML2.NET/Core/AutoGenPoco/ConnectionDefinition.cs @@ -311,11 +311,11 @@ public ConnectionDefinition() /// /// Whether all things that meet the classification conditions of this Type must be classified by the - /// Type. (A Type gives conditions that must be met by whatever it - /// classifies, but when isSufficient is false, things may meet those conditions but still not be - /// classified by the Type. For example, a Type Car that is not sufficient could require everything it - /// classifies to have four wheels, but not all four wheeled things would classify as cars. However, if - /// the Type Car were sufficient, it would classify all four-wheeled things.) + /// Type.(A Type gives conditions that must be met by whatever it classifies, but when isSufficient + /// is false, things may meet those conditions but still not be classified by the Type. For example, a + /// Type Car that is not sufficient could require everything it classifies to have four wheels, but not + /// all four wheeled things would classify as cars. However, if the Type Car were sufficient, it would + /// classify all four-wheeled things.) /// [Property(xmiId: "_18_5_3_b9102da_1564072709069_937523_30797", aggregation: AggregationKind.None, lowerValue: 1, upperValue: 1, isOrdered: false, isReadOnly: false, isDerived: false, isDerivedUnion: false, isUnique: true, defaultValue: "false")] [RedefinedByProperty("IConnectionDefinition.IsSufficient")] @@ -601,7 +601,7 @@ bool Core.Types.IType.IsSufficient public List ownedMembership => this.ComputeOwnedMembership(); /// - /// The MetadataUsages that are ownedUsages of this Definition. + /// The MetadataUsages that are ownedMembers of this Definition. /// [Property(xmiId: "_19_0_4_12e503d9_1661488358064_457109_2881", aggregation: AggregationKind.None, lowerValue: 0, upperValue: int.MaxValue, isOrdered: true, isReadOnly: false, isDerived: true, isDerivedUnion: false, isUnique: true, defaultValue: null)] [SubsettedProperty(propertyName: "_19_0_2_12e503d9_1591482567975_649284_3005")] @@ -1162,8 +1162,8 @@ List Root.Elements.IRelationship.Target /// an owningRelationship, then return the string constructed by appending to the path of it's /// owningRelationship the character / followed by the string representation of its position in the list /// of ownedRelatedElements of the owningRelationship (indexed starting at 1). Otherwise, return the - /// empty string. (Note that this operation is overridden for Relationships - /// to use owningRelatedElement when appropriate.) + /// empty string.(Note that this operation is overridden for Relationships to use owningRelatedElement + /// when appropriate.) /// /// /// The expected @@ -1196,13 +1196,12 @@ List Root.Elements.IRelationship.Target /// /// Return a subset of memberships, removing those Memberships whose memberElements are Features and for - /// which either of the following two conditions holds:
    - ///
  1. The memberElement of the Membership is included in redefined Features of another - /// Membership in memberships.
  2. One of the redefined Features of the - /// Membership is a directly redefinedFeature of an ownedFeature of this Type.
  3. - ///
For this purpose, the redefined Features of a Membership - /// whose memberElement is a Feature includes the memberElement and all Features directly or indirectly - /// redefined by the memberElement. + /// which either of the following two conditions holds:
  1. The memberElement of the Membership is + /// included in redefined Features of another Membership in memberships.
  2. One of the redefined + /// Features of the Membership is a directly redefinedFeature of an ownedFeature of this + /// Type.
For this purpose, the redefined Features of a Membership whose memberElement is a + /// Feature includes the memberElement and all Features directly or indirectly redefined by the + /// memberElement. ///
/// /// No documentation provided diff --git a/SysML2.NET/Core/AutoGenPoco/ConnectionUsage.cs b/SysML2.NET/Core/AutoGenPoco/ConnectionUsage.cs index 3e64d8cde..58eb8f2dd 100644 --- a/SysML2.NET/Core/AutoGenPoco/ConnectionUsage.cs +++ b/SysML2.NET/Core/AutoGenPoco/ConnectionUsage.cs @@ -466,11 +466,11 @@ public ConnectionUsage() /// /// Whether all things that meet the classification conditions of this Type must be classified by the - /// Type. (A Type gives conditions that must be met by whatever it - /// classifies, but when isSufficient is false, things may meet those conditions but still not be - /// classified by the Type. For example, a Type Car that is not sufficient could require everything it - /// classifies to have four wheels, but not all four wheeled things would classify as cars. However, if - /// the Type Car were sufficient, it would classify all four-wheeled things.) + /// Type.(A Type gives conditions that must be met by whatever it classifies, but when isSufficient + /// is false, things may meet those conditions but still not be classified by the Type. For example, a + /// Type Car that is not sufficient could require everything it classifies to have four wheels, but not + /// all four wheeled things would classify as cars. However, if the Type Car were sufficient, it would + /// classify all four-wheeled things.) /// [Property(xmiId: "_18_5_3_b9102da_1564072709069_937523_30797", aggregation: AggregationKind.None, lowerValue: 1, upperValue: 1, isOrdered: false, isReadOnly: false, isDerived: false, isDerivedUnion: false, isUnique: true, defaultValue: "false")] [Implements(implementation: "IType.IsSufficient")] @@ -518,9 +518,9 @@ bool Core.Features.IFeature.IsVariable /// Whether this Usage may be time varying (that is, whether it is featured by the snapshots of its /// owningType, rather than being featured by the owningType itself). However, if isConstant is also /// true, then the value of the Usage is nevertheless constant over the entire duration of an instance - /// of its owningType (that is, it has the same value on all snapshots). The - /// property mayTimeVary redefines the KerML property Feature::isVariable, making it derived. The - /// property isConstant is inherited from Feature. + /// of its owningType (that is, it has the same value on all snapshots).The property mayTimeVary + /// redefines the KerML property Feature::isVariable, making it derived. The property isConstant is + /// inherited from Feature. /// [Property(xmiId: "_2022x_2_12e503d9_1737227200362_771035_69", aggregation: AggregationKind.None, lowerValue: 1, upperValue: 1, isOrdered: false, isReadOnly: false, isDerived: true, isDerivedUnion: false, isUnique: true, defaultValue: null)] [RedefinedProperty(propertyName: "_2022x_2_12e503d9_1725998273002_23711_212")] @@ -621,8 +621,8 @@ bool Core.Features.IFeature.IsVariable /// /// The ConnectorAsUsages that are nestedUsages of this Usage. Note that this list includes - /// BindingConnectorAsUsages, SuccessionAsUsages, and FlowConnectionUsages because these are - /// ConnectorAsUsages even though they are not ConnectionUsages. + /// BindingConnectorAsUsages, SuccessionAsUsages, and FlowUsages because these are ConnectorAsUsages + /// even though they are not ConnectionUsages. /// [Property(xmiId: "_19_0_2_12e503d9_1591479754895_422988_1242", aggregation: AggregationKind.None, lowerValue: 0, upperValue: int.MaxValue, isOrdered: true, isReadOnly: false, isDerived: true, isDerivedUnion: false, isUnique: true, defaultValue: null)] [SubsettedProperty(propertyName: "_18_5_3_12e503d9_1565472757327_162097_21259")] @@ -670,7 +670,7 @@ bool Core.Features.IFeature.IsVariable public List nestedItem => this.ComputeNestedItem(); /// - /// The MetadataUsages that are nestedUsages of this of this Usage. + /// The MetadataUsages that are ownedMembers of this of this Usage. /// [Property(xmiId: "_19_0_4_12e503d9_1661488589862_120785_2970", aggregation: AggregationKind.None, lowerValue: 0, upperValue: int.MaxValue, isOrdered: true, isReadOnly: false, isDerived: true, isDerivedUnion: false, isUnique: true, defaultValue: null)] [SubsettedProperty(propertyName: "_19_0_2_12e503d9_1591482421103_284620_2978")] @@ -1362,9 +1362,8 @@ List Root.Elements.IRelationship.Target public FeatureDirectionKind? DirectionOfExcluding(IFeature feature, List excluded) => this.ComputeDirectionOfExcludingOperation(feature, excluded); /// - /// If a Feature has no declaredName or declaredShortName , then its - /// effective name is given by the effective name of the Feature returned by the namingFeature() - /// operation, if any. + /// If a Feature has no declaredName or declaredShortName, then its effective name is given by the + /// effective name of the Feature returned by the namingFeature() operation, if any. /// /// /// The expected @@ -1469,11 +1468,10 @@ List Root.Elements.IRelationship.Target /// /// A Feature is compatible with an otherType if it either directly or indirectly specializes the - /// otherType or if the otherType is also a Feature and all of the following are true. - ///
  1. Neither this Feature or the otherType have any - /// ownedFeatures.
  2. This Feature directly or indirectly redefines a - /// Feature that is also directly or indirectly redefined by the otherType.
  3. - ///
  4. This Feature can access the otherType.
+ /// otherType or if the otherType is also a Feature and all of the following are true.
  1. Neither + /// this Feature or the otherType have any ownedFeatures.
  2. This Feature directly or indirectly + /// redefines a Feature that is also directly or indirectly redefined by the otherType.
  3. This + /// Feature can access the otherType.
///
/// /// No documentation provided @@ -1640,8 +1638,8 @@ List Root.Elements.IRelationship.Target /// an owningRelationship, then return the string constructed by appending to the path of it's /// owningRelationship the character / followed by the string representation of its position in the list /// of ownedRelatedElements of the owningRelationship (indexed starting at 1). Otherwise, return the - /// empty string. (Note that this operation is overridden for Relationships - /// to use owningRelatedElement when appropriate.) + /// empty string.(Note that this operation is overridden for Relationships to use owningRelatedElement + /// when appropriate.) /// /// /// The expected @@ -1706,13 +1704,12 @@ List Root.Elements.IRelationship.Target /// /// Return a subset of memberships, removing those Memberships whose memberElements are Features and for - /// which either of the following two conditions holds:
    - ///
  1. The memberElement of the Membership is included in redefined Features of another - /// Membership in memberships.
  2. One of the redefined Features of the - /// Membership is a directly redefinedFeature of an ownedFeature of this Type.
  3. - ///
For this purpose, the redefined Features of a Membership - /// whose memberElement is a Feature includes the memberElement and all Features directly or indirectly - /// redefined by the memberElement. + /// which either of the following two conditions holds:
  1. The memberElement of the Membership is + /// included in redefined Features of another Membership in memberships.
  2. One of the redefined + /// Features of the Membership is a directly redefinedFeature of an ownedFeature of this + /// Type.
For this purpose, the redefined Features of a Membership whose memberElement is a + /// Feature includes the memberElement and all Features directly or indirectly redefined by the + /// memberElement. ///
/// /// No documentation provided @@ -1839,11 +1836,11 @@ List Root.Elements.IRelationship.Target /// Return the Features used to determine the types of this Feature (other than this Feature itself). If /// this Feature is not conjugated, then the typingFeatures consist of all subsetted Features, except /// from CrossSubsetting, and the last chainingFeature (if any). If this Feature is conjugated, then the - /// typingFeatures are only its originalType (if the originalType is a Feature). - /// Note. CrossSubsetting is excluded from the determination of the type of a - /// Feature in order to avoid circularity in the construction of implied CrossSubsetting relationships. - /// The validateFeatureCrossFeatureType requires that the crossFeature of a Feature have the same type - /// as the Feature. + /// typingFeatures are only its originalType (if the originalType is a Feature).Note. + /// CrossSubsetting is excluded from the determination of the type of a Feature in order to avoid + /// circularity in the construction of implied CrossSubsetting relationships. The + /// validateFeatureCrossFeatureType requires that the crossFeature of a Feature have the same type as + /// the Feature. /// /// /// The expected collection of diff --git a/SysML2.NET/Core/AutoGenPoco/Connector.cs b/SysML2.NET/Core/AutoGenPoco/Connector.cs index a61be8681..6274021db 100644 --- a/SysML2.NET/Core/AutoGenPoco/Connector.cs +++ b/SysML2.NET/Core/AutoGenPoco/Connector.cs @@ -386,11 +386,11 @@ public Connector() /// /// Whether all things that meet the classification conditions of this Type must be classified by the - /// Type. (A Type gives conditions that must be met by whatever it - /// classifies, but when isSufficient is false, things may meet those conditions but still not be - /// classified by the Type. For example, a Type Car that is not sufficient could require everything it - /// classifies to have four wheels, but not all four wheeled things would classify as cars. However, if - /// the Type Car were sufficient, it would classify all four-wheeled things.) + /// Type.(A Type gives conditions that must be met by whatever it classifies, but when isSufficient + /// is false, things may meet those conditions but still not be classified by the Type. For example, a + /// Type Car that is not sufficient could require everything it classifies to have four wheels, but not + /// all four wheeled things would classify as cars. However, if the Type Car were sufficient, it would + /// classify all four-wheeled things.) /// [Property(xmiId: "_18_5_3_b9102da_1564072709069_937523_30797", aggregation: AggregationKind.None, lowerValue: 1, upperValue: 1, isOrdered: false, isReadOnly: false, isDerived: false, isDerivedUnion: false, isUnique: true, defaultValue: "false")] [Implements(implementation: "IType.IsSufficient")] @@ -959,9 +959,8 @@ List Root.Elements.IRelationship.Target public FeatureDirectionKind? DirectionOfExcluding(IFeature feature, List excluded) => this.ComputeDirectionOfExcludingOperation(feature, excluded); /// - /// If a Feature has no declaredName or declaredShortName , then its - /// effective name is given by the effective name of the Feature returned by the namingFeature() - /// operation, if any. + /// If a Feature has no declaredName or declaredShortName, then its effective name is given by the + /// effective name of the Feature returned by the namingFeature() operation, if any. /// /// /// The expected @@ -1066,11 +1065,10 @@ List Root.Elements.IRelationship.Target /// /// A Feature is compatible with an otherType if it either directly or indirectly specializes the - /// otherType or if the otherType is also a Feature and all of the following are true. - ///
  1. Neither this Feature or the otherType have any - /// ownedFeatures.
  2. This Feature directly or indirectly redefines a - /// Feature that is also directly or indirectly redefined by the otherType.
  3. - ///
  4. This Feature can access the otherType.
+ /// otherType or if the otherType is also a Feature and all of the following are true.
  1. Neither + /// this Feature or the otherType have any ownedFeatures.
  2. This Feature directly or indirectly + /// redefines a Feature that is also directly or indirectly redefined by the otherType.
  3. This + /// Feature can access the otherType.
///
/// /// No documentation provided @@ -1228,8 +1226,8 @@ List Root.Elements.IRelationship.Target /// an owningRelationship, then return the string constructed by appending to the path of it's /// owningRelationship the character / followed by the string representation of its position in the list /// of ownedRelatedElements of the owningRelationship (indexed starting at 1). Otherwise, return the - /// empty string. (Note that this operation is overridden for Relationships - /// to use owningRelatedElement when appropriate.) + /// empty string.(Note that this operation is overridden for Relationships to use owningRelatedElement + /// when appropriate.) /// /// /// The expected @@ -1285,13 +1283,12 @@ List Root.Elements.IRelationship.Target /// /// Return a subset of memberships, removing those Memberships whose memberElements are Features and for - /// which either of the following two conditions holds:
    - ///
  1. The memberElement of the Membership is included in redefined Features of another - /// Membership in memberships.
  2. One of the redefined Features of the - /// Membership is a directly redefinedFeature of an ownedFeature of this Type.
  3. - ///
For this purpose, the redefined Features of a Membership - /// whose memberElement is a Feature includes the memberElement and all Features directly or indirectly - /// redefined by the memberElement. + /// which either of the following two conditions holds:
  1. The memberElement of the Membership is + /// included in redefined Features of another Membership in memberships.
  2. One of the redefined + /// Features of the Membership is a directly redefinedFeature of an ownedFeature of this + /// Type.
For this purpose, the redefined Features of a Membership whose memberElement is a + /// Feature includes the memberElement and all Features directly or indirectly redefined by the + /// memberElement. ///
/// /// No documentation provided @@ -1418,11 +1415,11 @@ List Root.Elements.IRelationship.Target /// Return the Features used to determine the types of this Feature (other than this Feature itself). If /// this Feature is not conjugated, then the typingFeatures consist of all subsetted Features, except /// from CrossSubsetting, and the last chainingFeature (if any). If this Feature is conjugated, then the - /// typingFeatures are only its originalType (if the originalType is a Feature). - /// Note. CrossSubsetting is excluded from the determination of the type of a - /// Feature in order to avoid circularity in the construction of implied CrossSubsetting relationships. - /// The validateFeatureCrossFeatureType requires that the crossFeature of a Feature have the same type - /// as the Feature. + /// typingFeatures are only its originalType (if the originalType is a Feature).Note. + /// CrossSubsetting is excluded from the determination of the type of a Feature in order to avoid + /// circularity in the construction of implied CrossSubsetting relationships. The + /// validateFeatureCrossFeatureType requires that the crossFeature of a Feature have the same type as + /// the Feature. /// /// /// The expected collection of diff --git a/SysML2.NET/Core/AutoGenPoco/ConstraintDefinition.cs b/SysML2.NET/Core/AutoGenPoco/ConstraintDefinition.cs index 3de725ea8..436806efa 100644 --- a/SysML2.NET/Core/AutoGenPoco/ConstraintDefinition.cs +++ b/SysML2.NET/Core/AutoGenPoco/ConstraintDefinition.cs @@ -282,9 +282,9 @@ public ConstraintDefinition() /// /// Whether this Function can be used as the function of a model-level evaluable InvocationExpression. /// Certain Functions from the Kernel Functions Library are considered to have isModelLevelEvaluable = - /// true. For all other Functions it is false. Note: See the - /// specification of the KerML concrete syntax notation for Expressions for an identification of which - /// library Functions are model-level evaluable. + /// true. For all other Functions it is false.Note: See the specification of the KerML + /// concrete syntax notation for Expressions for an identification of which library Functions are + /// model-level evaluable. /// [Property(xmiId: "_19_0_4_12e503d9_1617395221463_139517_26381", aggregation: AggregationKind.None, lowerValue: 1, upperValue: 1, isOrdered: false, isReadOnly: false, isDerived: true, isDerivedUnion: false, isUnique: true, defaultValue: null)] [Implements(implementation: "IFunction.IsModelLevelEvaluable")] @@ -292,11 +292,11 @@ public ConstraintDefinition() /// /// Whether all things that meet the classification conditions of this Type must be classified by the - /// Type. (A Type gives conditions that must be met by whatever it - /// classifies, but when isSufficient is false, things may meet those conditions but still not be - /// classified by the Type. For example, a Type Car that is not sufficient could require everything it - /// classifies to have four wheels, but not all four wheeled things would classify as cars. However, if - /// the Type Car were sufficient, it would classify all four-wheeled things.) + /// Type.(A Type gives conditions that must be met by whatever it classifies, but when isSufficient + /// is false, things may meet those conditions but still not be classified by the Type. For example, a + /// Type Car that is not sufficient could require everything it classifies to have four wheels, but not + /// all four wheeled things would classify as cars. However, if the Type Car were sufficient, it would + /// classify all four-wheeled things.) /// [Property(xmiId: "_18_5_3_b9102da_1564072709069_937523_30797", aggregation: AggregationKind.None, lowerValue: 1, upperValue: 1, isOrdered: false, isReadOnly: false, isDerived: false, isDerivedUnion: false, isUnique: true, defaultValue: "false")] [Implements(implementation: "IType.IsSufficient")] @@ -574,7 +574,7 @@ public ConstraintDefinition() public List ownedMembership => this.ComputeOwnedMembership(); /// - /// The MetadataUsages that are ownedUsages of this Definition. + /// The MetadataUsages that are ownedMembers of this Definition. /// [Property(xmiId: "_19_0_4_12e503d9_1661488358064_457109_2881", aggregation: AggregationKind.None, lowerValue: 0, upperValue: int.MaxValue, isOrdered: true, isReadOnly: false, isDerived: true, isDerivedUnion: false, isUnique: true, defaultValue: null)] [SubsettedProperty(propertyName: "_19_0_2_12e503d9_1591482567975_649284_3005")] @@ -1067,8 +1067,8 @@ public ConstraintDefinition() /// an owningRelationship, then return the string constructed by appending to the path of it's /// owningRelationship the character / followed by the string representation of its position in the list /// of ownedRelatedElements of the owningRelationship (indexed starting at 1). Otherwise, return the - /// empty string. (Note that this operation is overridden for Relationships - /// to use owningRelatedElement when appropriate.) + /// empty string.(Note that this operation is overridden for Relationships to use owningRelatedElement + /// when appropriate.) /// /// /// The expected @@ -1090,13 +1090,12 @@ public ConstraintDefinition() /// /// Return a subset of memberships, removing those Memberships whose memberElements are Features and for - /// which either of the following two conditions holds:
    - ///
  1. The memberElement of the Membership is included in redefined Features of another - /// Membership in memberships.
  2. One of the redefined Features of the - /// Membership is a directly redefinedFeature of an ownedFeature of this Type.
  3. - ///
For this purpose, the redefined Features of a Membership - /// whose memberElement is a Feature includes the memberElement and all Features directly or indirectly - /// redefined by the memberElement. + /// which either of the following two conditions holds:
  1. The memberElement of the Membership is + /// included in redefined Features of another Membership in memberships.
  2. One of the redefined + /// Features of the Membership is a directly redefinedFeature of an ownedFeature of this + /// Type.
For this purpose, the redefined Features of a Membership whose memberElement is a + /// Feature includes the memberElement and all Features directly or indirectly redefined by the + /// memberElement. ///
/// /// No documentation provided diff --git a/SysML2.NET/Core/AutoGenPoco/ConstraintUsage.cs b/SysML2.NET/Core/AutoGenPoco/ConstraintUsage.cs index 965e69ae2..aa8e0bd2e 100644 --- a/SysML2.NET/Core/AutoGenPoco/ConstraintUsage.cs +++ b/SysML2.NET/Core/AutoGenPoco/ConstraintUsage.cs @@ -450,11 +450,11 @@ public ConstraintUsage() /// /// Whether all things that meet the classification conditions of this Type must be classified by the - /// Type. (A Type gives conditions that must be met by whatever it - /// classifies, but when isSufficient is false, things may meet those conditions but still not be - /// classified by the Type. For example, a Type Car that is not sufficient could require everything it - /// classifies to have four wheels, but not all four wheeled things would classify as cars. However, if - /// the Type Car were sufficient, it would classify all four-wheeled things.) + /// Type.(A Type gives conditions that must be met by whatever it classifies, but when isSufficient + /// is false, things may meet those conditions but still not be classified by the Type. For example, a + /// Type Car that is not sufficient could require everything it classifies to have four wheels, but not + /// all four wheeled things would classify as cars. However, if the Type Car were sufficient, it would + /// classify all four-wheeled things.) /// [Property(xmiId: "_18_5_3_b9102da_1564072709069_937523_30797", aggregation: AggregationKind.None, lowerValue: 1, upperValue: 1, isOrdered: false, isReadOnly: false, isDerived: false, isDerivedUnion: false, isUnique: true, defaultValue: "false")] [Implements(implementation: "IType.IsSufficient")] @@ -492,9 +492,9 @@ bool Core.Features.IFeature.IsVariable /// Whether this Usage may be time varying (that is, whether it is featured by the snapshots of its /// owningType, rather than being featured by the owningType itself). However, if isConstant is also /// true, then the value of the Usage is nevertheless constant over the entire duration of an instance - /// of its owningType (that is, it has the same value on all snapshots). The - /// property mayTimeVary redefines the KerML property Feature::isVariable, making it derived. The - /// property isConstant is inherited from Feature. + /// of its owningType (that is, it has the same value on all snapshots).The property mayTimeVary + /// redefines the KerML property Feature::isVariable, making it derived. The property isConstant is + /// inherited from Feature. /// [Property(xmiId: "_2022x_2_12e503d9_1737227200362_771035_69", aggregation: AggregationKind.None, lowerValue: 1, upperValue: 1, isOrdered: false, isReadOnly: false, isDerived: true, isDerivedUnion: false, isUnique: true, defaultValue: null)] [RedefinedProperty(propertyName: "_2022x_2_12e503d9_1725998273002_23711_212")] @@ -595,8 +595,8 @@ bool Core.Features.IFeature.IsVariable /// /// The ConnectorAsUsages that are nestedUsages of this Usage. Note that this list includes - /// BindingConnectorAsUsages, SuccessionAsUsages, and FlowConnectionUsages because these are - /// ConnectorAsUsages even though they are not ConnectionUsages. + /// BindingConnectorAsUsages, SuccessionAsUsages, and FlowUsages because these are ConnectorAsUsages + /// even though they are not ConnectionUsages. /// [Property(xmiId: "_19_0_2_12e503d9_1591479754895_422988_1242", aggregation: AggregationKind.None, lowerValue: 0, upperValue: int.MaxValue, isOrdered: true, isReadOnly: false, isDerived: true, isDerivedUnion: false, isUnique: true, defaultValue: null)] [SubsettedProperty(propertyName: "_18_5_3_12e503d9_1565472757327_162097_21259")] @@ -644,7 +644,7 @@ bool Core.Features.IFeature.IsVariable public List nestedItem => this.ComputeNestedItem(); /// - /// The MetadataUsages that are nestedUsages of this of this Usage. + /// The MetadataUsages that are ownedMembers of this of this Usage. /// [Property(xmiId: "_19_0_4_12e503d9_1661488589862_120785_2970", aggregation: AggregationKind.None, lowerValue: 0, upperValue: int.MaxValue, isOrdered: true, isReadOnly: false, isDerived: true, isDerivedUnion: false, isUnique: true, defaultValue: null)] [SubsettedProperty(propertyName: "_19_0_2_12e503d9_1591482421103_284620_2978")] @@ -1284,9 +1284,8 @@ bool Core.Features.IFeature.IsVariable public FeatureDirectionKind? DirectionOfExcluding(IFeature feature, List excluded) => this.ComputeDirectionOfExcludingOperation(feature, excluded); /// - /// If a Feature has no declaredName or declaredShortName , then its - /// effective name is given by the effective name of the Feature returned by the namingFeature() - /// operation, if any. + /// If a Feature has no declaredName or declaredShortName, then its effective name is given by the + /// effective name of the Feature returned by the namingFeature() operation, if any. /// /// /// The expected @@ -1405,11 +1404,10 @@ bool Core.Features.IFeature.IsVariable /// /// A Feature is compatible with an otherType if it either directly or indirectly specializes the - /// otherType or if the otherType is also a Feature and all of the following are true. - ///
  1. Neither this Feature or the otherType have any - /// ownedFeatures.
  2. This Feature directly or indirectly redefines a - /// Feature that is also directly or indirectly redefined by the otherType.
  3. - ///
  4. This Feature can access the otherType.
+ /// otherType or if the otherType is also a Feature and all of the following are true.
  1. Neither + /// this Feature or the otherType have any ownedFeatures.
  2. This Feature directly or indirectly + /// redefines a Feature that is also directly or indirectly redefined by the otherType.
  3. This + /// Feature can access the otherType.
///
/// /// No documentation provided @@ -1509,11 +1507,11 @@ bool Core.Features.IFeature.IsVariable /// Return whether this Expression is model-level evaluable. The visited parameter is used to track /// possible circular Feature references made from FeatureReferenceExpressions (see the redefinition of /// this operation for FeatureReferenceExpression). Such circular references are not allowed in - /// model-level evaluable expressions. An Expression that is not otherwise - /// specialized is model-level evaluable if it has no (non-implied) ownedSpecializations and all its - /// ownedFeatures are either in parameters, the result parameter or a result Expression owned via a - /// ResultExpressionMembership. The parameters must not have any ownedFeatures or a FeatureValue, and - /// the result Expression must be model-level evaluable. + /// model-level evaluable expressions.An Expression that is not otherwise specialized is model-level + /// evaluable if it has no (non-implied) ownedSpecializations and all its ownedFeatures are either in + /// parameters, the result parameter or a result Expression owned via a ResultExpressionMembership. The + /// parameters must not have any ownedFeatures or a FeatureValue, and the result Expression must be + /// model-level evaluable. /// /// /// No documentation provided @@ -1606,8 +1604,8 @@ bool Core.Features.IFeature.IsVariable /// an owningRelationship, then return the string constructed by appending to the path of it's /// owningRelationship the character / followed by the string representation of its position in the list /// of ownedRelatedElements of the owningRelationship (indexed starting at 1). Otherwise, return the - /// empty string. (Note that this operation is overridden for Relationships - /// to use owningRelatedElement when appropriate.) + /// empty string.(Note that this operation is overridden for Relationships to use owningRelatedElement + /// when appropriate.) /// /// /// The expected @@ -1661,13 +1659,12 @@ bool Core.Features.IFeature.IsVariable /// /// Return a subset of memberships, removing those Memberships whose memberElements are Features and for - /// which either of the following two conditions holds:
    - ///
  1. The memberElement of the Membership is included in redefined Features of another - /// Membership in memberships.
  2. One of the redefined Features of the - /// Membership is a directly redefinedFeature of an ownedFeature of this Type.
  3. - ///
For this purpose, the redefined Features of a Membership - /// whose memberElement is a Feature includes the memberElement and all Features directly or indirectly - /// redefined by the memberElement. + /// which either of the following two conditions holds:
  1. The memberElement of the Membership is + /// included in redefined Features of another Membership in memberships.
  2. One of the redefined + /// Features of the Membership is a directly redefinedFeature of an ownedFeature of this + /// Type.
For this purpose, the redefined Features of a Membership whose memberElement is a + /// Feature includes the memberElement and all Features directly or indirectly redefined by the + /// memberElement. ///
/// /// No documentation provided @@ -1794,11 +1791,11 @@ bool Core.Features.IFeature.IsVariable /// Return the Features used to determine the types of this Feature (other than this Feature itself). If /// this Feature is not conjugated, then the typingFeatures consist of all subsetted Features, except /// from CrossSubsetting, and the last chainingFeature (if any). If this Feature is conjugated, then the - /// typingFeatures are only its originalType (if the originalType is a Feature). - /// Note. CrossSubsetting is excluded from the determination of the type of a - /// Feature in order to avoid circularity in the construction of implied CrossSubsetting relationships. - /// The validateFeatureCrossFeatureType requires that the crossFeature of a Feature have the same type - /// as the Feature. + /// typingFeatures are only its originalType (if the originalType is a Feature).Note. + /// CrossSubsetting is excluded from the determination of the type of a Feature in order to avoid + /// circularity in the construction of implied CrossSubsetting relationships. The + /// validateFeatureCrossFeatureType requires that the crossFeature of a Feature have the same type as + /// the Feature. /// /// /// The expected collection of diff --git a/SysML2.NET/Core/AutoGenPoco/ConstructorExpression.cs b/SysML2.NET/Core/AutoGenPoco/ConstructorExpression.cs index 4b037f6fa..e1297753d 100644 --- a/SysML2.NET/Core/AutoGenPoco/ConstructorExpression.cs +++ b/SysML2.NET/Core/AutoGenPoco/ConstructorExpression.cs @@ -78,8 +78,8 @@ public ConstructorExpression() /// /// The Expressions whose results are bound to features of the instantiatedType. The arguments are /// ordered consistent with the order of the features, though they may not be one-to-one with all the - /// features. Note. The derivation of argument is given in - /// the concrete subclasses of InstantiationExpression. + /// features.Note. The derivation of argument is given in the concrete subclasses of + /// InstantiationExpression. /// [Property(xmiId: "_2022x_2_12e503d9_1739134437590_328753_108", aggregation: AggregationKind.None, lowerValue: 0, upperValue: int.MaxValue, isOrdered: true, isReadOnly: false, isDerived: true, isDerivedUnion: false, isUnique: true, defaultValue: null)] [Implements(implementation: "IInstantiationExpression.Argument")] @@ -390,11 +390,11 @@ public ConstructorExpression() /// /// Whether all things that meet the classification conditions of this Type must be classified by the - /// Type. (A Type gives conditions that must be met by whatever it - /// classifies, but when isSufficient is false, things may meet those conditions but still not be - /// classified by the Type. For example, a Type Car that is not sufficient could require everything it - /// classifies to have four wheels, but not all four wheeled things would classify as cars. However, if - /// the Type Car were sufficient, it would classify all four-wheeled things.) + /// Type.(A Type gives conditions that must be met by whatever it classifies, but when isSufficient + /// is false, things may meet those conditions but still not be classified by the Type. For example, a + /// Type Car that is not sufficient could require everything it classifies to have four wheels, but not + /// all four wheeled things would classify as cars. However, if the Type Car were sufficient, it would + /// classify all four-wheeled things.) /// [Property(xmiId: "_18_5_3_b9102da_1564072709069_937523_30797", aggregation: AggregationKind.None, lowerValue: 1, upperValue: 1, isOrdered: false, isReadOnly: false, isDerived: false, isDerivedUnion: false, isUnique: true, defaultValue: "false")] [Implements(implementation: "IType.IsSufficient")] @@ -909,9 +909,8 @@ public ConstructorExpression() public FeatureDirectionKind? DirectionOfExcluding(IFeature feature, List excluded) => this.ComputeDirectionOfExcludingOperation(feature, excluded); /// - /// If a Feature has no declaredName or declaredShortName , then its - /// effective name is given by the effective name of the Feature returned by the namingFeature() - /// operation, if any. + /// If a Feature has no declaredName or declaredShortName, then its effective name is given by the + /// effective name of the Feature returned by the namingFeature() operation, if any. /// /// /// The expected @@ -1023,8 +1022,7 @@ public ConstructorExpression() /// /// Return the Type to act as the instantiatedType for this InstantiationExpression. By default, this is /// the memberElement of the first ownedMembership that is not a FeatureMembership, which must be a - /// Type. Note. This operation is overridden in the subclass - /// OperatorExpression. + /// Type.Note. This operation is overridden in the subclass OperatorExpression. /// /// /// The expected @@ -1041,11 +1039,10 @@ public ConstructorExpression() /// /// A Feature is compatible with an otherType if it either directly or indirectly specializes the - /// otherType or if the otherType is also a Feature and all of the following are true. - ///
  1. Neither this Feature or the otherType have any - /// ownedFeatures.
  2. This Feature directly or indirectly redefines a - /// Feature that is also directly or indirectly redefined by the otherType.
  3. - ///
  4. This Feature can access the otherType.
+ /// otherType or if the otherType is also a Feature and all of the following are true.
  1. Neither + /// this Feature or the otherType have any ownedFeatures.
  2. This Feature directly or indirectly + /// redefines a Feature that is also directly or indirectly redefined by the otherType.
  3. This + /// Feature can access the otherType.
///
/// /// No documentation provided @@ -1146,11 +1143,11 @@ public ConstructorExpression() /// Return whether this Expression is model-level evaluable. The visited parameter is used to track /// possible circular Feature references made from FeatureReferenceExpressions (see the redefinition of /// this operation for FeatureReferenceExpression). Such circular references are not allowed in - /// model-level evaluable expressions. An Expression that is not otherwise - /// specialized is model-level evaluable if it has no (non-implied) ownedSpecializations and all its - /// ownedFeatures are either in parameters, the result parameter or a result Expression owned via a - /// ResultExpressionMembership. The parameters must not have any ownedFeatures or a FeatureValue, and - /// the result Expression must be model-level evaluable. + /// model-level evaluable expressions.An Expression that is not otherwise specialized is model-level + /// evaluable if it has no (non-implied) ownedSpecializations and all its ownedFeatures are either in + /// parameters, the result parameter or a result Expression owned via a ResultExpressionMembership. The + /// parameters must not have any ownedFeatures or a FeatureValue, and the result Expression must be + /// model-level evaluable. /// /// /// No documentation provided @@ -1224,8 +1221,8 @@ public ConstructorExpression() /// an owningRelationship, then return the string constructed by appending to the path of it's /// owningRelationship the character / followed by the string representation of its position in the list /// of ownedRelatedElements of the owningRelationship (indexed starting at 1). Otherwise, return the - /// empty string. (Note that this operation is overridden for Relationships - /// to use owningRelatedElement when appropriate.) + /// empty string.(Note that this operation is overridden for Relationships to use owningRelatedElement + /// when appropriate.) /// /// /// The expected @@ -1270,13 +1267,12 @@ public ConstructorExpression() /// /// Return a subset of memberships, removing those Memberships whose memberElements are Features and for - /// which either of the following two conditions holds:
    - ///
  1. The memberElement of the Membership is included in redefined Features of another - /// Membership in memberships.
  2. One of the redefined Features of the - /// Membership is a directly redefinedFeature of an ownedFeature of this Type.
  3. - ///
For this purpose, the redefined Features of a Membership - /// whose memberElement is a Feature includes the memberElement and all Features directly or indirectly - /// redefined by the memberElement. + /// which either of the following two conditions holds:
  1. The memberElement of the Membership is + /// included in redefined Features of another Membership in memberships.
  2. One of the redefined + /// Features of the Membership is a directly redefinedFeature of an ownedFeature of this + /// Type.
For this purpose, the redefined Features of a Membership whose memberElement is a + /// Feature includes the memberElement and all Features directly or indirectly redefined by the + /// memberElement. ///
/// /// No documentation provided @@ -1403,11 +1399,11 @@ public ConstructorExpression() /// Return the Features used to determine the types of this Feature (other than this Feature itself). If /// this Feature is not conjugated, then the typingFeatures consist of all subsetted Features, except /// from CrossSubsetting, and the last chainingFeature (if any). If this Feature is conjugated, then the - /// typingFeatures are only its originalType (if the originalType is a Feature). - /// Note. CrossSubsetting is excluded from the determination of the type of a - /// Feature in order to avoid circularity in the construction of implied CrossSubsetting relationships. - /// The validateFeatureCrossFeatureType requires that the crossFeature of a Feature have the same type - /// as the Feature. + /// typingFeatures are only its originalType (if the originalType is a Feature).Note. + /// CrossSubsetting is excluded from the determination of the type of a Feature in order to avoid + /// circularity in the construction of implied CrossSubsetting relationships. The + /// validateFeatureCrossFeatureType requires that the crossFeature of a Feature have the same type as + /// the Feature. /// /// /// The expected collection of diff --git a/SysML2.NET/Core/AutoGenPoco/CrossSubsetting.cs b/SysML2.NET/Core/AutoGenPoco/CrossSubsetting.cs index d7cd66f2a..1dfb09622 100644 --- a/SysML2.NET/Core/AutoGenPoco/CrossSubsetting.cs +++ b/SysML2.NET/Core/AutoGenPoco/CrossSubsetting.cs @@ -40,18 +40,17 @@ namespace SysML2.NET.Core.POCO.Core.Features /// CrossSubsetting is a kind of Subsetting for end Features, as identified by crossingFeature, to /// subset a chained Feature, identified by crossedFeature. It navigates to instances of the end /// Feature’s type from instances of other end Feature types on the same owningType (at least two end - /// Features are required for any of them to have a CrossSubsetting). The - /// crossedFeature of a CrossSubsetting must have a feature chain of exactly two Features. The second - /// Feature in the chain is the crossFeature of the crossingFeature (end Feature), which has the same - /// type as the crossingFeature. When the owningType of the crossingFeature has exactly two end - /// Features, the first Feature in the chain of the crossedFeature is the other end Feature. The - /// crossFeature’s featuringType in this case is the other end Feature. When the owningType has more - /// than two end Features, the first Feature in the chain is a Feature that CrossMultiplies all the - /// other end Features, which is also the featuringType of the crossFeature. A - /// crossFeature must be owned by its featureCrossing (end Feature) when the featureCrossing owningType - /// has more than two end Features. Otherwise, for exactly two end Features, the crossFeatures of each - /// the ends can instead optionally be inherited by the other end from one of its types or a subsetted - /// Feature. + /// Features are required for any of them to have a CrossSubsetting).The crossedFeature of a + /// CrossSubsetting must have a feature chain of exactly two Features. The second Feature in the chain + /// is the crossFeature of the crossingFeature (end Feature), which has the same type as the + /// crossingFeature. When the owningType of the crossingFeature has exactly two end Features, the first + /// Feature in the chain of the crossedFeature is the other end Feature. The crossFeature’s + /// featuringType in this case is the other end Feature. When the owningType has more than two end + /// Features, the first Feature in the chain is a Feature that CrossMultiplies all the other end + /// Features, which is also the featuringType of the crossFeature.A crossFeature must be owned by its + /// featureCrossing (end Feature) when the featureCrossing owningType has more than two end Features. + /// Otherwise, for exactly two end Features, the crossFeatures of each the ends can instead optionally + /// be inherited by the other end from one of its types or a subsetted Feature. /// [Class(xmiId: "_19_0_4_b9102da_1689616180239_998062_127", isAbstract: false, isFinalSpecialization: false, isActive: false)] [GeneratedCode("SysML2.NET", "latest")] @@ -488,8 +487,8 @@ List Root.Elements.IRelationship.Target /// an owningRelationship, then return the string constructed by appending to the path of it's /// owningRelationship the character / followed by the string representation of its position in the list /// of ownedRelatedElements of the owningRelationship (indexed starting at 1). Otherwise, return the - /// empty string. (Note that this operation is overridden for Relationships - /// to use owningRelatedElement when appropriate.) + /// empty string.(Note that this operation is overridden for Relationships to use owningRelatedElement + /// when appropriate.) /// /// /// The expected diff --git a/SysML2.NET/Core/AutoGenPoco/DataType.cs b/SysML2.NET/Core/AutoGenPoco/DataType.cs index 167b21ed7..af88e3f9f 100644 --- a/SysML2.NET/Core/AutoGenPoco/DataType.cs +++ b/SysML2.NET/Core/AutoGenPoco/DataType.cs @@ -43,11 +43,10 @@ namespace SysML2.NET.Core.POCO.Kernel.DataTypes /// /// A DataType is a Classifier of things (in the universe) that can only be distinguished by how they /// are related to other things (via Features). This means multiple things classified by the same - /// DataType
  • Cannot be distinguished when they - /// are related to other things in exactly the same way, even when they are intended to be about - /// different things.
  • Can be distinguished when they are related to - /// other things in different ways, even when they are intended to be about the same thing.
  • - ///
+ /// DataType
  • Cannot be distinguished when they are related to other things in exactly the same + /// way, even when they are intended to be about different things.
  • Can be distinguished when + /// they are related to other things in different ways, even when they are intended to be about the same + /// thing.
///
[Class(xmiId: "_18_5_3_12e503d9_1557527599533_240072_110321", isAbstract: false, isFinalSpecialization: false, isActive: false)] [GeneratedCode("SysML2.NET", "latest")] @@ -239,11 +238,11 @@ public DataType() /// /// Whether all things that meet the classification conditions of this Type must be classified by the - /// Type. (A Type gives conditions that must be met by whatever it - /// classifies, but when isSufficient is false, things may meet those conditions but still not be - /// classified by the Type. For example, a Type Car that is not sufficient could require everything it - /// classifies to have four wheels, but not all four wheeled things would classify as cars. However, if - /// the Type Car were sufficient, it would classify all four-wheeled things.) + /// Type.(A Type gives conditions that must be met by whatever it classifies, but when isSufficient + /// is false, things may meet those conditions but still not be classified by the Type. For example, a + /// Type Car that is not sufficient could require everything it classifies to have four wheels, but not + /// all four wheeled things would classify as cars. However, if the Type Car were sufficient, it would + /// classify all four-wheeled things.) /// [Property(xmiId: "_18_5_3_b9102da_1564072709069_937523_30797", aggregation: AggregationKind.None, lowerValue: 1, upperValue: 1, isOrdered: false, isReadOnly: false, isDerived: false, isDerivedUnion: false, isUnique: true, defaultValue: "false")] [Implements(implementation: "IType.IsSufficient")] @@ -735,8 +734,8 @@ public DataType() /// an owningRelationship, then return the string constructed by appending to the path of it's /// owningRelationship the character / followed by the string representation of its position in the list /// of ownedRelatedElements of the owningRelationship (indexed starting at 1). Otherwise, return the - /// empty string. (Note that this operation is overridden for Relationships - /// to use owningRelatedElement when appropriate.) + /// empty string.(Note that this operation is overridden for Relationships to use owningRelatedElement + /// when appropriate.) /// /// /// The expected @@ -758,13 +757,12 @@ public DataType() /// /// Return a subset of memberships, removing those Memberships whose memberElements are Features and for - /// which either of the following two conditions holds:
    - ///
  1. The memberElement of the Membership is included in redefined Features of another - /// Membership in memberships.
  2. One of the redefined Features of the - /// Membership is a directly redefinedFeature of an ownedFeature of this Type.
  3. - ///
For this purpose, the redefined Features of a Membership - /// whose memberElement is a Feature includes the memberElement and all Features directly or indirectly - /// redefined by the memberElement. + /// which either of the following two conditions holds:
  1. The memberElement of the Membership is + /// included in redefined Features of another Membership in memberships.
  2. One of the redefined + /// Features of the Membership is a directly redefinedFeature of an ownedFeature of this + /// Type.
For this purpose, the redefined Features of a Membership whose memberElement is a + /// Feature includes the memberElement and all Features directly or indirectly redefined by the + /// memberElement. ///
/// /// No documentation provided diff --git a/SysML2.NET/Core/AutoGenPoco/DecisionNode.cs b/SysML2.NET/Core/AutoGenPoco/DecisionNode.cs index 81d5faa2f..414066bd5 100644 --- a/SysML2.NET/Core/AutoGenPoco/DecisionNode.cs +++ b/SysML2.NET/Core/AutoGenPoco/DecisionNode.cs @@ -430,11 +430,11 @@ public DecisionNode() /// /// Whether all things that meet the classification conditions of this Type must be classified by the - /// Type. (A Type gives conditions that must be met by whatever it - /// classifies, but when isSufficient is false, things may meet those conditions but still not be - /// classified by the Type. For example, a Type Car that is not sufficient could require everything it - /// classifies to have four wheels, but not all four wheeled things would classify as cars. However, if - /// the Type Car were sufficient, it would classify all four-wheeled things.) + /// Type.(A Type gives conditions that must be met by whatever it classifies, but when isSufficient + /// is false, things may meet those conditions but still not be classified by the Type. For example, a + /// Type Car that is not sufficient could require everything it classifies to have four wheels, but not + /// all four wheeled things would classify as cars. However, if the Type Car were sufficient, it would + /// classify all four-wheeled things.) /// [Property(xmiId: "_18_5_3_b9102da_1564072709069_937523_30797", aggregation: AggregationKind.None, lowerValue: 1, upperValue: 1, isOrdered: false, isReadOnly: false, isDerived: false, isDerivedUnion: false, isUnique: true, defaultValue: "false")] [Implements(implementation: "IType.IsSufficient")] @@ -472,9 +472,9 @@ bool Core.Features.IFeature.IsVariable /// Whether this Usage may be time varying (that is, whether it is featured by the snapshots of its /// owningType, rather than being featured by the owningType itself). However, if isConstant is also /// true, then the value of the Usage is nevertheless constant over the entire duration of an instance - /// of its owningType (that is, it has the same value on all snapshots). The - /// property mayTimeVary redefines the KerML property Feature::isVariable, making it derived. The - /// property isConstant is inherited from Feature. + /// of its owningType (that is, it has the same value on all snapshots).The property mayTimeVary + /// redefines the KerML property Feature::isVariable, making it derived. The property isConstant is + /// inherited from Feature. /// [Property(xmiId: "_2022x_2_12e503d9_1737227200362_771035_69", aggregation: AggregationKind.None, lowerValue: 1, upperValue: 1, isOrdered: false, isReadOnly: false, isDerived: true, isDerivedUnion: false, isUnique: true, defaultValue: null)] [RedefinedProperty(propertyName: "_2022x_2_12e503d9_1725998273002_23711_212")] @@ -575,8 +575,8 @@ bool Core.Features.IFeature.IsVariable /// /// The ConnectorAsUsages that are nestedUsages of this Usage. Note that this list includes - /// BindingConnectorAsUsages, SuccessionAsUsages, and FlowConnectionUsages because these are - /// ConnectorAsUsages even though they are not ConnectionUsages. + /// BindingConnectorAsUsages, SuccessionAsUsages, and FlowUsages because these are ConnectorAsUsages + /// even though they are not ConnectionUsages. /// [Property(xmiId: "_19_0_2_12e503d9_1591479754895_422988_1242", aggregation: AggregationKind.None, lowerValue: 0, upperValue: int.MaxValue, isOrdered: true, isReadOnly: false, isDerived: true, isDerivedUnion: false, isUnique: true, defaultValue: null)] [SubsettedProperty(propertyName: "_18_5_3_12e503d9_1565472757327_162097_21259")] @@ -624,7 +624,7 @@ bool Core.Features.IFeature.IsVariable public List nestedItem => this.ComputeNestedItem(); /// - /// The MetadataUsages that are nestedUsages of this of this Usage. + /// The MetadataUsages that are ownedMembers of this of this Usage. /// [Property(xmiId: "_19_0_4_12e503d9_1661488589862_120785_2970", aggregation: AggregationKind.None, lowerValue: 0, upperValue: int.MaxValue, isOrdered: true, isReadOnly: false, isDerived: true, isDerivedUnion: false, isUnique: true, defaultValue: null)] [SubsettedProperty(propertyName: "_19_0_2_12e503d9_1591482421103_284620_2978")] @@ -1245,9 +1245,8 @@ bool Core.Features.IFeature.IsVariable public FeatureDirectionKind? DirectionOfExcluding(IFeature feature, List excluded) => this.ComputeDirectionOfExcludingOperation(feature, excluded); /// - /// If a Feature has no declaredName or declaredShortName , then its - /// effective name is given by the effective name of the Feature returned by the namingFeature() - /// operation, if any. + /// If a Feature has no declaredName or declaredShortName, then its effective name is given by the + /// effective name of the Feature returned by the namingFeature() operation, if any. /// /// /// The expected @@ -1372,11 +1371,10 @@ bool Core.Features.IFeature.IsVariable /// /// A Feature is compatible with an otherType if it either directly or indirectly specializes the - /// otherType or if the otherType is also a Feature and all of the following are true. - ///
  1. Neither this Feature or the otherType have any - /// ownedFeatures.
  2. This Feature directly or indirectly redefines a - /// Feature that is also directly or indirectly redefined by the otherType.
  3. - ///
  4. This Feature can access the otherType.
+ /// otherType or if the otherType is also a Feature and all of the following are true.
  1. Neither + /// this Feature or the otherType have any ownedFeatures.
  2. This Feature directly or indirectly + /// redefines a Feature that is also directly or indirectly redefined by the otherType.
  3. This + /// Feature can access the otherType.
///
/// /// No documentation provided @@ -1562,8 +1560,8 @@ bool Core.Features.IFeature.IsVariable /// an owningRelationship, then return the string constructed by appending to the path of it's /// owningRelationship the character / followed by the string representation of its position in the list /// of ownedRelatedElements of the owningRelationship (indexed starting at 1). Otherwise, return the - /// empty string. (Note that this operation is overridden for Relationships - /// to use owningRelatedElement when appropriate.) + /// empty string.(Note that this operation is overridden for Relationships to use owningRelatedElement + /// when appropriate.) /// /// /// The expected @@ -1617,13 +1615,12 @@ bool Core.Features.IFeature.IsVariable /// /// Return a subset of memberships, removing those Memberships whose memberElements are Features and for - /// which either of the following two conditions holds:
    - ///
  1. The memberElement of the Membership is included in redefined Features of another - /// Membership in memberships.
  2. One of the redefined Features of the - /// Membership is a directly redefinedFeature of an ownedFeature of this Type.
  3. - ///
For this purpose, the redefined Features of a Membership - /// whose memberElement is a Feature includes the memberElement and all Features directly or indirectly - /// redefined by the memberElement. + /// which either of the following two conditions holds:
  1. The memberElement of the Membership is + /// included in redefined Features of another Membership in memberships.
  2. One of the redefined + /// Features of the Membership is a directly redefinedFeature of an ownedFeature of this + /// Type.
For this purpose, the redefined Features of a Membership whose memberElement is a + /// Feature includes the memberElement and all Features directly or indirectly redefined by the + /// memberElement. ///
/// /// No documentation provided @@ -1750,11 +1747,11 @@ bool Core.Features.IFeature.IsVariable /// Return the Features used to determine the types of this Feature (other than this Feature itself). If /// this Feature is not conjugated, then the typingFeatures consist of all subsetted Features, except /// from CrossSubsetting, and the last chainingFeature (if any). If this Feature is conjugated, then the - /// typingFeatures are only its originalType (if the originalType is a Feature). - /// Note. CrossSubsetting is excluded from the determination of the type of a - /// Feature in order to avoid circularity in the construction of implied CrossSubsetting relationships. - /// The validateFeatureCrossFeatureType requires that the crossFeature of a Feature have the same type - /// as the Feature. + /// typingFeatures are only its originalType (if the originalType is a Feature).Note. + /// CrossSubsetting is excluded from the determination of the type of a Feature in order to avoid + /// circularity in the construction of implied CrossSubsetting relationships. The + /// validateFeatureCrossFeatureType requires that the crossFeature of a Feature have the same type as + /// the Feature. /// /// /// The expected collection of diff --git a/SysML2.NET/Core/AutoGenPoco/Definition.cs b/SysML2.NET/Core/AutoGenPoco/Definition.cs index 5c61f5dde..b20b80434 100644 --- a/SysML2.NET/Core/AutoGenPoco/Definition.cs +++ b/SysML2.NET/Core/AutoGenPoco/Definition.cs @@ -63,15 +63,15 @@ namespace SysML2.NET.Core.POCO.Systems.DefinitionAndUsage /// /// 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 + /// 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. + /// 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. /// [Class(xmiId: "_18_5_3_12e503d9_1565479032244_336549_22524", isAbstract: false, isFinalSpecialization: false, isActive: false)] [GeneratedCode("SysML2.NET", "latest")] @@ -271,11 +271,11 @@ public Definition() /// /// Whether all things that meet the classification conditions of this Type must be classified by the - /// Type. (A Type gives conditions that must be met by whatever it - /// classifies, but when isSufficient is false, things may meet those conditions but still not be - /// classified by the Type. For example, a Type Car that is not sufficient could require everything it - /// classifies to have four wheels, but not all four wheeled things would classify as cars. However, if - /// the Type Car were sufficient, it would classify all four-wheeled things.) + /// Type.(A Type gives conditions that must be met by whatever it classifies, but when isSufficient + /// is false, things may meet those conditions but still not be classified by the Type. For example, a + /// Type Car that is not sufficient could require everything it classifies to have four wheels, but not + /// all four wheeled things would classify as cars. However, if the Type Car were sufficient, it would + /// classify all four-wheeled things.) /// [Property(xmiId: "_18_5_3_b9102da_1564072709069_937523_30797", aggregation: AggregationKind.None, lowerValue: 1, upperValue: 1, isOrdered: false, isReadOnly: false, isDerived: false, isDerivedUnion: false, isUnique: true, defaultValue: "false")] [Implements(implementation: "IType.IsSufficient")] @@ -553,7 +553,7 @@ public Definition() public List ownedMembership => this.ComputeOwnedMembership(); /// - /// The MetadataUsages that are ownedUsages of this Definition. + /// The MetadataUsages that are ownedMembers of this Definition. /// [Property(xmiId: "_19_0_4_12e503d9_1661488358064_457109_2881", aggregation: AggregationKind.None, lowerValue: 0, upperValue: int.MaxValue, isOrdered: true, isReadOnly: false, isDerived: true, isDerivedUnion: false, isUnique: true, defaultValue: null)] [SubsettedProperty(propertyName: "_19_0_2_12e503d9_1591482567975_649284_3005")] @@ -1020,8 +1020,8 @@ public Definition() /// an owningRelationship, then return the string constructed by appending to the path of it's /// owningRelationship the character / followed by the string representation of its position in the list /// of ownedRelatedElements of the owningRelationship (indexed starting at 1). Otherwise, return the - /// empty string. (Note that this operation is overridden for Relationships - /// to use owningRelatedElement when appropriate.) + /// empty string.(Note that this operation is overridden for Relationships to use owningRelatedElement + /// when appropriate.) /// /// /// The expected @@ -1043,13 +1043,12 @@ public Definition() /// /// Return a subset of memberships, removing those Memberships whose memberElements are Features and for - /// which either of the following two conditions holds:
    - ///
  1. The memberElement of the Membership is included in redefined Features of another - /// Membership in memberships.
  2. One of the redefined Features of the - /// Membership is a directly redefinedFeature of an ownedFeature of this Type.
  3. - ///
For this purpose, the redefined Features of a Membership - /// whose memberElement is a Feature includes the memberElement and all Features directly or indirectly - /// redefined by the memberElement. + /// which either of the following two conditions holds:
  1. The memberElement of the Membership is + /// included in redefined Features of another Membership in memberships.
  2. One of the redefined + /// Features of the Membership is a directly redefinedFeature of an ownedFeature of this + /// Type.
For this purpose, the redefined Features of a Membership whose memberElement is a + /// Feature includes the memberElement and all Features directly or indirectly redefined by the + /// memberElement. ///
/// /// No documentation provided diff --git a/SysML2.NET/Core/AutoGenPoco/Dependency.cs b/SysML2.NET/Core/AutoGenPoco/Dependency.cs index f8b54b5cd..0f3259363 100644 --- a/SysML2.NET/Core/AutoGenPoco/Dependency.cs +++ b/SysML2.NET/Core/AutoGenPoco/Dependency.cs @@ -38,9 +38,8 @@ namespace SysML2.NET.Core.POCO.Root.Dependencies /// /// A Dependency is a Relationship that indicates that one or more client Elements require one more /// supplier Elements for their complete specification. In general, this means that a change to one of - /// the supplier Elements may necessitate a change to, or re-specification of, the client Elements. - /// Note that a Dependency is entirely a model-level Relationship, without - /// instance-level semantics. + /// the supplier Elements may necessitate a change to, or re-specification of, the client Elements.Note + /// that a Dependency is entirely a model-level Relationship, without instance-level semantics. /// [Class(xmiId: "_19_0_2_12e503d9_1594006219028_628649_74", isAbstract: false, isFinalSpecialization: false, isActive: false)] [GeneratedCode("SysML2.NET", "latest")] @@ -383,8 +382,8 @@ List Root.Elements.IRelationship.Target /// an owningRelationship, then return the string constructed by appending to the path of it's /// owningRelationship the character / followed by the string representation of its position in the list /// of ownedRelatedElements of the owningRelationship (indexed starting at 1). Otherwise, return the - /// empty string. (Note that this operation is overridden for Relationships - /// to use owningRelatedElement when appropriate.) + /// empty string.(Note that this operation is overridden for Relationships to use owningRelatedElement + /// when appropriate.) /// /// /// The expected diff --git a/SysML2.NET/Core/AutoGenPoco/Differencing.cs b/SysML2.NET/Core/AutoGenPoco/Differencing.cs index c9a3f3332..b56817377 100644 --- a/SysML2.NET/Core/AutoGenPoco/Differencing.cs +++ b/SysML2.NET/Core/AutoGenPoco/Differencing.cs @@ -383,8 +383,8 @@ List Root.Elements.IRelationship.Target /// an owningRelationship, then return the string constructed by appending to the path of it's /// owningRelationship the character / followed by the string representation of its position in the list /// of ownedRelatedElements of the owningRelationship (indexed starting at 1). Otherwise, return the - /// empty string. (Note that this operation is overridden for Relationships - /// to use owningRelatedElement when appropriate.) + /// empty string.(Note that this operation is overridden for Relationships to use owningRelatedElement + /// when appropriate.) /// /// /// The expected diff --git a/SysML2.NET/Core/AutoGenPoco/Disjoining.cs b/SysML2.NET/Core/AutoGenPoco/Disjoining.cs index 7c83a2d26..e9e9380ea 100644 --- a/SysML2.NET/Core/AutoGenPoco/Disjoining.cs +++ b/SysML2.NET/Core/AutoGenPoco/Disjoining.cs @@ -397,8 +397,8 @@ List Root.Elements.IRelationship.Target /// an owningRelationship, then return the string constructed by appending to the path of it's /// owningRelationship the character / followed by the string representation of its position in the list /// of ownedRelatedElements of the owningRelationship (indexed starting at 1). Otherwise, return the - /// empty string. (Note that this operation is overridden for Relationships - /// to use owningRelatedElement when appropriate.) + /// empty string.(Note that this operation is overridden for Relationships to use owningRelatedElement + /// when appropriate.) /// /// /// The expected diff --git a/SysML2.NET/Core/AutoGenPoco/Documentation.cs b/SysML2.NET/Core/AutoGenPoco/Documentation.cs index 672a3e9d1..ab6a0c3dd 100644 --- a/SysML2.NET/Core/AutoGenPoco/Documentation.cs +++ b/SysML2.NET/Core/AutoGenPoco/Documentation.cs @@ -331,8 +331,8 @@ public Documentation() /// an owningRelationship, then return the string constructed by appending to the path of it's /// owningRelationship the character / followed by the string representation of its position in the list /// of ownedRelatedElements of the owningRelationship (indexed starting at 1). Otherwise, return the - /// empty string. (Note that this operation is overridden for Relationships - /// to use owningRelatedElement when appropriate.) + /// empty string.(Note that this operation is overridden for Relationships to use owningRelatedElement + /// when appropriate.) /// /// /// The expected diff --git a/SysML2.NET/Core/AutoGenPoco/ElementFilterMembership.cs b/SysML2.NET/Core/AutoGenPoco/ElementFilterMembership.cs index a01ff6ba9..f51f32f2c 100644 --- a/SysML2.NET/Core/AutoGenPoco/ElementFilterMembership.cs +++ b/SysML2.NET/Core/AutoGenPoco/ElementFilterMembership.cs @@ -500,8 +500,8 @@ List Root.Elements.IRelationship.Target /// an owningRelationship, then return the string constructed by appending to the path of it's /// owningRelationship the character / followed by the string representation of its position in the list /// of ownedRelatedElements of the owningRelationship (indexed starting at 1). Otherwise, return the - /// empty string. (Note that this operation is overridden for Relationships - /// to use owningRelatedElement when appropriate.) + /// empty string.(Note that this operation is overridden for Relationships to use owningRelatedElement + /// when appropriate.) /// /// /// The expected diff --git a/SysML2.NET/Core/AutoGenPoco/EndFeatureMembership.cs b/SysML2.NET/Core/AutoGenPoco/EndFeatureMembership.cs index 9890f8f08..514017684 100644 --- a/SysML2.NET/Core/AutoGenPoco/EndFeatureMembership.cs +++ b/SysML2.NET/Core/AutoGenPoco/EndFeatureMembership.cs @@ -516,8 +516,8 @@ List Root.Elements.IRelationship.Target /// an owningRelationship, then return the string constructed by appending to the path of it's /// owningRelationship the character / followed by the string representation of its position in the list /// of ownedRelatedElements of the owningRelationship (indexed starting at 1). Otherwise, return the - /// empty string. (Note that this operation is overridden for Relationships - /// to use owningRelatedElement when appropriate.) + /// empty string.(Note that this operation is overridden for Relationships to use owningRelatedElement + /// when appropriate.) /// /// /// The expected diff --git a/SysML2.NET/Core/AutoGenPoco/EnumerationDefinition.cs b/SysML2.NET/Core/AutoGenPoco/EnumerationDefinition.cs index 14a1ddbfb..592f7f4c7 100644 --- a/SysML2.NET/Core/AutoGenPoco/EnumerationDefinition.cs +++ b/SysML2.NET/Core/AutoGenPoco/EnumerationDefinition.cs @@ -273,11 +273,11 @@ public EnumerationDefinition() /// /// Whether all things that meet the classification conditions of this Type must be classified by the - /// Type. (A Type gives conditions that must be met by whatever it - /// classifies, but when isSufficient is false, things may meet those conditions but still not be - /// classified by the Type. For example, a Type Car that is not sufficient could require everything it - /// classifies to have four wheels, but not all four wheeled things would classify as cars. However, if - /// the Type Car were sufficient, it would classify all four-wheeled things.) + /// Type.(A Type gives conditions that must be met by whatever it classifies, but when isSufficient + /// is false, things may meet those conditions but still not be classified by the Type. For example, a + /// Type Car that is not sufficient could require everything it classifies to have four wheels, but not + /// all four wheeled things would classify as cars. However, if the Type Car were sufficient, it would + /// classify all four-wheeled things.) /// [Property(xmiId: "_18_5_3_b9102da_1564072709069_937523_30797", aggregation: AggregationKind.None, lowerValue: 1, upperValue: 1, isOrdered: false, isReadOnly: false, isDerived: false, isDerivedUnion: false, isUnique: true, defaultValue: "false")] [Implements(implementation: "IType.IsSufficient")] @@ -572,7 +572,7 @@ bool Systems.DefinitionAndUsage.IDefinition.IsVariation public List ownedMembership => this.ComputeOwnedMembership(); /// - /// The MetadataUsages that are ownedUsages of this Definition. + /// The MetadataUsages that are ownedMembers of this Definition. /// [Property(xmiId: "_19_0_4_12e503d9_1661488358064_457109_2881", aggregation: AggregationKind.None, lowerValue: 0, upperValue: int.MaxValue, isOrdered: true, isReadOnly: false, isDerived: true, isDerivedUnion: false, isUnique: true, defaultValue: null)] [SubsettedProperty(propertyName: "_19_0_2_12e503d9_1591482567975_649284_3005")] @@ -1040,8 +1040,8 @@ bool Systems.DefinitionAndUsage.IDefinition.IsVariation /// an owningRelationship, then return the string constructed by appending to the path of it's /// owningRelationship the character / followed by the string representation of its position in the list /// of ownedRelatedElements of the owningRelationship (indexed starting at 1). Otherwise, return the - /// empty string. (Note that this operation is overridden for Relationships - /// to use owningRelatedElement when appropriate.) + /// empty string.(Note that this operation is overridden for Relationships to use owningRelatedElement + /// when appropriate.) /// /// /// The expected @@ -1063,13 +1063,12 @@ bool Systems.DefinitionAndUsage.IDefinition.IsVariation /// /// Return a subset of memberships, removing those Memberships whose memberElements are Features and for - /// which either of the following two conditions holds:
    - ///
  1. The memberElement of the Membership is included in redefined Features of another - /// Membership in memberships.
  2. One of the redefined Features of the - /// Membership is a directly redefinedFeature of an ownedFeature of this Type.
  3. - ///
For this purpose, the redefined Features of a Membership - /// whose memberElement is a Feature includes the memberElement and all Features directly or indirectly - /// redefined by the memberElement. + /// which either of the following two conditions holds:
  1. The memberElement of the Membership is + /// included in redefined Features of another Membership in memberships.
  2. One of the redefined + /// Features of the Membership is a directly redefinedFeature of an ownedFeature of this + /// Type.
For this purpose, the redefined Features of a Membership whose memberElement is a + /// Feature includes the memberElement and all Features directly or indirectly redefined by the + /// memberElement. ///
/// /// No documentation provided diff --git a/SysML2.NET/Core/AutoGenPoco/EnumerationUsage.cs b/SysML2.NET/Core/AutoGenPoco/EnumerationUsage.cs index 20442bc6c..b06aa2287 100644 --- a/SysML2.NET/Core/AutoGenPoco/EnumerationUsage.cs +++ b/SysML2.NET/Core/AutoGenPoco/EnumerationUsage.cs @@ -419,11 +419,11 @@ public EnumerationUsage() /// /// Whether all things that meet the classification conditions of this Type must be classified by the - /// Type. (A Type gives conditions that must be met by whatever it - /// classifies, but when isSufficient is false, things may meet those conditions but still not be - /// classified by the Type. For example, a Type Car that is not sufficient could require everything it - /// classifies to have four wheels, but not all four wheeled things would classify as cars. However, if - /// the Type Car were sufficient, it would classify all four-wheeled things.) + /// Type.(A Type gives conditions that must be met by whatever it classifies, but when isSufficient + /// is false, things may meet those conditions but still not be classified by the Type. For example, a + /// Type Car that is not sufficient could require everything it classifies to have four wheels, but not + /// all four wheeled things would classify as cars. However, if the Type Car were sufficient, it would + /// classify all four-wheeled things.) /// [Property(xmiId: "_18_5_3_b9102da_1564072709069_937523_30797", aggregation: AggregationKind.None, lowerValue: 1, upperValue: 1, isOrdered: false, isReadOnly: false, isDerived: false, isDerivedUnion: false, isUnique: true, defaultValue: "false")] [Implements(implementation: "IType.IsSufficient")] @@ -461,9 +461,9 @@ bool Core.Features.IFeature.IsVariable /// Whether this Usage may be time varying (that is, whether it is featured by the snapshots of its /// owningType, rather than being featured by the owningType itself). However, if isConstant is also /// true, then the value of the Usage is nevertheless constant over the entire duration of an instance - /// of its owningType (that is, it has the same value on all snapshots). The - /// property mayTimeVary redefines the KerML property Feature::isVariable, making it derived. The - /// property isConstant is inherited from Feature. + /// of its owningType (that is, it has the same value on all snapshots).The property mayTimeVary + /// redefines the KerML property Feature::isVariable, making it derived. The property isConstant is + /// inherited from Feature. /// [Property(xmiId: "_2022x_2_12e503d9_1737227200362_771035_69", aggregation: AggregationKind.None, lowerValue: 1, upperValue: 1, isOrdered: false, isReadOnly: false, isDerived: true, isDerivedUnion: false, isUnique: true, defaultValue: null)] [RedefinedProperty(propertyName: "_2022x_2_12e503d9_1725998273002_23711_212")] @@ -564,8 +564,8 @@ bool Core.Features.IFeature.IsVariable /// /// The ConnectorAsUsages that are nestedUsages of this Usage. Note that this list includes - /// BindingConnectorAsUsages, SuccessionAsUsages, and FlowConnectionUsages because these are - /// ConnectorAsUsages even though they are not ConnectionUsages. + /// BindingConnectorAsUsages, SuccessionAsUsages, and FlowUsages because these are ConnectorAsUsages + /// even though they are not ConnectionUsages. /// [Property(xmiId: "_19_0_2_12e503d9_1591479754895_422988_1242", aggregation: AggregationKind.None, lowerValue: 0, upperValue: int.MaxValue, isOrdered: true, isReadOnly: false, isDerived: true, isDerivedUnion: false, isUnique: true, defaultValue: null)] [SubsettedProperty(propertyName: "_18_5_3_12e503d9_1565472757327_162097_21259")] @@ -613,7 +613,7 @@ bool Core.Features.IFeature.IsVariable public List nestedItem => this.ComputeNestedItem(); /// - /// The MetadataUsages that are nestedUsages of this of this Usage. + /// The MetadataUsages that are ownedMembers of this of this Usage. /// [Property(xmiId: "_19_0_4_12e503d9_1661488589862_120785_2970", aggregation: AggregationKind.None, lowerValue: 0, upperValue: int.MaxValue, isOrdered: true, isReadOnly: false, isDerived: true, isDerivedUnion: false, isUnique: true, defaultValue: null)] [SubsettedProperty(propertyName: "_19_0_2_12e503d9_1591482421103_284620_2978")] @@ -1193,9 +1193,8 @@ bool Core.Features.IFeature.IsVariable public FeatureDirectionKind? DirectionOfExcluding(IFeature feature, List excluded) => this.ComputeDirectionOfExcludingOperation(feature, excluded); /// - /// If a Feature has no declaredName or declaredShortName , then its - /// effective name is given by the effective name of the Feature returned by the namingFeature() - /// operation, if any. + /// If a Feature has no declaredName or declaredShortName, then its effective name is given by the + /// effective name of the Feature returned by the namingFeature() operation, if any. /// /// /// The expected @@ -1300,11 +1299,10 @@ bool Core.Features.IFeature.IsVariable /// /// A Feature is compatible with an otherType if it either directly or indirectly specializes the - /// otherType or if the otherType is also a Feature and all of the following are true. - ///
  1. Neither this Feature or the otherType have any - /// ownedFeatures.
  2. This Feature directly or indirectly redefines a - /// Feature that is also directly or indirectly redefined by the otherType.
  3. - ///
  4. This Feature can access the otherType.
+ /// otherType or if the otherType is also a Feature and all of the following are true.
  1. Neither + /// this Feature or the otherType have any ownedFeatures.
  2. This Feature directly or indirectly + /// redefines a Feature that is also directly or indirectly redefined by the otherType.
  3. This + /// Feature can access the otherType.
///
/// /// No documentation provided @@ -1462,8 +1460,8 @@ bool Core.Features.IFeature.IsVariable /// an owningRelationship, then return the string constructed by appending to the path of it's /// owningRelationship the character / followed by the string representation of its position in the list /// of ownedRelatedElements of the owningRelationship (indexed starting at 1). Otherwise, return the - /// empty string. (Note that this operation is overridden for Relationships - /// to use owningRelatedElement when appropriate.) + /// empty string.(Note that this operation is overridden for Relationships to use owningRelatedElement + /// when appropriate.) /// /// /// The expected @@ -1517,13 +1515,12 @@ bool Core.Features.IFeature.IsVariable /// /// Return a subset of memberships, removing those Memberships whose memberElements are Features and for - /// which either of the following two conditions holds:
    - ///
  1. The memberElement of the Membership is included in redefined Features of another - /// Membership in memberships.
  2. One of the redefined Features of the - /// Membership is a directly redefinedFeature of an ownedFeature of this Type.
  3. - ///
For this purpose, the redefined Features of a Membership - /// whose memberElement is a Feature includes the memberElement and all Features directly or indirectly - /// redefined by the memberElement. + /// which either of the following two conditions holds:
  1. The memberElement of the Membership is + /// included in redefined Features of another Membership in memberships.
  2. One of the redefined + /// Features of the Membership is a directly redefinedFeature of an ownedFeature of this + /// Type.
For this purpose, the redefined Features of a Membership whose memberElement is a + /// Feature includes the memberElement and all Features directly or indirectly redefined by the + /// memberElement. ///
/// /// No documentation provided @@ -1650,11 +1647,11 @@ bool Core.Features.IFeature.IsVariable /// Return the Features used to determine the types of this Feature (other than this Feature itself). If /// this Feature is not conjugated, then the typingFeatures consist of all subsetted Features, except /// from CrossSubsetting, and the last chainingFeature (if any). If this Feature is conjugated, then the - /// typingFeatures are only its originalType (if the originalType is a Feature). - /// Note. CrossSubsetting is excluded from the determination of the type of a - /// Feature in order to avoid circularity in the construction of implied CrossSubsetting relationships. - /// The validateFeatureCrossFeatureType requires that the crossFeature of a Feature have the same type - /// as the Feature. + /// typingFeatures are only its originalType (if the originalType is a Feature).Note. + /// CrossSubsetting is excluded from the determination of the type of a Feature in order to avoid + /// circularity in the construction of implied CrossSubsetting relationships. The + /// validateFeatureCrossFeatureType requires that the crossFeature of a Feature have the same type as + /// the Feature. /// /// /// The expected collection of diff --git a/SysML2.NET/Core/AutoGenPoco/EventOccurrenceUsage.cs b/SysML2.NET/Core/AutoGenPoco/EventOccurrenceUsage.cs index 96219e74f..153084069 100644 --- a/SysML2.NET/Core/AutoGenPoco/EventOccurrenceUsage.cs +++ b/SysML2.NET/Core/AutoGenPoco/EventOccurrenceUsage.cs @@ -67,9 +67,9 @@ namespace SysML2.NET.Core.POCO.Systems.Occurrences /// An EventOccurrenceUsage is an OccurrenceUsage that represents another OccurrenceUsage occurring as a /// suboccurrence of the containing occurrence of the EventOccurrenceUsage. Unless it is the /// EventOccurrenceUsage itself, the referenced OccurrenceUsage is related to the EventOccurrenceUsage - /// by a ReferenceSubsetting Relationship. If the EventOccurrenceUsage is owned - /// by an OccurrenceDefinition or OccurrenceUsage, then it also subsets the timeEnclosedOccurrences - /// property of the Class Occurrence from the Kernel Semantic Library model Occurrences. + /// by a ReferenceSubsetting Relationship.If the EventOccurrenceUsage is owned by an + /// OccurrenceDefinition or OccurrenceUsage, then it also subsets the timeEnclosedOccurrences property + /// of the Class Occurrence from the Kernel Semantic Library model Occurrences. /// [Class(xmiId: "_19_0_4_12e503d9_1622831611763_442921_132", isAbstract: false, isFinalSpecialization: false, isActive: false)] [GeneratedCode("SysML2.NET", "latest")] @@ -431,11 +431,11 @@ public EventOccurrenceUsage() /// /// Whether all things that meet the classification conditions of this Type must be classified by the - /// Type. (A Type gives conditions that must be met by whatever it - /// classifies, but when isSufficient is false, things may meet those conditions but still not be - /// classified by the Type. For example, a Type Car that is not sufficient could require everything it - /// classifies to have four wheels, but not all four wheeled things would classify as cars. However, if - /// the Type Car were sufficient, it would classify all four-wheeled things.) + /// Type.(A Type gives conditions that must be met by whatever it classifies, but when isSufficient + /// is false, things may meet those conditions but still not be classified by the Type. For example, a + /// Type Car that is not sufficient could require everything it classifies to have four wheels, but not + /// all four wheeled things would classify as cars. However, if the Type Car were sufficient, it would + /// classify all four-wheeled things.) /// [Property(xmiId: "_18_5_3_b9102da_1564072709069_937523_30797", aggregation: AggregationKind.None, lowerValue: 1, upperValue: 1, isOrdered: false, isReadOnly: false, isDerived: false, isDerivedUnion: false, isUnique: true, defaultValue: "false")] [Implements(implementation: "IType.IsSufficient")] @@ -473,9 +473,9 @@ bool Core.Features.IFeature.IsVariable /// Whether this Usage may be time varying (that is, whether it is featured by the snapshots of its /// owningType, rather than being featured by the owningType itself). However, if isConstant is also /// true, then the value of the Usage is nevertheless constant over the entire duration of an instance - /// of its owningType (that is, it has the same value on all snapshots). The - /// property mayTimeVary redefines the KerML property Feature::isVariable, making it derived. The - /// property isConstant is inherited from Feature. + /// of its owningType (that is, it has the same value on all snapshots).The property mayTimeVary + /// redefines the KerML property Feature::isVariable, making it derived. The property isConstant is + /// inherited from Feature. /// [Property(xmiId: "_2022x_2_12e503d9_1737227200362_771035_69", aggregation: AggregationKind.None, lowerValue: 1, upperValue: 1, isOrdered: false, isReadOnly: false, isDerived: true, isDerivedUnion: false, isUnique: true, defaultValue: null)] [RedefinedProperty(propertyName: "_2022x_2_12e503d9_1725998273002_23711_212")] @@ -576,8 +576,8 @@ bool Core.Features.IFeature.IsVariable /// /// The ConnectorAsUsages that are nestedUsages of this Usage. Note that this list includes - /// BindingConnectorAsUsages, SuccessionAsUsages, and FlowConnectionUsages because these are - /// ConnectorAsUsages even though they are not ConnectionUsages. + /// BindingConnectorAsUsages, SuccessionAsUsages, and FlowUsages because these are ConnectorAsUsages + /// even though they are not ConnectionUsages. /// [Property(xmiId: "_19_0_2_12e503d9_1591479754895_422988_1242", aggregation: AggregationKind.None, lowerValue: 0, upperValue: int.MaxValue, isOrdered: true, isReadOnly: false, isDerived: true, isDerivedUnion: false, isUnique: true, defaultValue: null)] [SubsettedProperty(propertyName: "_18_5_3_12e503d9_1565472757327_162097_21259")] @@ -625,7 +625,7 @@ bool Core.Features.IFeature.IsVariable public List nestedItem => this.ComputeNestedItem(); /// - /// The MetadataUsages that are nestedUsages of this of this Usage. + /// The MetadataUsages that are ownedMembers of this of this Usage. /// [Property(xmiId: "_19_0_4_12e503d9_1661488589862_120785_2970", aggregation: AggregationKind.None, lowerValue: 0, upperValue: int.MaxValue, isOrdered: true, isReadOnly: false, isDerived: true, isDerivedUnion: false, isUnique: true, defaultValue: null)] [SubsettedProperty(propertyName: "_19_0_2_12e503d9_1591482421103_284620_2978")] @@ -1224,9 +1224,8 @@ bool Core.Features.IFeature.IsVariable public FeatureDirectionKind? DirectionOfExcluding(IFeature feature, List excluded) => this.ComputeDirectionOfExcludingOperation(feature, excluded); /// - /// If a Feature has no declaredName or declaredShortName , then its - /// effective name is given by the effective name of the Feature returned by the namingFeature() - /// operation, if any. + /// If a Feature has no declaredName or declaredShortName, then its effective name is given by the + /// effective name of the Feature returned by the namingFeature() operation, if any. /// /// /// The expected @@ -1331,11 +1330,10 @@ bool Core.Features.IFeature.IsVariable /// /// A Feature is compatible with an otherType if it either directly or indirectly specializes the - /// otherType or if the otherType is also a Feature and all of the following are true. - ///
  1. Neither this Feature or the otherType have any - /// ownedFeatures.
  2. This Feature directly or indirectly redefines a - /// Feature that is also directly or indirectly redefined by the otherType.
  3. - ///
  4. This Feature can access the otherType.
+ /// otherType or if the otherType is also a Feature and all of the following are true.
  1. Neither + /// this Feature or the otherType have any ownedFeatures.
  2. This Feature directly or indirectly + /// redefines a Feature that is also directly or indirectly redefined by the otherType.
  3. This + /// Feature can access the otherType.
///
/// /// No documentation provided @@ -1493,8 +1491,8 @@ bool Core.Features.IFeature.IsVariable /// an owningRelationship, then return the string constructed by appending to the path of it's /// owningRelationship the character / followed by the string representation of its position in the list /// of ownedRelatedElements of the owningRelationship (indexed starting at 1). Otherwise, return the - /// empty string. (Note that this operation is overridden for Relationships - /// to use owningRelatedElement when appropriate.) + /// empty string.(Note that this operation is overridden for Relationships to use owningRelatedElement + /// when appropriate.) /// /// /// The expected @@ -1548,13 +1546,12 @@ bool Core.Features.IFeature.IsVariable /// /// Return a subset of memberships, removing those Memberships whose memberElements are Features and for - /// which either of the following two conditions holds:
    - ///
  1. The memberElement of the Membership is included in redefined Features of another - /// Membership in memberships.
  2. One of the redefined Features of the - /// Membership is a directly redefinedFeature of an ownedFeature of this Type.
  3. - ///
For this purpose, the redefined Features of a Membership - /// whose memberElement is a Feature includes the memberElement and all Features directly or indirectly - /// redefined by the memberElement. + /// which either of the following two conditions holds:
  1. The memberElement of the Membership is + /// included in redefined Features of another Membership in memberships.
  2. One of the redefined + /// Features of the Membership is a directly redefinedFeature of an ownedFeature of this + /// Type.
For this purpose, the redefined Features of a Membership whose memberElement is a + /// Feature includes the memberElement and all Features directly or indirectly redefined by the + /// memberElement. ///
/// /// No documentation provided @@ -1681,11 +1678,11 @@ bool Core.Features.IFeature.IsVariable /// Return the Features used to determine the types of this Feature (other than this Feature itself). If /// this Feature is not conjugated, then the typingFeatures consist of all subsetted Features, except /// from CrossSubsetting, and the last chainingFeature (if any). If this Feature is conjugated, then the - /// typingFeatures are only its originalType (if the originalType is a Feature). - /// Note. CrossSubsetting is excluded from the determination of the type of a - /// Feature in order to avoid circularity in the construction of implied CrossSubsetting relationships. - /// The validateFeatureCrossFeatureType requires that the crossFeature of a Feature have the same type - /// as the Feature. + /// typingFeatures are only its originalType (if the originalType is a Feature).Note. + /// CrossSubsetting is excluded from the determination of the type of a Feature in order to avoid + /// circularity in the construction of implied CrossSubsetting relationships. The + /// validateFeatureCrossFeatureType requires that the crossFeature of a Feature have the same type as + /// the Feature. /// /// /// The expected collection of diff --git a/SysML2.NET/Core/AutoGenPoco/ExhibitStateUsage.cs b/SysML2.NET/Core/AutoGenPoco/ExhibitStateUsage.cs index a3e1be755..a4d333d6f 100644 --- a/SysML2.NET/Core/AutoGenPoco/ExhibitStateUsage.cs +++ b/SysML2.NET/Core/AutoGenPoco/ExhibitStateUsage.cs @@ -498,11 +498,11 @@ public ExhibitStateUsage() /// /// Whether all things that meet the classification conditions of this Type must be classified by the - /// Type. (A Type gives conditions that must be met by whatever it - /// classifies, but when isSufficient is false, things may meet those conditions but still not be - /// classified by the Type. For example, a Type Car that is not sufficient could require everything it - /// classifies to have four wheels, but not all four wheeled things would classify as cars. However, if - /// the Type Car were sufficient, it would classify all four-wheeled things.) + /// Type.(A Type gives conditions that must be met by whatever it classifies, but when isSufficient + /// is false, things may meet those conditions but still not be classified by the Type. For example, a + /// Type Car that is not sufficient could require everything it classifies to have four wheels, but not + /// all four wheeled things would classify as cars. However, if the Type Car were sufficient, it would + /// classify all four-wheeled things.) /// [Property(xmiId: "_18_5_3_b9102da_1564072709069_937523_30797", aggregation: AggregationKind.None, lowerValue: 1, upperValue: 1, isOrdered: false, isReadOnly: false, isDerived: false, isDerivedUnion: false, isUnique: true, defaultValue: "false")] [Implements(implementation: "IType.IsSufficient")] @@ -540,9 +540,9 @@ bool Core.Features.IFeature.IsVariable /// Whether this Usage may be time varying (that is, whether it is featured by the snapshots of its /// owningType, rather than being featured by the owningType itself). However, if isConstant is also /// true, then the value of the Usage is nevertheless constant over the entire duration of an instance - /// of its owningType (that is, it has the same value on all snapshots). The - /// property mayTimeVary redefines the KerML property Feature::isVariable, making it derived. The - /// property isConstant is inherited from Feature. + /// of its owningType (that is, it has the same value on all snapshots).The property mayTimeVary + /// redefines the KerML property Feature::isVariable, making it derived. The property isConstant is + /// inherited from Feature. /// [Property(xmiId: "_2022x_2_12e503d9_1737227200362_771035_69", aggregation: AggregationKind.None, lowerValue: 1, upperValue: 1, isOrdered: false, isReadOnly: false, isDerived: true, isDerivedUnion: false, isUnique: true, defaultValue: null)] [RedefinedProperty(propertyName: "_2022x_2_12e503d9_1725998273002_23711_212")] @@ -643,8 +643,8 @@ bool Core.Features.IFeature.IsVariable /// /// The ConnectorAsUsages that are nestedUsages of this Usage. Note that this list includes - /// BindingConnectorAsUsages, SuccessionAsUsages, and FlowConnectionUsages because these are - /// ConnectorAsUsages even though they are not ConnectionUsages. + /// BindingConnectorAsUsages, SuccessionAsUsages, and FlowUsages because these are ConnectorAsUsages + /// even though they are not ConnectionUsages. /// [Property(xmiId: "_19_0_2_12e503d9_1591479754895_422988_1242", aggregation: AggregationKind.None, lowerValue: 0, upperValue: int.MaxValue, isOrdered: true, isReadOnly: false, isDerived: true, isDerivedUnion: false, isUnique: true, defaultValue: null)] [SubsettedProperty(propertyName: "_18_5_3_12e503d9_1565472757327_162097_21259")] @@ -692,7 +692,7 @@ bool Core.Features.IFeature.IsVariable public List nestedItem => this.ComputeNestedItem(); /// - /// The MetadataUsages that are nestedUsages of this of this Usage. + /// The MetadataUsages that are ownedMembers of this of this Usage. /// [Property(xmiId: "_19_0_4_12e503d9_1661488589862_120785_2970", aggregation: AggregationKind.None, lowerValue: 0, upperValue: int.MaxValue, isOrdered: true, isReadOnly: false, isDerived: true, isDerivedUnion: false, isUnique: true, defaultValue: null)] [SubsettedProperty(propertyName: "_19_0_2_12e503d9_1591482421103_284620_2978")] @@ -1332,9 +1332,8 @@ bool Core.Features.IFeature.IsVariable public FeatureDirectionKind? DirectionOfExcluding(IFeature feature, List excluded) => this.ComputeDirectionOfExcludingOperation(feature, excluded); /// - /// If a Feature has no declaredName or declaredShortName , then its - /// effective name is given by the effective name of the Feature returned by the namingFeature() - /// operation, if any. + /// If a Feature has no declaredName or declaredShortName, then its effective name is given by the + /// effective name of the Feature returned by the namingFeature() operation, if any. /// /// /// The expected @@ -1459,11 +1458,10 @@ bool Core.Features.IFeature.IsVariable /// /// A Feature is compatible with an otherType if it either directly or indirectly specializes the - /// otherType or if the otherType is also a Feature and all of the following are true. - ///
  1. Neither this Feature or the otherType have any - /// ownedFeatures.
  2. This Feature directly or indirectly redefines a - /// Feature that is also directly or indirectly redefined by the otherType.
  3. - ///
  4. This Feature can access the otherType.
+ /// otherType or if the otherType is also a Feature and all of the following are true.
  1. Neither + /// this Feature or the otherType have any ownedFeatures.
  2. This Feature directly or indirectly + /// redefines a Feature that is also directly or indirectly redefined by the otherType.
  3. This + /// Feature can access the otherType.
///
/// /// No documentation provided @@ -1655,8 +1653,8 @@ bool Core.Features.IFeature.IsVariable /// an owningRelationship, then return the string constructed by appending to the path of it's /// owningRelationship the character / followed by the string representation of its position in the list /// of ownedRelatedElements of the owningRelationship (indexed starting at 1). Otherwise, return the - /// empty string. (Note that this operation is overridden for Relationships - /// to use owningRelatedElement when appropriate.) + /// empty string.(Note that this operation is overridden for Relationships to use owningRelatedElement + /// when appropriate.) /// /// /// The expected @@ -1710,13 +1708,12 @@ bool Core.Features.IFeature.IsVariable /// /// Return a subset of memberships, removing those Memberships whose memberElements are Features and for - /// which either of the following two conditions holds:
    - ///
  1. The memberElement of the Membership is included in redefined Features of another - /// Membership in memberships.
  2. One of the redefined Features of the - /// Membership is a directly redefinedFeature of an ownedFeature of this Type.
  3. - ///
For this purpose, the redefined Features of a Membership - /// whose memberElement is a Feature includes the memberElement and all Features directly or indirectly - /// redefined by the memberElement. + /// which either of the following two conditions holds:
  1. The memberElement of the Membership is + /// included in redefined Features of another Membership in memberships.
  2. One of the redefined + /// Features of the Membership is a directly redefinedFeature of an ownedFeature of this + /// Type.
For this purpose, the redefined Features of a Membership whose memberElement is a + /// Feature includes the memberElement and all Features directly or indirectly redefined by the + /// memberElement. ///
/// /// No documentation provided @@ -1843,11 +1840,11 @@ bool Core.Features.IFeature.IsVariable /// Return the Features used to determine the types of this Feature (other than this Feature itself). If /// this Feature is not conjugated, then the typingFeatures consist of all subsetted Features, except /// from CrossSubsetting, and the last chainingFeature (if any). If this Feature is conjugated, then the - /// typingFeatures are only its originalType (if the originalType is a Feature). - /// Note. CrossSubsetting is excluded from the determination of the type of a - /// Feature in order to avoid circularity in the construction of implied CrossSubsetting relationships. - /// The validateFeatureCrossFeatureType requires that the crossFeature of a Feature have the same type - /// as the Feature. + /// typingFeatures are only its originalType (if the originalType is a Feature).Note. + /// CrossSubsetting is excluded from the determination of the type of a Feature in order to avoid + /// circularity in the construction of implied CrossSubsetting relationships. The + /// validateFeatureCrossFeatureType requires that the crossFeature of a Feature have the same type as + /// the Feature. /// /// /// The expected collection of diff --git a/SysML2.NET/Core/AutoGenPoco/Expression.cs b/SysML2.NET/Core/AutoGenPoco/Expression.cs index d2bcf72a5..e87772f9f 100644 --- a/SysML2.NET/Core/AutoGenPoco/Expression.cs +++ b/SysML2.NET/Core/AutoGenPoco/Expression.cs @@ -373,11 +373,11 @@ public Expression() /// /// Whether all things that meet the classification conditions of this Type must be classified by the - /// Type. (A Type gives conditions that must be met by whatever it - /// classifies, but when isSufficient is false, things may meet those conditions but still not be - /// classified by the Type. For example, a Type Car that is not sufficient could require everything it - /// classifies to have four wheels, but not all four wheeled things would classify as cars. However, if - /// the Type Car were sufficient, it would classify all four-wheeled things.) + /// Type.(A Type gives conditions that must be met by whatever it classifies, but when isSufficient + /// is false, things may meet those conditions but still not be classified by the Type. For example, a + /// Type Car that is not sufficient could require everything it classifies to have four wheels, but not + /// all four wheeled things would classify as cars. However, if the Type Car were sufficient, it would + /// classify all four-wheeled things.) /// [Property(xmiId: "_18_5_3_b9102da_1564072709069_937523_30797", aggregation: AggregationKind.None, lowerValue: 1, upperValue: 1, isOrdered: false, isReadOnly: false, isDerived: false, isDerivedUnion: false, isUnique: true, defaultValue: "false")] [Implements(implementation: "IType.IsSufficient")] @@ -892,9 +892,8 @@ public Expression() public FeatureDirectionKind? DirectionOfExcluding(IFeature feature, List excluded) => this.ComputeDirectionOfExcludingOperation(feature, excluded); /// - /// If a Feature has no declaredName or declaredShortName , then its - /// effective name is given by the effective name of the Feature returned by the namingFeature() - /// operation, if any. + /// If a Feature has no declaredName or declaredShortName, then its effective name is given by the + /// effective name of the Feature returned by the namingFeature() operation, if any. /// /// /// The expected @@ -1013,11 +1012,10 @@ public Expression() /// /// A Feature is compatible with an otherType if it either directly or indirectly specializes the - /// otherType or if the otherType is also a Feature and all of the following are true. - ///
  1. Neither this Feature or the otherType have any - /// ownedFeatures.
  2. This Feature directly or indirectly redefines a - /// Feature that is also directly or indirectly redefined by the otherType.
  3. - ///
  4. This Feature can access the otherType.
+ /// otherType or if the otherType is also a Feature and all of the following are true.
  1. Neither + /// this Feature or the otherType have any ownedFeatures.
  2. This Feature directly or indirectly + /// redefines a Feature that is also directly or indirectly redefined by the otherType.
  3. This + /// Feature can access the otherType.
///
/// /// No documentation provided @@ -1106,11 +1104,11 @@ public Expression() /// Return whether this Expression is model-level evaluable. The visited parameter is used to track /// possible circular Feature references made from FeatureReferenceExpressions (see the redefinition of /// this operation for FeatureReferenceExpression). Such circular references are not allowed in - /// model-level evaluable expressions. An Expression that is not otherwise - /// specialized is model-level evaluable if it has no (non-implied) ownedSpecializations and all its - /// ownedFeatures are either in parameters, the result parameter or a result Expression owned via a - /// ResultExpressionMembership. The parameters must not have any ownedFeatures or a FeatureValue, and - /// the result Expression must be model-level evaluable. + /// model-level evaluable expressions.An Expression that is not otherwise specialized is model-level + /// evaluable if it has no (non-implied) ownedSpecializations and all its ownedFeatures are either in + /// parameters, the result parameter or a result Expression owned via a ResultExpressionMembership. The + /// parameters must not have any ownedFeatures or a FeatureValue, and the result Expression must be + /// model-level evaluable. /// /// /// No documentation provided @@ -1184,8 +1182,8 @@ public Expression() /// an owningRelationship, then return the string constructed by appending to the path of it's /// owningRelationship the character / followed by the string representation of its position in the list /// of ownedRelatedElements of the owningRelationship (indexed starting at 1). Otherwise, return the - /// empty string. (Note that this operation is overridden for Relationships - /// to use owningRelatedElement when appropriate.) + /// empty string.(Note that this operation is overridden for Relationships to use owningRelatedElement + /// when appropriate.) /// /// /// The expected @@ -1230,13 +1228,12 @@ public Expression() /// /// Return a subset of memberships, removing those Memberships whose memberElements are Features and for - /// which either of the following two conditions holds:
    - ///
  1. The memberElement of the Membership is included in redefined Features of another - /// Membership in memberships.
  2. One of the redefined Features of the - /// Membership is a directly redefinedFeature of an ownedFeature of this Type.
  3. - ///
For this purpose, the redefined Features of a Membership - /// whose memberElement is a Feature includes the memberElement and all Features directly or indirectly - /// redefined by the memberElement. + /// which either of the following two conditions holds:
  1. The memberElement of the Membership is + /// included in redefined Features of another Membership in memberships.
  2. One of the redefined + /// Features of the Membership is a directly redefinedFeature of an ownedFeature of this + /// Type.
For this purpose, the redefined Features of a Membership whose memberElement is a + /// Feature includes the memberElement and all Features directly or indirectly redefined by the + /// memberElement. ///
/// /// No documentation provided @@ -1363,11 +1360,11 @@ public Expression() /// Return the Features used to determine the types of this Feature (other than this Feature itself). If /// this Feature is not conjugated, then the typingFeatures consist of all subsetted Features, except /// from CrossSubsetting, and the last chainingFeature (if any). If this Feature is conjugated, then the - /// typingFeatures are only its originalType (if the originalType is a Feature). - /// Note. CrossSubsetting is excluded from the determination of the type of a - /// Feature in order to avoid circularity in the construction of implied CrossSubsetting relationships. - /// The validateFeatureCrossFeatureType requires that the crossFeature of a Feature have the same type - /// as the Feature. + /// typingFeatures are only its originalType (if the originalType is a Feature).Note. + /// CrossSubsetting is excluded from the determination of the type of a Feature in order to avoid + /// circularity in the construction of implied CrossSubsetting relationships. The + /// validateFeatureCrossFeatureType requires that the crossFeature of a Feature have the same type as + /// the Feature. /// /// /// The expected collection of diff --git a/SysML2.NET/Core/AutoGenPoco/Feature.cs b/SysML2.NET/Core/AutoGenPoco/Feature.cs index 70eec94b2..dd33daeaf 100644 --- a/SysML2.NET/Core/AutoGenPoco/Feature.cs +++ b/SysML2.NET/Core/AutoGenPoco/Feature.cs @@ -42,19 +42,18 @@ namespace SysML2.NET.Core.POCO.Core.Features /// A Feature is a Type that classifies relations between multiple things (in the universe). The domain /// of the relation is the intersection of the featuringTypes of the Feature. (The domain of a Feature /// with no featuringTyps is implicitly the most general Type Base::Anything from the Kernel Semantic - /// Library.) The co-domain of the relation is the intersection of the types of the Feature. - /// In the simplest cases, the featuringTypes and types are Classifiers and the Feature - /// relates two things, one from the domain and one from the range. Examples include cars paired with - /// wheels, people paired with other people, and cars paired with numbers representing the car length. - /// Since Features are Types, their featuringTypes and types can be Features. In - /// this case, the Feature effectively classifies relations between relations, which can be interpreted - /// as the sequence of things related by the domain Feature concatenated with the sequence of things - /// related by the co-domain Feature. The values of a Feature for a given - /// instance of its domain are all the instances of its co-domain that are related to that domain - /// instance by the Feature. The values of a Feature with chainingFeatures are the same as values of the - /// last Feature in the chain, which can be found by starting with values of the first Feature, then - /// using those values as domain instances to obtain valus of the second Feature, and so on, to values - /// of the last Feature. + /// Library.) The co-domain of the relation is the intersection of the types of the Feature.In the + /// simplest cases, the featuringTypes and types are Classifiers and the Feature relates two things, one + /// from the domain and one from the range. Examples include cars paired with wheels, people paired with + /// other people, and cars paired with numbers representing the car length.Since Features are Types, + /// their featuringTypes and types can be Features. In this case, the Feature effectively classifies + /// relations between relations, which can be interpreted as the sequence of things related by the + /// domain Feature concatenated with the sequence of things related by the co-domain Feature.The values + /// of a Feature for a given instance of its domain are all the instances of its co-domain that are + /// related to that domain instance by the Feature. The values of a Feature with chainingFeatures are + /// the same as values of the last Feature in the chain, which can be found by starting with values of + /// the first Feature, then using those values as domain instances to obtain valus of the second + /// Feature, and so on, to values of the last Feature. /// [Class(xmiId: "_18_5_3_12e503d9_1533160651684_893483_42160", isAbstract: false, isFinalSpecialization: false, isActive: false)] [GeneratedCode("SysML2.NET", "latest")] @@ -356,11 +355,11 @@ public Feature() /// /// Whether all things that meet the classification conditions of this Type must be classified by the - /// Type. (A Type gives conditions that must be met by whatever it - /// classifies, but when isSufficient is false, things may meet those conditions but still not be - /// classified by the Type. For example, a Type Car that is not sufficient could require everything it - /// classifies to have four wheels, but not all four wheeled things would classify as cars. However, if - /// the Type Car were sufficient, it would classify all four-wheeled things.) + /// Type.(A Type gives conditions that must be met by whatever it classifies, but when isSufficient + /// is false, things may meet those conditions but still not be classified by the Type. For example, a + /// Type Car that is not sufficient could require everything it classifies to have four wheels, but not + /// all four wheeled things would classify as cars. However, if the Type Car were sufficient, it would + /// classify all four-wheeled things.) /// [Property(xmiId: "_18_5_3_b9102da_1564072709069_937523_30797", aggregation: AggregationKind.None, lowerValue: 1, upperValue: 1, isOrdered: false, isReadOnly: false, isDerived: false, isDerivedUnion: false, isUnique: true, defaultValue: "false")] [Implements(implementation: "IType.IsSufficient")] @@ -843,9 +842,8 @@ public Feature() public FeatureDirectionKind? DirectionOfExcluding(IFeature feature, List excluded) => this.ComputeDirectionOfExcludingOperation(feature, excluded); /// - /// If a Feature has no declaredName or declaredShortName , then its - /// effective name is given by the effective name of the Feature returned by the namingFeature() - /// operation, if any. + /// If a Feature has no declaredName or declaredShortName, then its effective name is given by the + /// effective name of the Feature returned by the namingFeature() operation, if any. /// /// /// The expected @@ -950,11 +948,10 @@ public Feature() /// /// A Feature is compatible with an otherType if it either directly or indirectly specializes the - /// otherType or if the otherType is also a Feature and all of the following are true. - ///
  1. Neither this Feature or the otherType have any - /// ownedFeatures.
  2. This Feature directly or indirectly redefines a - /// Feature that is also directly or indirectly redefined by the otherType.
  3. - ///
  4. This Feature can access the otherType.
+ /// otherType or if the otherType is also a Feature and all of the following are true.
  1. Neither + /// this Feature or the otherType have any ownedFeatures.
  2. This Feature directly or indirectly + /// redefines a Feature that is also directly or indirectly redefined by the otherType.
  3. This + /// Feature can access the otherType.
///
/// /// No documentation provided @@ -1103,8 +1100,8 @@ public Feature() /// an owningRelationship, then return the string constructed by appending to the path of it's /// owningRelationship the character / followed by the string representation of its position in the list /// of ownedRelatedElements of the owningRelationship (indexed starting at 1). Otherwise, return the - /// empty string. (Note that this operation is overridden for Relationships - /// to use owningRelatedElement when appropriate.) + /// empty string.(Note that this operation is overridden for Relationships to use owningRelatedElement + /// when appropriate.) /// /// /// The expected @@ -1149,13 +1146,12 @@ public Feature() /// /// Return a subset of memberships, removing those Memberships whose memberElements are Features and for - /// which either of the following two conditions holds:
    - ///
  1. The memberElement of the Membership is included in redefined Features of another - /// Membership in memberships.
  2. One of the redefined Features of the - /// Membership is a directly redefinedFeature of an ownedFeature of this Type.
  3. - ///
For this purpose, the redefined Features of a Membership - /// whose memberElement is a Feature includes the memberElement and all Features directly or indirectly - /// redefined by the memberElement. + /// which either of the following two conditions holds:
  1. The memberElement of the Membership is + /// included in redefined Features of another Membership in memberships.
  2. One of the redefined + /// Features of the Membership is a directly redefinedFeature of an ownedFeature of this + /// Type.
For this purpose, the redefined Features of a Membership whose memberElement is a + /// Feature includes the memberElement and all Features directly or indirectly redefined by the + /// memberElement. ///
/// /// No documentation provided @@ -1282,11 +1278,11 @@ public Feature() /// Return the Features used to determine the types of this Feature (other than this Feature itself). If /// this Feature is not conjugated, then the typingFeatures consist of all subsetted Features, except /// from CrossSubsetting, and the last chainingFeature (if any). If this Feature is conjugated, then the - /// typingFeatures are only its originalType (if the originalType is a Feature). - /// Note. CrossSubsetting is excluded from the determination of the type of a - /// Feature in order to avoid circularity in the construction of implied CrossSubsetting relationships. - /// The validateFeatureCrossFeatureType requires that the crossFeature of a Feature have the same type - /// as the Feature. + /// typingFeatures are only its originalType (if the originalType is a Feature).Note. + /// CrossSubsetting is excluded from the determination of the type of a Feature in order to avoid + /// circularity in the construction of implied CrossSubsetting relationships. The + /// validateFeatureCrossFeatureType requires that the crossFeature of a Feature have the same type as + /// the Feature. /// /// /// The expected collection of diff --git a/SysML2.NET/Core/AutoGenPoco/FeatureChainExpression.cs b/SysML2.NET/Core/AutoGenPoco/FeatureChainExpression.cs index 173745030..4e76d3b88 100644 --- a/SysML2.NET/Core/AutoGenPoco/FeatureChainExpression.cs +++ b/SysML2.NET/Core/AutoGenPoco/FeatureChainExpression.cs @@ -78,8 +78,8 @@ public FeatureChainExpression() /// /// The Expressions whose results are bound to features of the instantiatedType. The arguments are /// ordered consistent with the order of the features, though they may not be one-to-one with all the - /// features. Note. The derivation of argument is given in - /// the concrete subclasses of InstantiationExpression. + /// features.Note. The derivation of argument is given in the concrete subclasses of + /// InstantiationExpression. /// [Property(xmiId: "_2022x_2_12e503d9_1739134437590_328753_108", aggregation: AggregationKind.None, lowerValue: 0, upperValue: int.MaxValue, isOrdered: true, isReadOnly: false, isDerived: true, isDerivedUnion: false, isUnique: true, defaultValue: null)] [Implements(implementation: "IInstantiationExpression.Argument")] @@ -390,11 +390,11 @@ public FeatureChainExpression() /// /// Whether all things that meet the classification conditions of this Type must be classified by the - /// Type. (A Type gives conditions that must be met by whatever it - /// classifies, but when isSufficient is false, things may meet those conditions but still not be - /// classified by the Type. For example, a Type Car that is not sufficient could require everything it - /// classifies to have four wheels, but not all four wheeled things would classify as cars. However, if - /// the Type Car were sufficient, it would classify all four-wheeled things.) + /// Type.(A Type gives conditions that must be met by whatever it classifies, but when isSufficient + /// is false, things may meet those conditions but still not be classified by the Type. For example, a + /// Type Car that is not sufficient could require everything it classifies to have four wheels, but not + /// all four wheeled things would classify as cars. However, if the Type Car were sufficient, it would + /// classify all four-wheeled things.) /// [Property(xmiId: "_18_5_3_b9102da_1564072709069_937523_30797", aggregation: AggregationKind.None, lowerValue: 1, upperValue: 1, isOrdered: false, isReadOnly: false, isDerived: false, isDerivedUnion: false, isUnique: true, defaultValue: "false")] [Implements(implementation: "IType.IsSufficient")] @@ -941,9 +941,8 @@ string IOperatorExpression.Operator public FeatureDirectionKind? DirectionOfExcluding(IFeature feature, List excluded) => this.ComputeDirectionOfExcludingOperation(feature, excluded); /// - /// If a Feature has no declaredName or declaredShortName , then its - /// effective name is given by the effective name of the Feature returned by the namingFeature() - /// operation, if any. + /// If a Feature has no declaredName or declaredShortName, then its effective name is given by the + /// effective name of the Feature returned by the namingFeature() operation, if any. /// /// /// The expected @@ -1077,8 +1076,7 @@ string IOperatorExpression.Operator /// /// Return the Type to act as the instantiatedType for this InstantiationExpression. By default, this is /// the memberElement of the first ownedMembership that is not a FeatureMembership, which must be a - /// Type. Note. This operation is overridden in the subclass - /// OperatorExpression. + /// Type.Note. This operation is overridden in the subclass OperatorExpression. /// /// /// The expected @@ -1095,11 +1093,10 @@ string IOperatorExpression.Operator /// /// A Feature is compatible with an otherType if it either directly or indirectly specializes the - /// otherType or if the otherType is also a Feature and all of the following are true. - ///
  1. Neither this Feature or the otherType have any - /// ownedFeatures.
  2. This Feature directly or indirectly redefines a - /// Feature that is also directly or indirectly redefined by the otherType.
  3. - ///
  4. This Feature can access the otherType.
+ /// otherType or if the otherType is also a Feature and all of the following are true.
  1. Neither + /// this Feature or the otherType have any ownedFeatures.
  2. This Feature directly or indirectly + /// redefines a Feature that is also directly or indirectly redefined by the otherType.
  3. This + /// Feature can access the otherType.
///
/// /// No documentation provided @@ -1200,11 +1197,11 @@ string IOperatorExpression.Operator /// Return whether this Expression is model-level evaluable. The visited parameter is used to track /// possible circular Feature references made from FeatureReferenceExpressions (see the redefinition of /// this operation for FeatureReferenceExpression). Such circular references are not allowed in - /// model-level evaluable expressions. An Expression that is not otherwise - /// specialized is model-level evaluable if it has no (non-implied) ownedSpecializations and all its - /// ownedFeatures are either in parameters, the result parameter or a result Expression owned via a - /// ResultExpressionMembership. The parameters must not have any ownedFeatures or a FeatureValue, and - /// the result Expression must be model-level evaluable. + /// model-level evaluable expressions.An Expression that is not otherwise specialized is model-level + /// evaluable if it has no (non-implied) ownedSpecializations and all its ownedFeatures are either in + /// parameters, the result parameter or a result Expression owned via a ResultExpressionMembership. The + /// parameters must not have any ownedFeatures or a FeatureValue, and the result Expression must be + /// model-level evaluable. /// /// /// No documentation provided @@ -1278,8 +1275,8 @@ string IOperatorExpression.Operator /// an owningRelationship, then return the string constructed by appending to the path of it's /// owningRelationship the character / followed by the string representation of its position in the list /// of ownedRelatedElements of the owningRelationship (indexed starting at 1). Otherwise, return the - /// empty string. (Note that this operation is overridden for Relationships - /// to use owningRelatedElement when appropriate.) + /// empty string.(Note that this operation is overridden for Relationships to use owningRelatedElement + /// when appropriate.) /// /// /// The expected @@ -1324,13 +1321,12 @@ string IOperatorExpression.Operator /// /// Return a subset of memberships, removing those Memberships whose memberElements are Features and for - /// which either of the following two conditions holds:
    - ///
  1. The memberElement of the Membership is included in redefined Features of another - /// Membership in memberships.
  2. One of the redefined Features of the - /// Membership is a directly redefinedFeature of an ownedFeature of this Type.
  3. - ///
For this purpose, the redefined Features of a Membership - /// whose memberElement is a Feature includes the memberElement and all Features directly or indirectly - /// redefined by the memberElement. + /// which either of the following two conditions holds:
  1. The memberElement of the Membership is + /// included in redefined Features of another Membership in memberships.
  2. One of the redefined + /// Features of the Membership is a directly redefinedFeature of an ownedFeature of this + /// Type.
For this purpose, the redefined Features of a Membership whose memberElement is a + /// Feature includes the memberElement and all Features directly or indirectly redefined by the + /// memberElement. ///
/// /// No documentation provided @@ -1466,11 +1462,11 @@ string IOperatorExpression.Operator /// Return the Features used to determine the types of this Feature (other than this Feature itself). If /// this Feature is not conjugated, then the typingFeatures consist of all subsetted Features, except /// from CrossSubsetting, and the last chainingFeature (if any). If this Feature is conjugated, then the - /// typingFeatures are only its originalType (if the originalType is a Feature). - /// Note. CrossSubsetting is excluded from the determination of the type of a - /// Feature in order to avoid circularity in the construction of implied CrossSubsetting relationships. - /// The validateFeatureCrossFeatureType requires that the crossFeature of a Feature have the same type - /// as the Feature. + /// typingFeatures are only its originalType (if the originalType is a Feature).Note. + /// CrossSubsetting is excluded from the determination of the type of a Feature in order to avoid + /// circularity in the construction of implied CrossSubsetting relationships. The + /// validateFeatureCrossFeatureType requires that the crossFeature of a Feature have the same type as + /// the Feature. /// /// /// The expected collection of diff --git a/SysML2.NET/Core/AutoGenPoco/FeatureChaining.cs b/SysML2.NET/Core/AutoGenPoco/FeatureChaining.cs index 5b937516c..ee06a9083 100644 --- a/SysML2.NET/Core/AutoGenPoco/FeatureChaining.cs +++ b/SysML2.NET/Core/AutoGenPoco/FeatureChaining.cs @@ -383,8 +383,8 @@ List Root.Elements.IRelationship.Target /// an owningRelationship, then return the string constructed by appending to the path of it's /// owningRelationship the character / followed by the string representation of its position in the list /// of ownedRelatedElements of the owningRelationship (indexed starting at 1). Otherwise, return the - /// empty string. (Note that this operation is overridden for Relationships - /// to use owningRelatedElement when appropriate.) + /// empty string.(Note that this operation is overridden for Relationships to use owningRelatedElement + /// when appropriate.) /// /// /// The expected diff --git a/SysML2.NET/Core/AutoGenPoco/FeatureInverting.cs b/SysML2.NET/Core/AutoGenPoco/FeatureInverting.cs index 72f5f0d21..915ee0b01 100644 --- a/SysML2.NET/Core/AutoGenPoco/FeatureInverting.cs +++ b/SysML2.NET/Core/AutoGenPoco/FeatureInverting.cs @@ -398,8 +398,8 @@ List Root.Elements.IRelationship.Target /// an owningRelationship, then return the string constructed by appending to the path of it's /// owningRelationship the character / followed by the string representation of its position in the list /// of ownedRelatedElements of the owningRelationship (indexed starting at 1). Otherwise, return the - /// empty string. (Note that this operation is overridden for Relationships - /// to use owningRelatedElement when appropriate.) + /// empty string.(Note that this operation is overridden for Relationships to use owningRelatedElement + /// when appropriate.) /// /// /// The expected diff --git a/SysML2.NET/Core/AutoGenPoco/FeatureMembership.cs b/SysML2.NET/Core/AutoGenPoco/FeatureMembership.cs index 762cf6ec0..bf8541edc 100644 --- a/SysML2.NET/Core/AutoGenPoco/FeatureMembership.cs +++ b/SysML2.NET/Core/AutoGenPoco/FeatureMembership.cs @@ -511,8 +511,8 @@ List Root.Elements.IRelationship.Target /// an owningRelationship, then return the string constructed by appending to the path of it's /// owningRelationship the character / followed by the string representation of its position in the list /// of ownedRelatedElements of the owningRelationship (indexed starting at 1). Otherwise, return the - /// empty string. (Note that this operation is overridden for Relationships - /// to use owningRelatedElement when appropriate.) + /// empty string.(Note that this operation is overridden for Relationships to use owningRelatedElement + /// when appropriate.) /// /// /// The expected diff --git a/SysML2.NET/Core/AutoGenPoco/FeatureReferenceExpression.cs b/SysML2.NET/Core/AutoGenPoco/FeatureReferenceExpression.cs index d76f68284..588cf7d10 100644 --- a/SysML2.NET/Core/AutoGenPoco/FeatureReferenceExpression.cs +++ b/SysML2.NET/Core/AutoGenPoco/FeatureReferenceExpression.cs @@ -370,11 +370,11 @@ public FeatureReferenceExpression() /// /// Whether all things that meet the classification conditions of this Type must be classified by the - /// Type. (A Type gives conditions that must be met by whatever it - /// classifies, but when isSufficient is false, things may meet those conditions but still not be - /// classified by the Type. For example, a Type Car that is not sufficient could require everything it - /// classifies to have four wheels, but not all four wheeled things would classify as cars. However, if - /// the Type Car were sufficient, it would classify all four-wheeled things.) + /// Type.(A Type gives conditions that must be met by whatever it classifies, but when isSufficient + /// is false, things may meet those conditions but still not be classified by the Type. For example, a + /// Type Car that is not sufficient could require everything it classifies to have four wheels, but not + /// all four wheeled things would classify as cars. However, if the Type Car were sufficient, it would + /// classify all four-wheeled things.) /// [Property(xmiId: "_18_5_3_b9102da_1564072709069_937523_30797", aggregation: AggregationKind.None, lowerValue: 1, upperValue: 1, isOrdered: false, isReadOnly: false, isDerived: false, isDerivedUnion: false, isUnique: true, defaultValue: "false")] [Implements(implementation: "IType.IsSufficient")] @@ -898,9 +898,8 @@ public FeatureReferenceExpression() public FeatureDirectionKind? DirectionOfExcluding(IFeature feature, List excluded) => this.ComputeDirectionOfExcludingOperation(feature, excluded); /// - /// If a Feature has no declaredName or declaredShortName , then its - /// effective name is given by the effective name of the Feature returned by the namingFeature() - /// operation, if any. + /// If a Feature has no declaredName or declaredShortName, then its effective name is given by the + /// effective name of the Feature returned by the namingFeature() operation, if any. /// /// /// The expected @@ -945,15 +944,13 @@ public FeatureReferenceExpression() public string EscapedName() => this.ComputeEscapedNameOperation(); /// - /// First, determine a value Expression for the referent:
    - ///
  • If the target Element is a Type that has a feature that is the referent or (directly - /// or indirectly) redefines it, then the value Expression of the FeatureValue for that feature (if - /// any).
  • Else, if the referent has no featuringTypes, the value - /// Expression of the FeatureValue for the referent (if any).
- /// Then:
  • If such a - /// value Expression exists, return the result of evaluating that Expression on the target.
  • - ///
  • Else, if the referent is not an Expression, return the referent.
  • - ///
  • Else return the empty sequence.
+ /// First, determine a value Expression for the referent:
  • If the target Element is a Type that + /// has a feature that is the referent or (directly or indirectly) redefines it, then the value + /// Expression of the FeatureValue for that feature (if any).
  • Else, if the referent has no + /// featuringTypes, the value Expression of the FeatureValue for the referent (if + /// any).
Then:
  • If such a value Expression exists, return the result of evaluating that + /// Expression on the target.
  • Else, if the referent is not an Expression, return the + /// referent.
  • Else return the empty sequence.
///
/// /// No documentation provided @@ -1038,11 +1035,10 @@ public FeatureReferenceExpression() /// /// A Feature is compatible with an otherType if it either directly or indirectly specializes the - /// otherType or if the otherType is also a Feature and all of the following are true. - ///
  1. Neither this Feature or the otherType have any - /// ownedFeatures.
  2. This Feature directly or indirectly redefines a - /// Feature that is also directly or indirectly redefined by the otherType.
  3. - ///
  4. This Feature can access the otherType.
+ /// otherType or if the otherType is also a Feature and all of the following are true.
  1. Neither + /// this Feature or the otherType have any ownedFeatures.
  2. This Feature directly or indirectly + /// redefines a Feature that is also directly or indirectly redefined by the otherType.
  3. This + /// Feature can access the otherType.
///
/// /// No documentation provided @@ -1128,12 +1124,11 @@ public FeatureReferenceExpression() public List MembershipsOfVisibility(VisibilityKind? visibility, List excluded) => this.ComputeMembershipsOfVisibilityOperation(visibility, excluded); /// - /// A FeatureReferenceExpression is model-level evaluable if it's referent - ///
  • conforms to the self-reference feature Anything::self;
  • - ///
  • is an Expression that is model-level evaluable;
  • - ///
  • has an owningType that is a Metaclass or MetadataFeature; or
  • - ///
  • has no featuringTypes and, if it has a FeatureValue, the value Expression is model-level - /// evaluable.
+ /// A FeatureReferenceExpression is model-level evaluable if it's referent
  • conforms to the + /// self-reference feature Anything::self;
  • is an Expression that is model-level + /// evaluable;
  • has an owningType that is a Metaclass or MetadataFeature; or
  • has no + /// featuringTypes and, if it has a FeatureValue, the value Expression is model-level + /// evaluable.
///
/// /// No documentation provided @@ -1147,11 +1142,11 @@ public FeatureReferenceExpression() /// Return whether this Expression is model-level evaluable. The visited parameter is used to track /// possible circular Feature references made from FeatureReferenceExpressions (see the redefinition of /// this operation for FeatureReferenceExpression). Such circular references are not allowed in - /// model-level evaluable expressions. An Expression that is not otherwise - /// specialized is model-level evaluable if it has no (non-implied) ownedSpecializations and all its - /// ownedFeatures are either in parameters, the result parameter or a result Expression owned via a - /// ResultExpressionMembership. The parameters must not have any ownedFeatures or a FeatureValue, and - /// the result Expression must be model-level evaluable. + /// model-level evaluable expressions.An Expression that is not otherwise specialized is model-level + /// evaluable if it has no (non-implied) ownedSpecializations and all its ownedFeatures are either in + /// parameters, the result parameter or a result Expression owned via a ResultExpressionMembership. The + /// parameters must not have any ownedFeatures or a FeatureValue, and the result Expression must be + /// model-level evaluable. /// /// /// No documentation provided @@ -1225,8 +1220,8 @@ public FeatureReferenceExpression() /// an owningRelationship, then return the string constructed by appending to the path of it's /// owningRelationship the character / followed by the string representation of its position in the list /// of ownedRelatedElements of the owningRelationship (indexed starting at 1). Otherwise, return the - /// empty string. (Note that this operation is overridden for Relationships - /// to use owningRelatedElement when appropriate.) + /// empty string.(Note that this operation is overridden for Relationships to use owningRelatedElement + /// when appropriate.) /// /// /// The expected @@ -1271,13 +1266,12 @@ public FeatureReferenceExpression() /// /// Return a subset of memberships, removing those Memberships whose memberElements are Features and for - /// which either of the following two conditions holds:
    - ///
  1. The memberElement of the Membership is included in redefined Features of another - /// Membership in memberships.
  2. One of the redefined Features of the - /// Membership is a directly redefinedFeature of an ownedFeature of this Type.
  3. - ///
For this purpose, the redefined Features of a Membership - /// whose memberElement is a Feature includes the memberElement and all Features directly or indirectly - /// redefined by the memberElement. + /// which either of the following two conditions holds:
  1. The memberElement of the Membership is + /// included in redefined Features of another Membership in memberships.
  2. One of the redefined + /// Features of the Membership is a directly redefinedFeature of an ownedFeature of this + /// Type.
For this purpose, the redefined Features of a Membership whose memberElement is a + /// Feature includes the memberElement and all Features directly or indirectly redefined by the + /// memberElement. ///
/// /// No documentation provided @@ -1404,11 +1398,11 @@ public FeatureReferenceExpression() /// Return the Features used to determine the types of this Feature (other than this Feature itself). If /// this Feature is not conjugated, then the typingFeatures consist of all subsetted Features, except /// from CrossSubsetting, and the last chainingFeature (if any). If this Feature is conjugated, then the - /// typingFeatures are only its originalType (if the originalType is a Feature). - /// Note. CrossSubsetting is excluded from the determination of the type of a - /// Feature in order to avoid circularity in the construction of implied CrossSubsetting relationships. - /// The validateFeatureCrossFeatureType requires that the crossFeature of a Feature have the same type - /// as the Feature. + /// typingFeatures are only its originalType (if the originalType is a Feature).Note. + /// CrossSubsetting is excluded from the determination of the type of a Feature in order to avoid + /// circularity in the construction of implied CrossSubsetting relationships. The + /// validateFeatureCrossFeatureType requires that the crossFeature of a Feature have the same type as + /// the Feature. /// /// /// The expected collection of diff --git a/SysML2.NET/Core/AutoGenPoco/FeatureTyping.cs b/SysML2.NET/Core/AutoGenPoco/FeatureTyping.cs index 8d74cd51d..0d368bd87 100644 --- a/SysML2.NET/Core/AutoGenPoco/FeatureTyping.cs +++ b/SysML2.NET/Core/AutoGenPoco/FeatureTyping.cs @@ -443,8 +443,8 @@ List Root.Elements.IRelationship.Target /// an owningRelationship, then return the string constructed by appending to the path of it's /// owningRelationship the character / followed by the string representation of its position in the list /// of ownedRelatedElements of the owningRelationship (indexed starting at 1). Otherwise, return the - /// empty string. (Note that this operation is overridden for Relationships - /// to use owningRelatedElement when appropriate.) + /// empty string.(Note that this operation is overridden for Relationships to use owningRelatedElement + /// when appropriate.) /// /// /// The expected diff --git a/SysML2.NET/Core/AutoGenPoco/FeatureValue.cs b/SysML2.NET/Core/AutoGenPoco/FeatureValue.cs index 9d7e4c0b4..fd49f1f6f 100644 --- a/SysML2.NET/Core/AutoGenPoco/FeatureValue.cs +++ b/SysML2.NET/Core/AutoGenPoco/FeatureValue.cs @@ -42,14 +42,13 @@ namespace SysML2.NET.Core.POCO.Kernel.FeatureValues /// A FeatureValue is a Membership that identifies a particular member Expression that provides the /// value of the Feature that owns the FeatureValue. The value is specified as either a bound value or /// an initial value, and as either a concrete or default value. A Feature can have at most one - /// FeatureValue. The result of the value Expression is bound to the - /// featureWithValue using a BindingConnector. If isInitial = false, then the featuringType of the - /// BindingConnector is the same as the featuringType of the featureWithValue. If isInitial = true, then - /// the featuringType of the BindingConnector is restricted to its startShot. If - /// isDefault = false, then the above semantics of the FeatureValue are realized for the given - /// featureWithValue. Otherwise, the semantics are realized for any individual of the featuringType of - /// the featureWithValue, unless another value is explicitly given for the featureWithValue for that - /// individual. + /// FeatureValue.The result of the value Expression is bound to the featureWithValue using a + /// BindingConnector. If isInitial = false, then the featuringType of the BindingConnector is the same + /// as the featuringType of the featureWithValue. If isInitial = true, then the featuringType of the + /// BindingConnector is restricted to its startShot.If isDefault = false, then the above semantics of + /// the FeatureValue are realized for the given featureWithValue. Otherwise, the semantics are realized + /// for any individual of the featuringType of the featureWithValue, unless another value is explicitly + /// given for the featureWithValue for that individual. /// [Class(xmiId: "_18_5_3_12e503d9_1543180279304_499907_20659", isAbstract: false, isFinalSpecialization: false, isActive: false)] [GeneratedCode("SysML2.NET", "latest")] @@ -530,8 +529,8 @@ List Root.Elements.IRelationship.Target /// an owningRelationship, then return the string constructed by appending to the path of it's /// owningRelationship the character / followed by the string representation of its position in the list /// of ownedRelatedElements of the owningRelationship (indexed starting at 1). Otherwise, return the - /// empty string. (Note that this operation is overridden for Relationships - /// to use owningRelatedElement when appropriate.) + /// empty string.(Note that this operation is overridden for Relationships to use owningRelatedElement + /// when appropriate.) /// /// /// The expected diff --git a/SysML2.NET/Core/AutoGenPoco/Flow.cs b/SysML2.NET/Core/AutoGenPoco/Flow.cs index fe7f78fa2..021408f50 100644 --- a/SysML2.NET/Core/AutoGenPoco/Flow.cs +++ b/SysML2.NET/Core/AutoGenPoco/Flow.cs @@ -416,11 +416,11 @@ public Flow() /// /// Whether all things that meet the classification conditions of this Type must be classified by the - /// Type. (A Type gives conditions that must be met by whatever it - /// classifies, but when isSufficient is false, things may meet those conditions but still not be - /// classified by the Type. For example, a Type Car that is not sufficient could require everything it - /// classifies to have four wheels, but not all four wheeled things would classify as cars. However, if - /// the Type Car were sufficient, it would classify all four-wheeled things.) + /// Type.(A Type gives conditions that must be met by whatever it classifies, but when isSufficient + /// is false, things may meet those conditions but still not be classified by the Type. For example, a + /// Type Car that is not sufficient could require everything it classifies to have four wheels, but not + /// all four wheeled things would classify as cars. However, if the Type Car were sufficient, it would + /// classify all four-wheeled things.) /// [Property(xmiId: "_18_5_3_b9102da_1564072709069_937523_30797", aggregation: AggregationKind.None, lowerValue: 1, upperValue: 1, isOrdered: false, isReadOnly: false, isDerived: false, isDerivedUnion: false, isUnique: true, defaultValue: "false")] [Implements(implementation: "IType.IsSufficient")] @@ -1029,9 +1029,8 @@ List Root.Elements.IRelationship.Target public FeatureDirectionKind? DirectionOfExcluding(IFeature feature, List excluded) => this.ComputeDirectionOfExcludingOperation(feature, excluded); /// - /// If a Feature has no declaredName or declaredShortName , then its - /// effective name is given by the effective name of the Feature returned by the namingFeature() - /// operation, if any. + /// If a Feature has no declaredName or declaredShortName, then its effective name is given by the + /// effective name of the Feature returned by the namingFeature() operation, if any. /// /// /// The expected @@ -1136,11 +1135,10 @@ List Root.Elements.IRelationship.Target /// /// A Feature is compatible with an otherType if it either directly or indirectly specializes the - /// otherType or if the otherType is also a Feature and all of the following are true. - ///
  1. Neither this Feature or the otherType have any - /// ownedFeatures.
  2. This Feature directly or indirectly redefines a - /// Feature that is also directly or indirectly redefined by the otherType.
  3. - ///
  4. This Feature can access the otherType.
+ /// otherType or if the otherType is also a Feature and all of the following are true.
  1. Neither + /// this Feature or the otherType have any ownedFeatures.
  2. This Feature directly or indirectly + /// redefines a Feature that is also directly or indirectly redefined by the otherType.
  3. This + /// Feature can access the otherType.
///
/// /// No documentation provided @@ -1298,8 +1296,8 @@ List Root.Elements.IRelationship.Target /// an owningRelationship, then return the string constructed by appending to the path of it's /// owningRelationship the character / followed by the string representation of its position in the list /// of ownedRelatedElements of the owningRelationship (indexed starting at 1). Otherwise, return the - /// empty string. (Note that this operation is overridden for Relationships - /// to use owningRelatedElement when appropriate.) + /// empty string.(Note that this operation is overridden for Relationships to use owningRelatedElement + /// when appropriate.) /// /// /// The expected @@ -1355,13 +1353,12 @@ List Root.Elements.IRelationship.Target /// /// Return a subset of memberships, removing those Memberships whose memberElements are Features and for - /// which either of the following two conditions holds:
    - ///
  1. The memberElement of the Membership is included in redefined Features of another - /// Membership in memberships.
  2. One of the redefined Features of the - /// Membership is a directly redefinedFeature of an ownedFeature of this Type.
  3. - ///
For this purpose, the redefined Features of a Membership - /// whose memberElement is a Feature includes the memberElement and all Features directly or indirectly - /// redefined by the memberElement. + /// which either of the following two conditions holds:
  1. The memberElement of the Membership is + /// included in redefined Features of another Membership in memberships.
  2. One of the redefined + /// Features of the Membership is a directly redefinedFeature of an ownedFeature of this + /// Type.
For this purpose, the redefined Features of a Membership whose memberElement is a + /// Feature includes the memberElement and all Features directly or indirectly redefined by the + /// memberElement. ///
/// /// No documentation provided @@ -1488,11 +1485,11 @@ List Root.Elements.IRelationship.Target /// Return the Features used to determine the types of this Feature (other than this Feature itself). If /// this Feature is not conjugated, then the typingFeatures consist of all subsetted Features, except /// from CrossSubsetting, and the last chainingFeature (if any). If this Feature is conjugated, then the - /// typingFeatures are only its originalType (if the originalType is a Feature). - /// Note. CrossSubsetting is excluded from the determination of the type of a - /// Feature in order to avoid circularity in the construction of implied CrossSubsetting relationships. - /// The validateFeatureCrossFeatureType requires that the crossFeature of a Feature have the same type - /// as the Feature. + /// typingFeatures are only its originalType (if the originalType is a Feature).Note. + /// CrossSubsetting is excluded from the determination of the type of a Feature in order to avoid + /// circularity in the construction of implied CrossSubsetting relationships. The + /// validateFeatureCrossFeatureType requires that the crossFeature of a Feature have the same type as + /// the Feature. /// /// /// The expected collection of diff --git a/SysML2.NET/Core/AutoGenPoco/FlowDefinition.cs b/SysML2.NET/Core/AutoGenPoco/FlowDefinition.cs index 897f0f249..4f4032e01 100644 --- a/SysML2.NET/Core/AutoGenPoco/FlowDefinition.cs +++ b/SysML2.NET/Core/AutoGenPoco/FlowDefinition.cs @@ -315,11 +315,11 @@ public FlowDefinition() /// /// Whether all things that meet the classification conditions of this Type must be classified by the - /// Type. (A Type gives conditions that must be met by whatever it - /// classifies, but when isSufficient is false, things may meet those conditions but still not be - /// classified by the Type. For example, a Type Car that is not sufficient could require everything it - /// classifies to have four wheels, but not all four wheeled things would classify as cars. However, if - /// the Type Car were sufficient, it would classify all four-wheeled things.) + /// Type.(A Type gives conditions that must be met by whatever it classifies, but when isSufficient + /// is false, things may meet those conditions but still not be classified by the Type. For example, a + /// Type Car that is not sufficient could require everything it classifies to have four wheels, but not + /// all four wheeled things would classify as cars. However, if the Type Car were sufficient, it would + /// classify all four-wheeled things.) /// [Property(xmiId: "_18_5_3_b9102da_1564072709069_937523_30797", aggregation: AggregationKind.None, lowerValue: 1, upperValue: 1, isOrdered: false, isReadOnly: false, isDerived: false, isDerivedUnion: false, isUnique: true, defaultValue: "false")] [Implements(implementation: "IType.IsSufficient")] @@ -597,7 +597,7 @@ public FlowDefinition() public List ownedMembership => this.ComputeOwnedMembership(); /// - /// The MetadataUsages that are ownedUsages of this Definition. + /// The MetadataUsages that are ownedMembers of this Definition. /// [Property(xmiId: "_19_0_4_12e503d9_1661488358064_457109_2881", aggregation: AggregationKind.None, lowerValue: 0, upperValue: int.MaxValue, isOrdered: true, isReadOnly: false, isDerived: true, isDerivedUnion: false, isUnique: true, defaultValue: null)] [SubsettedProperty(propertyName: "_19_0_2_12e503d9_1591482567975_649284_3005")] @@ -1175,8 +1175,8 @@ List Root.Elements.IRelationship.Target /// an owningRelationship, then return the string constructed by appending to the path of it's /// owningRelationship the character / followed by the string representation of its position in the list /// of ownedRelatedElements of the owningRelationship (indexed starting at 1). Otherwise, return the - /// empty string. (Note that this operation is overridden for Relationships - /// to use owningRelatedElement when appropriate.) + /// empty string.(Note that this operation is overridden for Relationships to use owningRelatedElement + /// when appropriate.) /// /// /// The expected @@ -1209,13 +1209,12 @@ List Root.Elements.IRelationship.Target /// /// Return a subset of memberships, removing those Memberships whose memberElements are Features and for - /// which either of the following two conditions holds:
    - ///
  1. The memberElement of the Membership is included in redefined Features of another - /// Membership in memberships.
  2. One of the redefined Features of the - /// Membership is a directly redefinedFeature of an ownedFeature of this Type.
  3. - ///
For this purpose, the redefined Features of a Membership - /// whose memberElement is a Feature includes the memberElement and all Features directly or indirectly - /// redefined by the memberElement. + /// which either of the following two conditions holds:
  1. The memberElement of the Membership is + /// included in redefined Features of another Membership in memberships.
  2. One of the redefined + /// Features of the Membership is a directly redefinedFeature of an ownedFeature of this + /// Type.
For this purpose, the redefined Features of a Membership whose memberElement is a + /// Feature includes the memberElement and all Features directly or indirectly redefined by the + /// memberElement. ///
/// /// No documentation provided diff --git a/SysML2.NET/Core/AutoGenPoco/FlowEnd.cs b/SysML2.NET/Core/AutoGenPoco/FlowEnd.cs index 946d581e1..b7aed708b 100644 --- a/SysML2.NET/Core/AutoGenPoco/FlowEnd.cs +++ b/SysML2.NET/Core/AutoGenPoco/FlowEnd.cs @@ -345,11 +345,11 @@ public FlowEnd() /// /// Whether all things that meet the classification conditions of this Type must be classified by the - /// Type. (A Type gives conditions that must be met by whatever it - /// classifies, but when isSufficient is false, things may meet those conditions but still not be - /// classified by the Type. For example, a Type Car that is not sufficient could require everything it - /// classifies to have four wheels, but not all four wheeled things would classify as cars. However, if - /// the Type Car were sufficient, it would classify all four-wheeled things.) + /// Type.(A Type gives conditions that must be met by whatever it classifies, but when isSufficient + /// is false, things may meet those conditions but still not be classified by the Type. For example, a + /// Type Car that is not sufficient could require everything it classifies to have four wheels, but not + /// all four wheeled things would classify as cars. However, if the Type Car were sufficient, it would + /// classify all four-wheeled things.) /// [Property(xmiId: "_18_5_3_b9102da_1564072709069_937523_30797", aggregation: AggregationKind.None, lowerValue: 1, upperValue: 1, isOrdered: false, isReadOnly: false, isDerived: false, isDerivedUnion: false, isUnique: true, defaultValue: "false")] [Implements(implementation: "IType.IsSufficient")] @@ -832,9 +832,8 @@ public FlowEnd() public FeatureDirectionKind? DirectionOfExcluding(IFeature feature, List excluded) => this.ComputeDirectionOfExcludingOperation(feature, excluded); /// - /// If a Feature has no declaredName or declaredShortName , then its - /// effective name is given by the effective name of the Feature returned by the namingFeature() - /// operation, if any. + /// If a Feature has no declaredName or declaredShortName, then its effective name is given by the + /// effective name of the Feature returned by the namingFeature() operation, if any. /// /// /// The expected @@ -939,11 +938,10 @@ public FlowEnd() /// /// A Feature is compatible with an otherType if it either directly or indirectly specializes the - /// otherType or if the otherType is also a Feature and all of the following are true. - ///
  1. Neither this Feature or the otherType have any - /// ownedFeatures.
  2. This Feature directly or indirectly redefines a - /// Feature that is also directly or indirectly redefined by the otherType.
  3. - ///
  4. This Feature can access the otherType.
+ /// otherType or if the otherType is also a Feature and all of the following are true.
  1. Neither + /// this Feature or the otherType have any ownedFeatures.
  2. This Feature directly or indirectly + /// redefines a Feature that is also directly or indirectly redefined by the otherType.
  3. This + /// Feature can access the otherType.
///
/// /// No documentation provided @@ -1092,8 +1090,8 @@ public FlowEnd() /// an owningRelationship, then return the string constructed by appending to the path of it's /// owningRelationship the character / followed by the string representation of its position in the list /// of ownedRelatedElements of the owningRelationship (indexed starting at 1). Otherwise, return the - /// empty string. (Note that this operation is overridden for Relationships - /// to use owningRelatedElement when appropriate.) + /// empty string.(Note that this operation is overridden for Relationships to use owningRelatedElement + /// when appropriate.) /// /// /// The expected @@ -1138,13 +1136,12 @@ public FlowEnd() /// /// Return a subset of memberships, removing those Memberships whose memberElements are Features and for - /// which either of the following two conditions holds:
    - ///
  1. The memberElement of the Membership is included in redefined Features of another - /// Membership in memberships.
  2. One of the redefined Features of the - /// Membership is a directly redefinedFeature of an ownedFeature of this Type.
  3. - ///
For this purpose, the redefined Features of a Membership - /// whose memberElement is a Feature includes the memberElement and all Features directly or indirectly - /// redefined by the memberElement. + /// which either of the following two conditions holds:
  1. The memberElement of the Membership is + /// included in redefined Features of another Membership in memberships.
  2. One of the redefined + /// Features of the Membership is a directly redefinedFeature of an ownedFeature of this + /// Type.
For this purpose, the redefined Features of a Membership whose memberElement is a + /// Feature includes the memberElement and all Features directly or indirectly redefined by the + /// memberElement. ///
/// /// No documentation provided @@ -1271,11 +1268,11 @@ public FlowEnd() /// Return the Features used to determine the types of this Feature (other than this Feature itself). If /// this Feature is not conjugated, then the typingFeatures consist of all subsetted Features, except /// from CrossSubsetting, and the last chainingFeature (if any). If this Feature is conjugated, then the - /// typingFeatures are only its originalType (if the originalType is a Feature). - /// Note. CrossSubsetting is excluded from the determination of the type of a - /// Feature in order to avoid circularity in the construction of implied CrossSubsetting relationships. - /// The validateFeatureCrossFeatureType requires that the crossFeature of a Feature have the same type - /// as the Feature. + /// typingFeatures are only its originalType (if the originalType is a Feature).Note. + /// CrossSubsetting is excluded from the determination of the type of a Feature in order to avoid + /// circularity in the construction of implied CrossSubsetting relationships. The + /// validateFeatureCrossFeatureType requires that the crossFeature of a Feature have the same type as + /// the Feature. /// /// /// The expected collection of diff --git a/SysML2.NET/Core/AutoGenPoco/FlowUsage.cs b/SysML2.NET/Core/AutoGenPoco/FlowUsage.cs index 5dd072bc5..18f01fa8b 100644 --- a/SysML2.NET/Core/AutoGenPoco/FlowUsage.cs +++ b/SysML2.NET/Core/AutoGenPoco/FlowUsage.cs @@ -503,11 +503,11 @@ public FlowUsage() /// /// Whether all things that meet the classification conditions of this Type must be classified by the - /// Type. (A Type gives conditions that must be met by whatever it - /// classifies, but when isSufficient is false, things may meet those conditions but still not be - /// classified by the Type. For example, a Type Car that is not sufficient could require everything it - /// classifies to have four wheels, but not all four wheeled things would classify as cars. However, if - /// the Type Car were sufficient, it would classify all four-wheeled things.) + /// Type.(A Type gives conditions that must be met by whatever it classifies, but when isSufficient + /// is false, things may meet those conditions but still not be classified by the Type. For example, a + /// Type Car that is not sufficient could require everything it classifies to have four wheels, but not + /// all four wheeled things would classify as cars. However, if the Type Car were sufficient, it would + /// classify all four-wheeled things.) /// [Property(xmiId: "_18_5_3_b9102da_1564072709069_937523_30797", aggregation: AggregationKind.None, lowerValue: 1, upperValue: 1, isOrdered: false, isReadOnly: false, isDerived: false, isDerivedUnion: false, isUnique: true, defaultValue: "false")] [Implements(implementation: "IType.IsSufficient")] @@ -545,9 +545,9 @@ bool Core.Features.IFeature.IsVariable /// Whether this Usage may be time varying (that is, whether it is featured by the snapshots of its /// owningType, rather than being featured by the owningType itself). However, if isConstant is also /// true, then the value of the Usage is nevertheless constant over the entire duration of an instance - /// of its owningType (that is, it has the same value on all snapshots). The - /// property mayTimeVary redefines the KerML property Feature::isVariable, making it derived. The - /// property isConstant is inherited from Feature. + /// of its owningType (that is, it has the same value on all snapshots).The property mayTimeVary + /// redefines the KerML property Feature::isVariable, making it derived. The property isConstant is + /// inherited from Feature. /// [Property(xmiId: "_2022x_2_12e503d9_1737227200362_771035_69", aggregation: AggregationKind.None, lowerValue: 1, upperValue: 1, isOrdered: false, isReadOnly: false, isDerived: true, isDerivedUnion: false, isUnique: true, defaultValue: null)] [RedefinedProperty(propertyName: "_2022x_2_12e503d9_1725998273002_23711_212")] @@ -648,8 +648,8 @@ bool Core.Features.IFeature.IsVariable /// /// The ConnectorAsUsages that are nestedUsages of this Usage. Note that this list includes - /// BindingConnectorAsUsages, SuccessionAsUsages, and FlowConnectionUsages because these are - /// ConnectorAsUsages even though they are not ConnectionUsages. + /// BindingConnectorAsUsages, SuccessionAsUsages, and FlowUsages because these are ConnectorAsUsages + /// even though they are not ConnectionUsages. /// [Property(xmiId: "_19_0_2_12e503d9_1591479754895_422988_1242", aggregation: AggregationKind.None, lowerValue: 0, upperValue: int.MaxValue, isOrdered: true, isReadOnly: false, isDerived: true, isDerivedUnion: false, isUnique: true, defaultValue: null)] [SubsettedProperty(propertyName: "_18_5_3_12e503d9_1565472757327_162097_21259")] @@ -697,7 +697,7 @@ bool Core.Features.IFeature.IsVariable public List nestedItem => this.ComputeNestedItem(); /// - /// The MetadataUsages that are nestedUsages of this of this Usage. + /// The MetadataUsages that are ownedMembers of this of this Usage. /// [Property(xmiId: "_19_0_4_12e503d9_1661488589862_120785_2970", aggregation: AggregationKind.None, lowerValue: 0, upperValue: int.MaxValue, isOrdered: true, isReadOnly: false, isDerived: true, isDerivedUnion: false, isUnique: true, defaultValue: null)] [SubsettedProperty(propertyName: "_19_0_2_12e503d9_1591482421103_284620_2978")] @@ -1434,9 +1434,8 @@ List Root.Elements.IRelationship.Target public FeatureDirectionKind? DirectionOfExcluding(IFeature feature, List excluded) => this.ComputeDirectionOfExcludingOperation(feature, excluded); /// - /// If a Feature has no declaredName or declaredShortName , then its - /// effective name is given by the effective name of the Feature returned by the namingFeature() - /// operation, if any. + /// If a Feature has no declaredName or declaredShortName, then its effective name is given by the + /// effective name of the Feature returned by the namingFeature() operation, if any. /// /// /// The expected @@ -1561,11 +1560,10 @@ List Root.Elements.IRelationship.Target /// /// A Feature is compatible with an otherType if it either directly or indirectly specializes the - /// otherType or if the otherType is also a Feature and all of the following are true. - ///
  1. Neither this Feature or the otherType have any - /// ownedFeatures.
  2. This Feature directly or indirectly redefines a - /// Feature that is also directly or indirectly redefined by the otherType.
  3. - ///
  4. This Feature can access the otherType.
+ /// otherType or if the otherType is also a Feature and all of the following are true.
  1. Neither + /// this Feature or the otherType have any ownedFeatures.
  2. This Feature directly or indirectly + /// redefines a Feature that is also directly or indirectly redefined by the otherType.
  3. This + /// Feature can access the otherType.
///
/// /// No documentation provided @@ -1742,8 +1740,8 @@ List Root.Elements.IRelationship.Target /// an owningRelationship, then return the string constructed by appending to the path of it's /// owningRelationship the character / followed by the string representation of its position in the list /// of ownedRelatedElements of the owningRelationship (indexed starting at 1). Otherwise, return the - /// empty string. (Note that this operation is overridden for Relationships - /// to use owningRelatedElement when appropriate.) + /// empty string.(Note that this operation is overridden for Relationships to use owningRelatedElement + /// when appropriate.) /// /// /// The expected @@ -1808,13 +1806,12 @@ List Root.Elements.IRelationship.Target /// /// Return a subset of memberships, removing those Memberships whose memberElements are Features and for - /// which either of the following two conditions holds:
    - ///
  1. The memberElement of the Membership is included in redefined Features of another - /// Membership in memberships.
  2. One of the redefined Features of the - /// Membership is a directly redefinedFeature of an ownedFeature of this Type.
  3. - ///
For this purpose, the redefined Features of a Membership - /// whose memberElement is a Feature includes the memberElement and all Features directly or indirectly - /// redefined by the memberElement. + /// which either of the following two conditions holds:
  1. The memberElement of the Membership is + /// included in redefined Features of another Membership in memberships.
  2. One of the redefined + /// Features of the Membership is a directly redefinedFeature of an ownedFeature of this + /// Type.
For this purpose, the redefined Features of a Membership whose memberElement is a + /// Feature includes the memberElement and all Features directly or indirectly redefined by the + /// memberElement. ///
/// /// No documentation provided @@ -1941,11 +1938,11 @@ List Root.Elements.IRelationship.Target /// Return the Features used to determine the types of this Feature (other than this Feature itself). If /// this Feature is not conjugated, then the typingFeatures consist of all subsetted Features, except /// from CrossSubsetting, and the last chainingFeature (if any). If this Feature is conjugated, then the - /// typingFeatures are only its originalType (if the originalType is a Feature). - /// Note. CrossSubsetting is excluded from the determination of the type of a - /// Feature in order to avoid circularity in the construction of implied CrossSubsetting relationships. - /// The validateFeatureCrossFeatureType requires that the crossFeature of a Feature have the same type - /// as the Feature. + /// typingFeatures are only its originalType (if the originalType is a Feature).Note. + /// CrossSubsetting is excluded from the determination of the type of a Feature in order to avoid + /// circularity in the construction of implied CrossSubsetting relationships. The + /// validateFeatureCrossFeatureType requires that the crossFeature of a Feature have the same type as + /// the Feature. /// /// /// The expected collection of diff --git a/SysML2.NET/Core/AutoGenPoco/ForLoopActionUsage.cs b/SysML2.NET/Core/AutoGenPoco/ForLoopActionUsage.cs index c524ed53f..a36c7482f 100644 --- a/SysML2.NET/Core/AutoGenPoco/ForLoopActionUsage.cs +++ b/SysML2.NET/Core/AutoGenPoco/ForLoopActionUsage.cs @@ -440,11 +440,11 @@ public ForLoopActionUsage() /// /// Whether all things that meet the classification conditions of this Type must be classified by the - /// Type. (A Type gives conditions that must be met by whatever it - /// classifies, but when isSufficient is false, things may meet those conditions but still not be - /// classified by the Type. For example, a Type Car that is not sufficient could require everything it - /// classifies to have four wheels, but not all four wheeled things would classify as cars. However, if - /// the Type Car were sufficient, it would classify all four-wheeled things.) + /// Type.(A Type gives conditions that must be met by whatever it classifies, but when isSufficient + /// is false, things may meet those conditions but still not be classified by the Type. For example, a + /// Type Car that is not sufficient could require everything it classifies to have four wheels, but not + /// all four wheeled things would classify as cars. However, if the Type Car were sufficient, it would + /// classify all four-wheeled things.) /// [Property(xmiId: "_18_5_3_b9102da_1564072709069_937523_30797", aggregation: AggregationKind.None, lowerValue: 1, upperValue: 1, isOrdered: false, isReadOnly: false, isDerived: false, isDerivedUnion: false, isUnique: true, defaultValue: "false")] [Implements(implementation: "IType.IsSufficient")] @@ -491,9 +491,9 @@ bool Core.Features.IFeature.IsVariable /// Whether this Usage may be time varying (that is, whether it is featured by the snapshots of its /// owningType, rather than being featured by the owningType itself). However, if isConstant is also /// true, then the value of the Usage is nevertheless constant over the entire duration of an instance - /// of its owningType (that is, it has the same value on all snapshots). The - /// property mayTimeVary redefines the KerML property Feature::isVariable, making it derived. The - /// property isConstant is inherited from Feature. + /// of its owningType (that is, it has the same value on all snapshots).The property mayTimeVary + /// redefines the KerML property Feature::isVariable, making it derived. The property isConstant is + /// inherited from Feature. /// [Property(xmiId: "_2022x_2_12e503d9_1737227200362_771035_69", aggregation: AggregationKind.None, lowerValue: 1, upperValue: 1, isOrdered: false, isReadOnly: false, isDerived: true, isDerivedUnion: false, isUnique: true, defaultValue: null)] [RedefinedProperty(propertyName: "_2022x_2_12e503d9_1725998273002_23711_212")] @@ -594,8 +594,8 @@ bool Core.Features.IFeature.IsVariable /// /// The ConnectorAsUsages that are nestedUsages of this Usage. Note that this list includes - /// BindingConnectorAsUsages, SuccessionAsUsages, and FlowConnectionUsages because these are - /// ConnectorAsUsages even though they are not ConnectionUsages. + /// BindingConnectorAsUsages, SuccessionAsUsages, and FlowUsages because these are ConnectorAsUsages + /// even though they are not ConnectionUsages. /// [Property(xmiId: "_19_0_2_12e503d9_1591479754895_422988_1242", aggregation: AggregationKind.None, lowerValue: 0, upperValue: int.MaxValue, isOrdered: true, isReadOnly: false, isDerived: true, isDerivedUnion: false, isUnique: true, defaultValue: null)] [SubsettedProperty(propertyName: "_18_5_3_12e503d9_1565472757327_162097_21259")] @@ -643,7 +643,7 @@ bool Core.Features.IFeature.IsVariable public List nestedItem => this.ComputeNestedItem(); /// - /// The MetadataUsages that are nestedUsages of this of this Usage. + /// The MetadataUsages that are ownedMembers of this of this Usage. /// [Property(xmiId: "_19_0_4_12e503d9_1661488589862_120785_2970", aggregation: AggregationKind.None, lowerValue: 0, upperValue: int.MaxValue, isOrdered: true, isReadOnly: false, isDerived: true, isDerivedUnion: false, isUnique: true, defaultValue: null)] [SubsettedProperty(propertyName: "_19_0_2_12e503d9_1591482421103_284620_2978")] @@ -1273,9 +1273,8 @@ bool Core.Features.IFeature.IsVariable public FeatureDirectionKind? DirectionOfExcluding(IFeature feature, List excluded) => this.ComputeDirectionOfExcludingOperation(feature, excluded); /// - /// If a Feature has no declaredName or declaredShortName , then its - /// effective name is given by the effective name of the Feature returned by the namingFeature() - /// operation, if any. + /// If a Feature has no declaredName or declaredShortName, then its effective name is given by the + /// effective name of the Feature returned by the namingFeature() operation, if any. /// /// /// The expected @@ -1400,11 +1399,10 @@ bool Core.Features.IFeature.IsVariable /// /// A Feature is compatible with an otherType if it either directly or indirectly specializes the - /// otherType or if the otherType is also a Feature and all of the following are true. - ///
  1. Neither this Feature or the otherType have any - /// ownedFeatures.
  2. This Feature directly or indirectly redefines a - /// Feature that is also directly or indirectly redefined by the otherType.
  3. - ///
  4. This Feature can access the otherType.
+ /// otherType or if the otherType is also a Feature and all of the following are true.
  1. Neither + /// this Feature or the otherType have any ownedFeatures.
  2. This Feature directly or indirectly + /// redefines a Feature that is also directly or indirectly redefined by the otherType.
  3. This + /// Feature can access the otherType.
///
/// /// No documentation provided @@ -1572,8 +1570,8 @@ bool Core.Features.IFeature.IsVariable /// an owningRelationship, then return the string constructed by appending to the path of it's /// owningRelationship the character / followed by the string representation of its position in the list /// of ownedRelatedElements of the owningRelationship (indexed starting at 1). Otherwise, return the - /// empty string. (Note that this operation is overridden for Relationships - /// to use owningRelatedElement when appropriate.) + /// empty string.(Note that this operation is overridden for Relationships to use owningRelatedElement + /// when appropriate.) /// /// /// The expected @@ -1627,13 +1625,12 @@ bool Core.Features.IFeature.IsVariable /// /// Return a subset of memberships, removing those Memberships whose memberElements are Features and for - /// which either of the following two conditions holds:
    - ///
  1. The memberElement of the Membership is included in redefined Features of another - /// Membership in memberships.
  2. One of the redefined Features of the - /// Membership is a directly redefinedFeature of an ownedFeature of this Type.
  3. - ///
For this purpose, the redefined Features of a Membership - /// whose memberElement is a Feature includes the memberElement and all Features directly or indirectly - /// redefined by the memberElement. + /// which either of the following two conditions holds:
  1. The memberElement of the Membership is + /// included in redefined Features of another Membership in memberships.
  2. One of the redefined + /// Features of the Membership is a directly redefinedFeature of an ownedFeature of this + /// Type.
For this purpose, the redefined Features of a Membership whose memberElement is a + /// Feature includes the memberElement and all Features directly or indirectly redefined by the + /// memberElement. ///
/// /// No documentation provided @@ -1760,11 +1757,11 @@ bool Core.Features.IFeature.IsVariable /// Return the Features used to determine the types of this Feature (other than this Feature itself). If /// this Feature is not conjugated, then the typingFeatures consist of all subsetted Features, except /// from CrossSubsetting, and the last chainingFeature (if any). If this Feature is conjugated, then the - /// typingFeatures are only its originalType (if the originalType is a Feature). - /// Note. CrossSubsetting is excluded from the determination of the type of a - /// Feature in order to avoid circularity in the construction of implied CrossSubsetting relationships. - /// The validateFeatureCrossFeatureType requires that the crossFeature of a Feature have the same type - /// as the Feature. + /// typingFeatures are only its originalType (if the originalType is a Feature).Note. + /// CrossSubsetting is excluded from the determination of the type of a Feature in order to avoid + /// circularity in the construction of implied CrossSubsetting relationships. The + /// validateFeatureCrossFeatureType requires that the crossFeature of a Feature have the same type as + /// the Feature. /// /// /// The expected collection of diff --git a/SysML2.NET/Core/AutoGenPoco/ForkNode.cs b/SysML2.NET/Core/AutoGenPoco/ForkNode.cs index 0a8c70e34..a480cb920 100644 --- a/SysML2.NET/Core/AutoGenPoco/ForkNode.cs +++ b/SysML2.NET/Core/AutoGenPoco/ForkNode.cs @@ -431,11 +431,11 @@ public ForkNode() /// /// Whether all things that meet the classification conditions of this Type must be classified by the - /// Type. (A Type gives conditions that must be met by whatever it - /// classifies, but when isSufficient is false, things may meet those conditions but still not be - /// classified by the Type. For example, a Type Car that is not sufficient could require everything it - /// classifies to have four wheels, but not all four wheeled things would classify as cars. However, if - /// the Type Car were sufficient, it would classify all four-wheeled things.) + /// Type.(A Type gives conditions that must be met by whatever it classifies, but when isSufficient + /// is false, things may meet those conditions but still not be classified by the Type. For example, a + /// Type Car that is not sufficient could require everything it classifies to have four wheels, but not + /// all four wheeled things would classify as cars. However, if the Type Car were sufficient, it would + /// classify all four-wheeled things.) /// [Property(xmiId: "_18_5_3_b9102da_1564072709069_937523_30797", aggregation: AggregationKind.None, lowerValue: 1, upperValue: 1, isOrdered: false, isReadOnly: false, isDerived: false, isDerivedUnion: false, isUnique: true, defaultValue: "false")] [Implements(implementation: "IType.IsSufficient")] @@ -473,9 +473,9 @@ bool Core.Features.IFeature.IsVariable /// Whether this Usage may be time varying (that is, whether it is featured by the snapshots of its /// owningType, rather than being featured by the owningType itself). However, if isConstant is also /// true, then the value of the Usage is nevertheless constant over the entire duration of an instance - /// of its owningType (that is, it has the same value on all snapshots). The - /// property mayTimeVary redefines the KerML property Feature::isVariable, making it derived. The - /// property isConstant is inherited from Feature. + /// of its owningType (that is, it has the same value on all snapshots).The property mayTimeVary + /// redefines the KerML property Feature::isVariable, making it derived. The property isConstant is + /// inherited from Feature. /// [Property(xmiId: "_2022x_2_12e503d9_1737227200362_771035_69", aggregation: AggregationKind.None, lowerValue: 1, upperValue: 1, isOrdered: false, isReadOnly: false, isDerived: true, isDerivedUnion: false, isUnique: true, defaultValue: null)] [RedefinedProperty(propertyName: "_2022x_2_12e503d9_1725998273002_23711_212")] @@ -576,8 +576,8 @@ bool Core.Features.IFeature.IsVariable /// /// The ConnectorAsUsages that are nestedUsages of this Usage. Note that this list includes - /// BindingConnectorAsUsages, SuccessionAsUsages, and FlowConnectionUsages because these are - /// ConnectorAsUsages even though they are not ConnectionUsages. + /// BindingConnectorAsUsages, SuccessionAsUsages, and FlowUsages because these are ConnectorAsUsages + /// even though they are not ConnectionUsages. /// [Property(xmiId: "_19_0_2_12e503d9_1591479754895_422988_1242", aggregation: AggregationKind.None, lowerValue: 0, upperValue: int.MaxValue, isOrdered: true, isReadOnly: false, isDerived: true, isDerivedUnion: false, isUnique: true, defaultValue: null)] [SubsettedProperty(propertyName: "_18_5_3_12e503d9_1565472757327_162097_21259")] @@ -625,7 +625,7 @@ bool Core.Features.IFeature.IsVariable public List nestedItem => this.ComputeNestedItem(); /// - /// The MetadataUsages that are nestedUsages of this of this Usage. + /// The MetadataUsages that are ownedMembers of this of this Usage. /// [Property(xmiId: "_19_0_4_12e503d9_1661488589862_120785_2970", aggregation: AggregationKind.None, lowerValue: 0, upperValue: int.MaxValue, isOrdered: true, isReadOnly: false, isDerived: true, isDerivedUnion: false, isUnique: true, defaultValue: null)] [SubsettedProperty(propertyName: "_19_0_2_12e503d9_1591482421103_284620_2978")] @@ -1246,9 +1246,8 @@ bool Core.Features.IFeature.IsVariable public FeatureDirectionKind? DirectionOfExcluding(IFeature feature, List excluded) => this.ComputeDirectionOfExcludingOperation(feature, excluded); /// - /// If a Feature has no declaredName or declaredShortName , then its - /// effective name is given by the effective name of the Feature returned by the namingFeature() - /// operation, if any. + /// If a Feature has no declaredName or declaredShortName, then its effective name is given by the + /// effective name of the Feature returned by the namingFeature() operation, if any. /// /// /// The expected @@ -1373,11 +1372,10 @@ bool Core.Features.IFeature.IsVariable /// /// A Feature is compatible with an otherType if it either directly or indirectly specializes the - /// otherType or if the otherType is also a Feature and all of the following are true. - ///
  1. Neither this Feature or the otherType have any - /// ownedFeatures.
  2. This Feature directly or indirectly redefines a - /// Feature that is also directly or indirectly redefined by the otherType.
  3. - ///
  4. This Feature can access the otherType.
+ /// otherType or if the otherType is also a Feature and all of the following are true.
  1. Neither + /// this Feature or the otherType have any ownedFeatures.
  2. This Feature directly or indirectly + /// redefines a Feature that is also directly or indirectly redefined by the otherType.
  3. This + /// Feature can access the otherType.
///
/// /// No documentation provided @@ -1563,8 +1561,8 @@ bool Core.Features.IFeature.IsVariable /// an owningRelationship, then return the string constructed by appending to the path of it's /// owningRelationship the character / followed by the string representation of its position in the list /// of ownedRelatedElements of the owningRelationship (indexed starting at 1). Otherwise, return the - /// empty string. (Note that this operation is overridden for Relationships - /// to use owningRelatedElement when appropriate.) + /// empty string.(Note that this operation is overridden for Relationships to use owningRelatedElement + /// when appropriate.) /// /// /// The expected @@ -1618,13 +1616,12 @@ bool Core.Features.IFeature.IsVariable /// /// Return a subset of memberships, removing those Memberships whose memberElements are Features and for - /// which either of the following two conditions holds:
    - ///
  1. The memberElement of the Membership is included in redefined Features of another - /// Membership in memberships.
  2. One of the redefined Features of the - /// Membership is a directly redefinedFeature of an ownedFeature of this Type.
  3. - ///
For this purpose, the redefined Features of a Membership - /// whose memberElement is a Feature includes the memberElement and all Features directly or indirectly - /// redefined by the memberElement. + /// which either of the following two conditions holds:
  1. The memberElement of the Membership is + /// included in redefined Features of another Membership in memberships.
  2. One of the redefined + /// Features of the Membership is a directly redefinedFeature of an ownedFeature of this + /// Type.
For this purpose, the redefined Features of a Membership whose memberElement is a + /// Feature includes the memberElement and all Features directly or indirectly redefined by the + /// memberElement. ///
/// /// No documentation provided @@ -1751,11 +1748,11 @@ bool Core.Features.IFeature.IsVariable /// Return the Features used to determine the types of this Feature (other than this Feature itself). If /// this Feature is not conjugated, then the typingFeatures consist of all subsetted Features, except /// from CrossSubsetting, and the last chainingFeature (if any). If this Feature is conjugated, then the - /// typingFeatures are only its originalType (if the originalType is a Feature). - /// Note. CrossSubsetting is excluded from the determination of the type of a - /// Feature in order to avoid circularity in the construction of implied CrossSubsetting relationships. - /// The validateFeatureCrossFeatureType requires that the crossFeature of a Feature have the same type - /// as the Feature. + /// typingFeatures are only its originalType (if the originalType is a Feature).Note. + /// CrossSubsetting is excluded from the determination of the type of a Feature in order to avoid + /// circularity in the construction of implied CrossSubsetting relationships. The + /// validateFeatureCrossFeatureType requires that the crossFeature of a Feature have the same type as + /// the Feature. /// /// /// The expected collection of diff --git a/SysML2.NET/Core/AutoGenPoco/FramedConcernMembership.cs b/SysML2.NET/Core/AutoGenPoco/FramedConcernMembership.cs index 6fd6bd6c6..00d35574d 100644 --- a/SysML2.NET/Core/AutoGenPoco/FramedConcernMembership.cs +++ b/SysML2.NET/Core/AutoGenPoco/FramedConcernMembership.cs @@ -572,8 +572,8 @@ List Root.Elements.IRelationship.Target /// an owningRelationship, then return the string constructed by appending to the path of it's /// owningRelationship the character / followed by the string representation of its position in the list /// of ownedRelatedElements of the owningRelationship (indexed starting at 1). Otherwise, return the - /// empty string. (Note that this operation is overridden for Relationships - /// to use owningRelatedElement when appropriate.) + /// empty string.(Note that this operation is overridden for Relationships to use owningRelatedElement + /// when appropriate.) /// /// /// The expected diff --git a/SysML2.NET/Core/AutoGenPoco/Function.cs b/SysML2.NET/Core/AutoGenPoco/Function.cs index 5db0e08df..a78b17595 100644 --- a/SysML2.NET/Core/AutoGenPoco/Function.cs +++ b/SysML2.NET/Core/AutoGenPoco/Function.cs @@ -246,9 +246,9 @@ public Function() /// /// Whether this Function can be used as the function of a model-level evaluable InvocationExpression. /// Certain Functions from the Kernel Functions Library are considered to have isModelLevelEvaluable = - /// true. For all other Functions it is false. Note: See the - /// specification of the KerML concrete syntax notation for Expressions for an identification of which - /// library Functions are model-level evaluable. + /// true. For all other Functions it is false.Note: See the specification of the KerML + /// concrete syntax notation for Expressions for an identification of which library Functions are + /// model-level evaluable. /// [Property(xmiId: "_19_0_4_12e503d9_1617395221463_139517_26381", aggregation: AggregationKind.None, lowerValue: 1, upperValue: 1, isOrdered: false, isReadOnly: false, isDerived: true, isDerivedUnion: false, isUnique: true, defaultValue: null)] [Implements(implementation: "IFunction.IsModelLevelEvaluable")] @@ -256,11 +256,11 @@ public Function() /// /// Whether all things that meet the classification conditions of this Type must be classified by the - /// Type. (A Type gives conditions that must be met by whatever it - /// classifies, but when isSufficient is false, things may meet those conditions but still not be - /// classified by the Type. For example, a Type Car that is not sufficient could require everything it - /// classifies to have four wheels, but not all four wheeled things would classify as cars. However, if - /// the Type Car were sufficient, it would classify all four-wheeled things.) + /// Type.(A Type gives conditions that must be met by whatever it classifies, but when isSufficient + /// is false, things may meet those conditions but still not be classified by the Type. For example, a + /// Type Car that is not sufficient could require everything it classifies to have four wheels, but not + /// all four wheeled things would classify as cars. However, if the Type Car were sufficient, it would + /// classify all four-wheeled things.) /// [Property(xmiId: "_18_5_3_b9102da_1564072709069_937523_30797", aggregation: AggregationKind.None, lowerValue: 1, upperValue: 1, isOrdered: false, isReadOnly: false, isDerived: false, isDerivedUnion: false, isUnique: true, defaultValue: "false")] [Implements(implementation: "IType.IsSufficient")] @@ -778,8 +778,8 @@ public Function() /// an owningRelationship, then return the string constructed by appending to the path of it's /// owningRelationship the character / followed by the string representation of its position in the list /// of ownedRelatedElements of the owningRelationship (indexed starting at 1). Otherwise, return the - /// empty string. (Note that this operation is overridden for Relationships - /// to use owningRelatedElement when appropriate.) + /// empty string.(Note that this operation is overridden for Relationships to use owningRelatedElement + /// when appropriate.) /// /// /// The expected @@ -801,13 +801,12 @@ public Function() /// /// Return a subset of memberships, removing those Memberships whose memberElements are Features and for - /// which either of the following two conditions holds:
    - ///
  1. The memberElement of the Membership is included in redefined Features of another - /// Membership in memberships.
  2. One of the redefined Features of the - /// Membership is a directly redefinedFeature of an ownedFeature of this Type.
  3. - ///
For this purpose, the redefined Features of a Membership - /// whose memberElement is a Feature includes the memberElement and all Features directly or indirectly - /// redefined by the memberElement. + /// which either of the following two conditions holds:
  1. The memberElement of the Membership is + /// included in redefined Features of another Membership in memberships.
  2. One of the redefined + /// Features of the Membership is a directly redefinedFeature of an ownedFeature of this + /// Type.
For this purpose, the redefined Features of a Membership whose memberElement is a + /// Feature includes the memberElement and all Features directly or indirectly redefined by the + /// memberElement. ///
/// /// No documentation provided diff --git a/SysML2.NET/Core/AutoGenPoco/IAttributeDefinition.cs b/SysML2.NET/Core/AutoGenPoco/IAttributeDefinition.cs index b51387262..c998a3a5f 100644 --- a/SysML2.NET/Core/AutoGenPoco/IAttributeDefinition.cs +++ b/SysML2.NET/Core/AutoGenPoco/IAttributeDefinition.cs @@ -63,9 +63,9 @@ namespace SysML2.NET.Core.POCO.Systems.Attributes /// /// An AttributeDefinition is a Definition and a DataType of information about a quality or /// characteristic of a system or part of a system that has no independent identity other than its - /// value. All features of an AttributeDefinition must be referential (non-composite). - /// As a DataType, an AttributeDefinition must specialize, directly or indirectly, the base - /// DataType Base::DataValue from the Kernel Semantic Library. + /// value. All features of an AttributeDefinition must be referential (non-composite).As a DataType, an + /// AttributeDefinition must specialize, directly or indirectly, the base DataType Base::DataValue from + /// the Kernel Semantic Library. /// [Class(xmiId: "_18_5_3_12e503d9_1565471213468_167708_20650", isAbstract: false, isFinalSpecialization: false, isActive: false)] [GeneratedCode("SysML2.NET", "latest")] diff --git a/SysML2.NET/Core/AutoGenPoco/IAttributeUsage.cs b/SysML2.NET/Core/AutoGenPoco/IAttributeUsage.cs index 3933f906c..6bac0c2aa 100644 --- a/SysML2.NET/Core/AutoGenPoco/IAttributeUsage.cs +++ b/SysML2.NET/Core/AutoGenPoco/IAttributeUsage.cs @@ -65,9 +65,8 @@ namespace SysML2.NET.Core.POCO.Systems.Attributes /// AttributeDefinition, an AttributeUsage is a usage of a AttributeDefinition to represent the value of /// some system quality or characteristic. However, other kinds of kernel DataTypes are also allowed, to /// permit use of DataTypes from the Kernel Model Libraries. An AttributeUsage itself as well as all its - /// nested features must be referential (non-composite). An AttributeUsage must - /// specialize, directly or indirectly, the base Feature Base::dataValues from the Kernel Semantic - /// Library. + /// nested features must be referential (non-composite).An AttributeUsage must specialize, directly or + /// indirectly, the base Feature Base::dataValues from the Kernel Semantic Library. /// [Class(xmiId: "_18_5_3_12e503d9_1565471291545_950196_20762", isAbstract: false, isFinalSpecialization: false, isActive: false)] [GeneratedCode("SysML2.NET", "latest")] diff --git a/SysML2.NET/Core/AutoGenPoco/IClassifier.cs b/SysML2.NET/Core/AutoGenPoco/IClassifier.cs index 6153fa05f..314da1f9d 100644 --- a/SysML2.NET/Core/AutoGenPoco/IClassifier.cs +++ b/SysML2.NET/Core/AutoGenPoco/IClassifier.cs @@ -38,13 +38,12 @@ namespace SysML2.NET.Core.POCO.Core.Classifiers using SysML2.NET.Decorators; /// - /// A Classifier is a Type that classifies:
    - ///
  • Things (in the universe) regardless of how Features relate them. (These are interpreted - /// semantically as sequences of exactly one thing.)
  • How the above - /// things are related by Features. (These are interpreted semantically as sequences of multiple things, - /// such that the last thing in the sequence is also classified by the Classifier. Note that this means - /// that a Classifier modeled as specializing a Feature cannot classify anything.)
  • - ///
+ /// A Classifier is a Type that classifies:
  • Things (in the universe) regardless of how Features + /// relate them. (These are interpreted semantically as sequences of exactly one thing.)
  • How + /// the above things are related by Features. (These are interpreted semantically as sequences of + /// multiple things, such that the last thing in the sequence is also classified by the Classifier. Note + /// that this means that a Classifier modeled as specializing a Feature cannot classify + /// anything.)
///
[Class(xmiId: "_18_5_3_12e503d9_1533160651676_375105_42143", isAbstract: false, isFinalSpecialization: false, isActive: false)] [GeneratedCode("SysML2.NET", "latest")] diff --git a/SysML2.NET/Core/AutoGenPoco/IConcernUsage.cs b/SysML2.NET/Core/AutoGenPoco/IConcernUsage.cs index 66be5c288..b91821d3a 100644 --- a/SysML2.NET/Core/AutoGenPoco/IConcernUsage.cs +++ b/SysML2.NET/Core/AutoGenPoco/IConcernUsage.cs @@ -64,10 +64,10 @@ namespace SysML2.NET.Core.POCO.Systems.Requirements using SysML2.NET.Decorators; /// - /// A ConcernUsage is a Usage of a ConcernDefinition. The ownedStakeholder - /// features of the ConcernUsage shall all subset the ConcernCheck::concernedStakeholders feature. If - /// the ConcernUsage is an ownedFeature of a StakeholderDefinition or StakeholderUsage, then the - /// ConcernUsage shall have an ownedStakeholder feature that is bound to the self feature of its owner. + /// A ConcernUsage is a Usage of a ConcernDefinition. The ownedStakeholder features of the ConcernUsage + /// shall all subset the ConcernCheck::concernedStakeholders feature. If the ConcernUsage is an + /// ownedFeature of a StakeholderDefinition or StakeholderUsage, then the ConcernUsage shall have an + /// ownedStakeholder feature that is bound to the self feature of its owner. /// [Class(xmiId: "_19_0_4_12e503d9_1617051561652_163085_1288", isAbstract: false, isFinalSpecialization: false, isActive: false)] [GeneratedCode("SysML2.NET", "latest")] diff --git a/SysML2.NET/Core/AutoGenPoco/IConjugation.cs b/SysML2.NET/Core/AutoGenPoco/IConjugation.cs index 04f5ad884..746b5058d 100644 --- a/SysML2.NET/Core/AutoGenPoco/IConjugation.cs +++ b/SysML2.NET/Core/AutoGenPoco/IConjugation.cs @@ -39,9 +39,9 @@ namespace SysML2.NET.Core.POCO.Core.Types /// with a direction in relative to the originalType are considered to have an effective direction of /// out relative to the conjugatedType and, similarly, Features with direction out in the originalType /// are considered to have an effective direction of in in the conjugatedType. Features with direction - /// inout, or with no direction, in the originalType, are inherited without change. - /// A Type may participate as a conjugatedType in at most one Conjugation relationship, and such a - /// Type may not also be the specific Type in any Specialization relationship. + /// inout, or with no direction, in the originalType, are inherited without change.A Type may + /// participate as a conjugatedType in at most one Conjugation relationship, and such a Type may not + /// also be the specific Type in any Specialization relationship. /// [Class(xmiId: "_19_0_2_12e503d9_1575482328287_696279_181", isAbstract: false, isFinalSpecialization: false, isActive: false)] [GeneratedCode("SysML2.NET", "latest")] diff --git a/SysML2.NET/Core/AutoGenPoco/IConnectorAsUsage.cs b/SysML2.NET/Core/AutoGenPoco/IConnectorAsUsage.cs index 01464b568..26c6cfb11 100644 --- a/SysML2.NET/Core/AutoGenPoco/IConnectorAsUsage.cs +++ b/SysML2.NET/Core/AutoGenPoco/IConnectorAsUsage.cs @@ -64,7 +64,7 @@ namespace SysML2.NET.Core.POCO.Systems.Connections /// /// A ConnectorAsUsage is both a Connector and a Usage. ConnectorAsUsage cannot itself be instantiated /// in a SysML model, but it is a base class for the concrete classes BindingConnectorAsUsage, - /// SuccessionAsUsage, ConnectionUsage and FlowConnectionUsage. + /// SuccessionAsUsage, ConnectionUsage and FlowUsage. /// [Class(xmiId: "_19_0_4_12e503d9_1624053320057_820842_471", isAbstract: true, isFinalSpecialization: false, isActive: false)] [GeneratedCode("SysML2.NET", "latest")] diff --git a/SysML2.NET/Core/AutoGenPoco/ICrossSubsetting.cs b/SysML2.NET/Core/AutoGenPoco/ICrossSubsetting.cs index a731d5338..6700f86f3 100644 --- a/SysML2.NET/Core/AutoGenPoco/ICrossSubsetting.cs +++ b/SysML2.NET/Core/AutoGenPoco/ICrossSubsetting.cs @@ -38,18 +38,17 @@ namespace SysML2.NET.Core.POCO.Core.Features /// CrossSubsetting is a kind of Subsetting for end Features, as identified by crossingFeature, to /// subset a chained Feature, identified by crossedFeature. It navigates to instances of the end /// Feature’s type from instances of other end Feature types on the same owningType (at least two end - /// Features are required for any of them to have a CrossSubsetting). The - /// crossedFeature of a CrossSubsetting must have a feature chain of exactly two Features. The second - /// Feature in the chain is the crossFeature of the crossingFeature (end Feature), which has the same - /// type as the crossingFeature. When the owningType of the crossingFeature has exactly two end - /// Features, the first Feature in the chain of the crossedFeature is the other end Feature. The - /// crossFeature’s featuringType in this case is the other end Feature. When the owningType has more - /// than two end Features, the first Feature in the chain is a Feature that CrossMultiplies all the - /// other end Features, which is also the featuringType of the crossFeature. A - /// crossFeature must be owned by its featureCrossing (end Feature) when the featureCrossing owningType - /// has more than two end Features. Otherwise, for exactly two end Features, the crossFeatures of each - /// the ends can instead optionally be inherited by the other end from one of its types or a subsetted - /// Feature. + /// Features are required for any of them to have a CrossSubsetting).The crossedFeature of a + /// CrossSubsetting must have a feature chain of exactly two Features. The second Feature in the chain + /// is the crossFeature of the crossingFeature (end Feature), which has the same type as the + /// crossingFeature. When the owningType of the crossingFeature has exactly two end Features, the first + /// Feature in the chain of the crossedFeature is the other end Feature. The crossFeature’s + /// featuringType in this case is the other end Feature. When the owningType has more than two end + /// Features, the first Feature in the chain is a Feature that CrossMultiplies all the other end + /// Features, which is also the featuringType of the crossFeature.A crossFeature must be owned by its + /// featureCrossing (end Feature) when the featureCrossing owningType has more than two end Features. + /// Otherwise, for exactly two end Features, the crossFeatures of each the ends can instead optionally + /// be inherited by the other end from one of its types or a subsetted Feature. /// [Class(xmiId: "_19_0_4_b9102da_1689616180239_998062_127", isAbstract: false, isFinalSpecialization: false, isActive: false)] [GeneratedCode("SysML2.NET", "latest")] diff --git a/SysML2.NET/Core/AutoGenPoco/IDataType.cs b/SysML2.NET/Core/AutoGenPoco/IDataType.cs index 7bb0c38c1..7d7cca209 100644 --- a/SysML2.NET/Core/AutoGenPoco/IDataType.cs +++ b/SysML2.NET/Core/AutoGenPoco/IDataType.cs @@ -41,11 +41,10 @@ namespace SysML2.NET.Core.POCO.Kernel.DataTypes /// /// A DataType is a Classifier of things (in the universe) that can only be distinguished by how they /// are related to other things (via Features). This means multiple things classified by the same - /// DataType
  • Cannot be distinguished when they - /// are related to other things in exactly the same way, even when they are intended to be about - /// different things.
  • Can be distinguished when they are related to - /// other things in different ways, even when they are intended to be about the same thing.
  • - ///
+ /// DataType
  • Cannot be distinguished when they are related to other things in exactly the same + /// way, even when they are intended to be about different things.
  • Can be distinguished when + /// they are related to other things in different ways, even when they are intended to be about the same + /// thing.
///
[Class(xmiId: "_18_5_3_12e503d9_1557527599533_240072_110321", isAbstract: false, isFinalSpecialization: false, isActive: false)] [GeneratedCode("SysML2.NET", "latest")] diff --git a/SysML2.NET/Core/AutoGenPoco/IDefinition.cs b/SysML2.NET/Core/AutoGenPoco/IDefinition.cs index 727c1147c..247d09e52 100644 --- a/SysML2.NET/Core/AutoGenPoco/IDefinition.cs +++ b/SysML2.NET/Core/AutoGenPoco/IDefinition.cs @@ -61,15 +61,15 @@ namespace SysML2.NET.Core.POCO.Systems.DefinitionAndUsage /// /// 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 + /// 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. + /// 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. /// [Class(xmiId: "_18_5_3_12e503d9_1565479032244_336549_22524", isAbstract: false, isFinalSpecialization: false, isActive: false)] [GeneratedCode("SysML2.NET", "latest")] @@ -183,7 +183,7 @@ public partial interface IDefinition : IClassifier List ownedItem { get; } /// - /// The MetadataUsages that are ownedUsages of this Definition. + /// The MetadataUsages that are ownedMembers of this Definition. /// [Property(xmiId: "_19_0_4_12e503d9_1661488358064_457109_2881", aggregation: AggregationKind.None, lowerValue: 0, upperValue: int.MaxValue, isOrdered: true, isReadOnly: false, isDerived: true, isDerivedUnion: false, isUnique: true, defaultValue: null)] [SubsettedProperty(propertyName: "_19_0_2_12e503d9_1591482567975_649284_3005")] diff --git a/SysML2.NET/Core/AutoGenPoco/IDependency.cs b/SysML2.NET/Core/AutoGenPoco/IDependency.cs index e87f0c049..cba60dec1 100644 --- a/SysML2.NET/Core/AutoGenPoco/IDependency.cs +++ b/SysML2.NET/Core/AutoGenPoco/IDependency.cs @@ -36,9 +36,8 @@ namespace SysML2.NET.Core.POCO.Root.Dependencies /// /// A Dependency is a Relationship that indicates that one or more client Elements require one more /// supplier Elements for their complete specification. In general, this means that a change to one of - /// the supplier Elements may necessitate a change to, or re-specification of, the client Elements. - /// Note that a Dependency is entirely a model-level Relationship, without - /// instance-level semantics. + /// the supplier Elements may necessitate a change to, or re-specification of, the client Elements.Note + /// that a Dependency is entirely a model-level Relationship, without instance-level semantics. /// [Class(xmiId: "_19_0_2_12e503d9_1594006219028_628649_74", isAbstract: false, isFinalSpecialization: false, isActive: false)] [GeneratedCode("SysML2.NET", "latest")] diff --git a/SysML2.NET/Core/AutoGenPoco/IElement.cs b/SysML2.NET/Core/AutoGenPoco/IElement.cs index a9dc7220c..2a6a73b51 100644 --- a/SysML2.NET/Core/AutoGenPoco/IElement.cs +++ b/SysML2.NET/Core/AutoGenPoco/IElement.cs @@ -226,8 +226,8 @@ public partial interface IElement /// an owningRelationship, then return the string constructed by appending to the path of it's /// owningRelationship the character / followed by the string representation of its position in the list /// of ownedRelatedElements of the owningRelationship (indexed starting at 1). Otherwise, return the - /// empty string. (Note that this operation is overridden for Relationships - /// to use owningRelatedElement when appropriate.) + /// empty string.(Note that this operation is overridden for Relationships to use owningRelatedElement + /// when appropriate.) /// /// /// The expected diff --git a/SysML2.NET/Core/AutoGenPoco/IEventOccurrenceUsage.cs b/SysML2.NET/Core/AutoGenPoco/IEventOccurrenceUsage.cs index 37b889e8c..28a54dc23 100644 --- a/SysML2.NET/Core/AutoGenPoco/IEventOccurrenceUsage.cs +++ b/SysML2.NET/Core/AutoGenPoco/IEventOccurrenceUsage.cs @@ -65,9 +65,9 @@ namespace SysML2.NET.Core.POCO.Systems.Occurrences /// An EventOccurrenceUsage is an OccurrenceUsage that represents another OccurrenceUsage occurring as a /// suboccurrence of the containing occurrence of the EventOccurrenceUsage. Unless it is the /// EventOccurrenceUsage itself, the referenced OccurrenceUsage is related to the EventOccurrenceUsage - /// by a ReferenceSubsetting Relationship. If the EventOccurrenceUsage is owned - /// by an OccurrenceDefinition or OccurrenceUsage, then it also subsets the timeEnclosedOccurrences - /// property of the Class Occurrence from the Kernel Semantic Library model Occurrences. + /// by a ReferenceSubsetting Relationship.If the EventOccurrenceUsage is owned by an + /// OccurrenceDefinition or OccurrenceUsage, then it also subsets the timeEnclosedOccurrences property + /// of the Class Occurrence from the Kernel Semantic Library model Occurrences. /// [Class(xmiId: "_19_0_4_12e503d9_1622831611763_442921_132", isAbstract: false, isFinalSpecialization: false, isActive: false)] [GeneratedCode("SysML2.NET", "latest")] diff --git a/SysML2.NET/Core/AutoGenPoco/IExpression.cs b/SysML2.NET/Core/AutoGenPoco/IExpression.cs index b3cc1e279..aab59e209 100644 --- a/SysML2.NET/Core/AutoGenPoco/IExpression.cs +++ b/SysML2.NET/Core/AutoGenPoco/IExpression.cs @@ -77,11 +77,11 @@ public partial interface IExpression : IStep /// Return whether this Expression is model-level evaluable. The visited parameter is used to track /// possible circular Feature references made from FeatureReferenceExpressions (see the redefinition of /// this operation for FeatureReferenceExpression). Such circular references are not allowed in - /// model-level evaluable expressions. An Expression that is not otherwise - /// specialized is model-level evaluable if it has no (non-implied) ownedSpecializations and all its - /// ownedFeatures are either in parameters, the result parameter or a result Expression owned via a - /// ResultExpressionMembership. The parameters must not have any ownedFeatures or a FeatureValue, and - /// the result Expression must be model-level evaluable. + /// model-level evaluable expressions.An Expression that is not otherwise specialized is model-level + /// evaluable if it has no (non-implied) ownedSpecializations and all its ownedFeatures are either in + /// parameters, the result parameter or a result Expression owned via a ResultExpressionMembership. The + /// parameters must not have any ownedFeatures or a FeatureValue, and the result Expression must be + /// model-level evaluable. /// /// /// No documentation provided diff --git a/SysML2.NET/Core/AutoGenPoco/IFeature.cs b/SysML2.NET/Core/AutoGenPoco/IFeature.cs index 4b6992716..93ef72b1e 100644 --- a/SysML2.NET/Core/AutoGenPoco/IFeature.cs +++ b/SysML2.NET/Core/AutoGenPoco/IFeature.cs @@ -40,19 +40,18 @@ namespace SysML2.NET.Core.POCO.Core.Features /// A Feature is a Type that classifies relations between multiple things (in the universe). The domain /// of the relation is the intersection of the featuringTypes of the Feature. (The domain of a Feature /// with no featuringTyps is implicitly the most general Type Base::Anything from the Kernel Semantic - /// Library.) The co-domain of the relation is the intersection of the types of the Feature. - /// In the simplest cases, the featuringTypes and types are Classifiers and the Feature - /// relates two things, one from the domain and one from the range. Examples include cars paired with - /// wheels, people paired with other people, and cars paired with numbers representing the car length. - /// Since Features are Types, their featuringTypes and types can be Features. In - /// this case, the Feature effectively classifies relations between relations, which can be interpreted - /// as the sequence of things related by the domain Feature concatenated with the sequence of things - /// related by the co-domain Feature. The values of a Feature for a given - /// instance of its domain are all the instances of its co-domain that are related to that domain - /// instance by the Feature. The values of a Feature with chainingFeatures are the same as values of the - /// last Feature in the chain, which can be found by starting with values of the first Feature, then - /// using those values as domain instances to obtain valus of the second Feature, and so on, to values - /// of the last Feature. + /// Library.) The co-domain of the relation is the intersection of the types of the Feature.In the + /// simplest cases, the featuringTypes and types are Classifiers and the Feature relates two things, one + /// from the domain and one from the range. Examples include cars paired with wheels, people paired with + /// other people, and cars paired with numbers representing the car length.Since Features are Types, + /// their featuringTypes and types can be Features. In this case, the Feature effectively classifies + /// relations between relations, which can be interpreted as the sequence of things related by the + /// domain Feature concatenated with the sequence of things related by the co-domain Feature.The values + /// of a Feature for a given instance of its domain are all the instances of its co-domain that are + /// related to that domain instance by the Feature. The values of a Feature with chainingFeatures are + /// the same as values of the last Feature in the chain, which can be found by starting with values of + /// the first Feature, then using those values as domain instances to obtain valus of the second + /// Feature, and so on, to values of the last Feature. /// [Class(xmiId: "_18_5_3_12e503d9_1533160651684_893483_42160", isAbstract: false, isFinalSpecialization: false, isActive: false)] [GeneratedCode("SysML2.NET", "latest")] @@ -284,9 +283,8 @@ public partial interface IFeature : IType new string EffectiveShortName(); /// - /// If a Feature has no declaredName or declaredShortName , then its - /// effective name is given by the effective name of the Feature returned by the namingFeature() - /// operation, if any. + /// If a Feature has no declaredName or declaredShortName, then its effective name is given by the + /// effective name of the Feature returned by the namingFeature() operation, if any. /// /// /// The expected @@ -352,11 +350,10 @@ public partial interface IFeature : IType /// /// A Feature is compatible with an otherType if it either directly or indirectly specializes the - /// otherType or if the otherType is also a Feature and all of the following are true. - ///
  1. Neither this Feature or the otherType have any - /// ownedFeatures.
  2. This Feature directly or indirectly redefines a - /// Feature that is also directly or indirectly redefined by the otherType.
  3. - ///
  4. This Feature can access the otherType.
+ /// otherType or if the otherType is also a Feature and all of the following are true.
  1. Neither + /// this Feature or the otherType have any ownedFeatures.
  2. This Feature directly or indirectly + /// redefines a Feature that is also directly or indirectly redefined by the otherType.
  3. This + /// Feature can access the otherType.
///
/// /// No documentation provided @@ -370,11 +367,11 @@ public partial interface IFeature : IType /// Return the Features used to determine the types of this Feature (other than this Feature itself). If /// this Feature is not conjugated, then the typingFeatures consist of all subsetted Features, except /// from CrossSubsetting, and the last chainingFeature (if any). If this Feature is conjugated, then the - /// typingFeatures are only its originalType (if the originalType is a Feature). - /// Note. CrossSubsetting is excluded from the determination of the type of a - /// Feature in order to avoid circularity in the construction of implied CrossSubsetting relationships. - /// The validateFeatureCrossFeatureType requires that the crossFeature of a Feature have the same type - /// as the Feature. + /// typingFeatures are only its originalType (if the originalType is a Feature).Note. + /// CrossSubsetting is excluded from the determination of the type of a Feature in order to avoid + /// circularity in the construction of implied CrossSubsetting relationships. The + /// validateFeatureCrossFeatureType requires that the crossFeature of a Feature have the same type as + /// the Feature. /// /// /// The expected collection of diff --git a/SysML2.NET/Core/AutoGenPoco/IFeatureReferenceExpression.cs b/SysML2.NET/Core/AutoGenPoco/IFeatureReferenceExpression.cs index 8a96a053e..c5aae52a9 100644 --- a/SysML2.NET/Core/AutoGenPoco/IFeatureReferenceExpression.cs +++ b/SysML2.NET/Core/AutoGenPoco/IFeatureReferenceExpression.cs @@ -55,12 +55,11 @@ public partial interface IFeatureReferenceExpression : IExpression IFeature referent { get; } /// - /// A FeatureReferenceExpression is model-level evaluable if it's referent - ///
  • conforms to the self-reference feature Anything::self;
  • - ///
  • is an Expression that is model-level evaluable;
  • - ///
  • has an owningType that is a Metaclass or MetadataFeature; or
  • - ///
  • has no featuringTypes and, if it has a FeatureValue, the value Expression is model-level - /// evaluable.
+ /// A FeatureReferenceExpression is model-level evaluable if it's referent
  • conforms to the + /// self-reference feature Anything::self;
  • is an Expression that is model-level + /// evaluable;
  • has an owningType that is a Metaclass or MetadataFeature; or
  • has no + /// featuringTypes and, if it has a FeatureValue, the value Expression is model-level + /// evaluable.
///
/// /// No documentation provided @@ -71,15 +70,13 @@ public partial interface IFeatureReferenceExpression : IExpression new bool ModelLevelEvaluable(List visited); /// - /// First, determine a value Expression for the referent:
    - ///
  • If the target Element is a Type that has a feature that is the referent or (directly - /// or indirectly) redefines it, then the value Expression of the FeatureValue for that feature (if - /// any).
  • Else, if the referent has no featuringTypes, the value - /// Expression of the FeatureValue for the referent (if any).
- /// Then:
  • If such a - /// value Expression exists, return the result of evaluating that Expression on the target.
  • - ///
  • Else, if the referent is not an Expression, return the referent.
  • - ///
  • Else return the empty sequence.
+ /// First, determine a value Expression for the referent:
  • If the target Element is a Type that + /// has a feature that is the referent or (directly or indirectly) redefines it, then the value + /// Expression of the FeatureValue for that feature (if any).
  • Else, if the referent has no + /// featuringTypes, the value Expression of the FeatureValue for the referent (if + /// any).
Then:
  • If such a value Expression exists, return the result of evaluating that + /// Expression on the target.
  • Else, if the referent is not an Expression, return the + /// referent.
  • Else return the empty sequence.
///
/// /// No documentation provided diff --git a/SysML2.NET/Core/AutoGenPoco/IFeatureValue.cs b/SysML2.NET/Core/AutoGenPoco/IFeatureValue.cs index 3b4aa5d15..9d5f3e3c9 100644 --- a/SysML2.NET/Core/AutoGenPoco/IFeatureValue.cs +++ b/SysML2.NET/Core/AutoGenPoco/IFeatureValue.cs @@ -40,14 +40,13 @@ namespace SysML2.NET.Core.POCO.Kernel.FeatureValues /// A FeatureValue is a Membership that identifies a particular member Expression that provides the /// value of the Feature that owns the FeatureValue. The value is specified as either a bound value or /// an initial value, and as either a concrete or default value. A Feature can have at most one - /// FeatureValue. The result of the value Expression is bound to the - /// featureWithValue using a BindingConnector. If isInitial = false, then the featuringType of the - /// BindingConnector is the same as the featuringType of the featureWithValue. If isInitial = true, then - /// the featuringType of the BindingConnector is restricted to its startShot. If - /// isDefault = false, then the above semantics of the FeatureValue are realized for the given - /// featureWithValue. Otherwise, the semantics are realized for any individual of the featuringType of - /// the featureWithValue, unless another value is explicitly given for the featureWithValue for that - /// individual. + /// FeatureValue.The result of the value Expression is bound to the featureWithValue using a + /// BindingConnector. If isInitial = false, then the featuringType of the BindingConnector is the same + /// as the featuringType of the featureWithValue. If isInitial = true, then the featuringType of the + /// BindingConnector is restricted to its startShot.If isDefault = false, then the above semantics of + /// the FeatureValue are realized for the given featureWithValue. Otherwise, the semantics are realized + /// for any individual of the featuringType of the featureWithValue, unless another value is explicitly + /// given for the featureWithValue for that individual. /// [Class(xmiId: "_18_5_3_12e503d9_1543180279304_499907_20659", isAbstract: false, isFinalSpecialization: false, isActive: false)] [GeneratedCode("SysML2.NET", "latest")] diff --git a/SysML2.NET/Core/AutoGenPoco/IFunction.cs b/SysML2.NET/Core/AutoGenPoco/IFunction.cs index 23ebc8274..8fb68c5d8 100644 --- a/SysML2.NET/Core/AutoGenPoco/IFunction.cs +++ b/SysML2.NET/Core/AutoGenPoco/IFunction.cs @@ -58,9 +58,9 @@ public partial interface IFunction : IBehavior /// /// Whether this Function can be used as the function of a model-level evaluable InvocationExpression. /// Certain Functions from the Kernel Functions Library are considered to have isModelLevelEvaluable = - /// true. For all other Functions it is false. Note: See the - /// specification of the KerML concrete syntax notation for Expressions for an identification of which - /// library Functions are model-level evaluable. + /// true. For all other Functions it is false.Note: See the specification of the KerML + /// concrete syntax notation for Expressions for an identification of which library Functions are + /// model-level evaluable. /// [Property(xmiId: "_19_0_4_12e503d9_1617395221463_139517_26381", aggregation: AggregationKind.None, lowerValue: 1, upperValue: 1, isOrdered: false, isReadOnly: false, isDerived: true, isDerivedUnion: false, isUnique: true, defaultValue: null)] bool isModelLevelEvaluable { get; } diff --git a/SysML2.NET/Core/AutoGenPoco/IInstantiationExpression.cs b/SysML2.NET/Core/AutoGenPoco/IInstantiationExpression.cs index 92a2aae36..4b3e0b2b9 100644 --- a/SysML2.NET/Core/AutoGenPoco/IInstantiationExpression.cs +++ b/SysML2.NET/Core/AutoGenPoco/IInstantiationExpression.cs @@ -41,9 +41,8 @@ namespace SysML2.NET.Core.POCO.Kernel.Expressions /// /// An InstantiationExpression is an Expression that instantiates its instantiatedType, binding some or - /// all of the features of that Type to the results of its arguments. - /// InstantiationExpression is abstract, with concrete subclasses InvocationExpression and - /// ConstructorExpression. + /// all of the features of that Type to the results of its arguments.InstantiationExpression is + /// abstract, with concrete subclasses InvocationExpression and ConstructorExpression. /// [Class(xmiId: "_2022x_2_12e503d9_1739136879941_579104_183", isAbstract: true, isFinalSpecialization: false, isActive: false)] [GeneratedCode("SysML2.NET", "latest")] @@ -52,8 +51,8 @@ public partial interface IInstantiationExpression : IExpression /// /// The Expressions whose results are bound to features of the instantiatedType. The arguments are /// ordered consistent with the order of the features, though they may not be one-to-one with all the - /// features. Note. The derivation of argument is given in - /// the concrete subclasses of InstantiationExpression. + /// features.Note. The derivation of argument is given in the concrete subclasses of + /// InstantiationExpression. /// [Property(xmiId: "_2022x_2_12e503d9_1739134437590_328753_108", aggregation: AggregationKind.None, lowerValue: 0, upperValue: int.MaxValue, isOrdered: true, isReadOnly: false, isDerived: true, isDerivedUnion: false, isUnique: true, defaultValue: null)] List argument { get; } @@ -68,8 +67,7 @@ public partial interface IInstantiationExpression : IExpression /// /// Return the Type to act as the instantiatedType for this InstantiationExpression. By default, this is /// the memberElement of the first ownedMembership that is not a FeatureMembership, which must be a - /// Type. Note. This operation is overridden in the subclass - /// OperatorExpression. + /// Type.Note. This operation is overridden in the subclass OperatorExpression. /// /// /// The expected diff --git a/SysML2.NET/Core/AutoGenPoco/IInteraction.cs b/SysML2.NET/Core/AutoGenPoco/IInteraction.cs index 1c5871d6a..f9c1606df 100644 --- a/SysML2.NET/Core/AutoGenPoco/IInteraction.cs +++ b/SysML2.NET/Core/AutoGenPoco/IInteraction.cs @@ -46,7 +46,7 @@ namespace SysML2.NET.Core.POCO.Kernel.Interactions /// [Class(xmiId: "_18_5_3_b9102da_1536782424772_574530_21292", isAbstract: false, isFinalSpecialization: false, isActive: false)] [GeneratedCode("SysML2.NET", "latest")] - public partial interface IInteraction : IAssociation, IBehavior + public partial interface IInteraction : IBehavior, IAssociation { } } diff --git a/SysML2.NET/Core/AutoGenPoco/IItemUsage.cs b/SysML2.NET/Core/AutoGenPoco/IItemUsage.cs index 125a4158a..a578dd916 100644 --- a/SysML2.NET/Core/AutoGenPoco/IItemUsage.cs +++ b/SysML2.NET/Core/AutoGenPoco/IItemUsage.cs @@ -63,9 +63,9 @@ namespace SysML2.NET.Core.POCO.Systems.Items using SysML2.NET.Decorators; /// - /// An ItemUsage is a ItemUsage whose definition is a Structure. Nominally, if the definition is an - /// ItemDefinition, an ItemUsage is a ItemUsage of that ItemDefinition within a system. However, other - /// kinds of Kernel Structures are also allowed, to permit use of Structures from the Kernel Model + /// An ItemUsage is an OccurrenceUsage whose definition is a Structure. Nominally, if the definition is + /// an ItemDefinition, an ItemUsage is a ItemUsage of that ItemDefinition within a system. However, + /// other kinds of Kernel Structures are also allowed, to permit use of Structures from the Kernel Model /// Libraries. /// [Class(xmiId: "_18_5_3_12e503d9_1565480460114_846184_24270", isAbstract: false, isFinalSpecialization: false, isActive: false)] diff --git a/SysML2.NET/Core/AutoGenPoco/IMembership.cs b/SysML2.NET/Core/AutoGenPoco/IMembership.cs index be70eab87..c020452ed 100644 --- a/SysML2.NET/Core/AutoGenPoco/IMembership.cs +++ b/SysML2.NET/Core/AutoGenPoco/IMembership.cs @@ -37,11 +37,10 @@ namespace SysML2.NET.Core.POCO.Root.Namespaces /// A Membership is a Relationship between a Namespace and an Element that indicates the Element is a /// member of (i.e., is contained in) the Namespace. Any memberNames specify how the memberElement is /// identified in the Namespace and the visibility specifies whether or not the memberElement is - /// publicly visible from outside the Namespace. If a Membership is an - /// OwningMembership, then it owns its memberElement, which becomes an ownedMember of the - /// membershipOwningNamespace. Otherwise, the memberNames of a Membership are effectively aliases within - /// the membershipOwningNamespace for an Element with a separate OwningMembership in the same or a - /// different Namespace. + /// publicly visible from outside the Namespace.If a Membership is an OwningMembership, then it owns its + /// memberElement, which becomes an ownedMember of the membershipOwningNamespace. Otherwise, the + /// memberNames of a Membership are effectively aliases within the membershipOwningNamespace for an + /// Element with a separate OwningMembership in the same or a different Namespace. /// [Class(xmiId: "_18_5_3_12e503d9_1533160651680_888716_42152", isAbstract: false, isFinalSpecialization: false, isActive: false)] [GeneratedCode("SysML2.NET", "latest")] diff --git a/SysML2.NET/Core/AutoGenPoco/IMultiplicity.cs b/SysML2.NET/Core/AutoGenPoco/IMultiplicity.cs index 19618467c..df5a2dc10 100644 --- a/SysML2.NET/Core/AutoGenPoco/IMultiplicity.cs +++ b/SysML2.NET/Core/AutoGenPoco/IMultiplicity.cs @@ -39,16 +39,15 @@ namespace SysML2.NET.Core.POCO.Core.Types /// /// A Multiplicity is a Feature whose co-domain is a set of natural numbers giving the allowed /// cardinalities of each typeWithMultiplicity. The cardinality of a Type is defined as follows, - /// depending on whether the Type is a Classifier or Feature.
    - ///
  • Classifier – The number of basic instances of the Classifier, that is, those instances - /// representing things, which are not instances of any subtypes of the Classifier that are Features. - ///
  • Features – The number of instances with the same featuring instances. In the - /// case of a Feature with a Classifier as its featuringType, this is the number of values of Feature - /// for each basic instance of the Classifier. Note that, for non-unique Features, all duplicate values - /// are included in this count.
Multiplicity - /// co-domains (in models) can be specified by Expression that might vary in their results. If the - /// typeWithMultiplicity is a Classifier, the domain of the Multiplicity shall be Base::Anything. If - /// the typeWithMultiplicity is a Feature, the Multiplicity shall have the same domain as the + /// depending on whether the Type is a Classifier or Feature.
  • Classifier – The number of basic + /// instances of the Classifier, that is, those instances representing things, which are not instances + /// of any subtypes of the Classifier that are Features.
  • Features – The number of instances with the + /// same featuring instances. In the case of a Feature with a Classifier as its featuringType, this is + /// the number of values of Feature for each basic instance of the Classifier. Note that, for non-unique + /// Features, all duplicate values are included in this count.
Multiplicity co-domains (in + /// models) can be specified by Expression that might vary in their results. If the typeWithMultiplicity + /// is a Classifier, the domain of the Multiplicity shall be Base::Anything. If the + /// typeWithMultiplicity is a Feature, the Multiplicity shall have the same domain as the /// typeWithMultiplicity. ///
[Class(xmiId: "_19_0_2_12e503d9_1573083797505_495205_3879", isAbstract: false, isFinalSpecialization: false, isActive: false)] diff --git a/SysML2.NET/Core/AutoGenPoco/INamespace.cs b/SysML2.NET/Core/AutoGenPoco/INamespace.cs index 8a81fd519..29f18e30a 100644 --- a/SysML2.NET/Core/AutoGenPoco/INamespace.cs +++ b/SysML2.NET/Core/AutoGenPoco/INamespace.cs @@ -36,14 +36,13 @@ namespace SysML2.NET.Core.POCO.Root.Namespaces /// /// A Namespace is an Element that contains other Elements, known as its members, via Membership /// Relationships with those Elements. The members of a Namespace may be owned by the Namespace, aliased - /// in the Namespace, or imported into the Namespace via Import Relationships. A - /// Namespace can provide names for its members via the memberNames and memberShortNames specified by - /// the Memberships in the Namespace. If a Membership specifies a memberName and/or memberShortName, - /// then those are names of the corresponding memberElement relative to the Namespace. For an - /// OwningMembership, the ownedMemberName and ownedMemberShortName are given by the Element name and - /// shortName. Note that the same Element may be the memberElement of multiple Memberships in a - /// Namespace (though it may be owned at most once), each of which may define a separate alias for the - /// Element relative to the Namespace. + /// in the Namespace, or imported into the Namespace via Import Relationships.A Namespace can provide + /// names for its members via the memberNames and memberShortNames specified by the Memberships in the + /// Namespace. If a Membership specifies a memberName and/or memberShortName, then those are names of + /// the corresponding memberElement relative to the Namespace. For an OwningMembership, the + /// ownedMemberName and ownedMemberShortName are given by the Element name and shortName. Note that the + /// same Element may be the memberElement of multiple Memberships in a Namespace (though it may be owned + /// at most once), each of which may define a separate alias for the Element relative to the Namespace. /// [Class(xmiId: "_18_5_3_12e503d9_1533160651694_110063_42176", isAbstract: false, isFinalSpecialization: false, isActive: false)] [GeneratedCode("SysML2.NET", "latest")] diff --git a/SysML2.NET/Core/AutoGenPoco/IPartUsage.cs b/SysML2.NET/Core/AutoGenPoco/IPartUsage.cs index 55e1514ac..0e2716df7 100644 --- a/SysML2.NET/Core/AutoGenPoco/IPartUsage.cs +++ b/SysML2.NET/Core/AutoGenPoco/IPartUsage.cs @@ -64,8 +64,8 @@ namespace SysML2.NET.Core.POCO.Systems.Parts /// /// A PartUsage is a usage of a PartDefinition to represent a system or a part of a system. At least one - /// of the itemDefinitions of the PartUsage must be a PartDefinition. A PartUsage - /// must subset, directly or indirectly, the base PartUsage parts from the Systems Model Library. + /// of the itemDefinitions of the PartUsage must be a PartDefinition.A PartUsage must subset, directly + /// or indirectly, the base PartUsage parts from the Systems Model Library. /// [Class(xmiId: "_18_5_3_12e503d9_1565471239590_312157_20701", isAbstract: false, isFinalSpecialization: false, isActive: false)] [GeneratedCode("SysML2.NET", "latest")] diff --git a/SysML2.NET/Core/AutoGenPoco/IPortDefinition.cs b/SysML2.NET/Core/AutoGenPoco/IPortDefinition.cs index 22fab7748..7ef3912cb 100644 --- a/SysML2.NET/Core/AutoGenPoco/IPortDefinition.cs +++ b/SysML2.NET/Core/AutoGenPoco/IPortDefinition.cs @@ -70,7 +70,7 @@ namespace SysML2.NET.Core.POCO.Systems.Ports public partial interface IPortDefinition : IOccurrenceDefinition, IStructure { /// - /// The <> that is conjugate to this PortDefinition. + /// The ConjugatedPortDefinition that is conjugate to this PortDefinition. /// [Property(xmiId: "_19_0_2_12e503d9_1575484364015_206236_989", aggregation: AggregationKind.None, lowerValue: 0, upperValue: 1, isOrdered: false, isReadOnly: false, isDerived: true, isDerivedUnion: false, isUnique: true, defaultValue: null)] [SubsettedProperty(propertyName: "_18_5_3_12e503d9_1533160674979_259543_43268")] diff --git a/SysML2.NET/Core/AutoGenPoco/IReferenceSubsetting.cs b/SysML2.NET/Core/AutoGenPoco/IReferenceSubsetting.cs index cab932ed9..ca88ac672 100644 --- a/SysML2.NET/Core/AutoGenPoco/IReferenceSubsetting.cs +++ b/SysML2.NET/Core/AutoGenPoco/IReferenceSubsetting.cs @@ -39,8 +39,8 @@ namespace SysML2.NET.Core.POCO.Core.Features /// distinguished from other Features subsetted by the referencingFeature. ReferenceSubsetting has the /// same semantics as Subsetting, but the referencedFeature may have a special purpose relative to the /// referencingFeature. For instance, ReferenceSubsetting is used to identify the relatedFeatures of a - /// Connector. ReferenceSubsetting is always an ownedRelationship of its - /// referencingFeature. A Feature can have at most one ownedReferenceSubsetting. + /// Connector.ReferenceSubsetting is always an ownedRelationship of its referencingFeature. A Feature + /// can have at most one ownedReferenceSubsetting. /// [Class(xmiId: "_19_0_4_12e503d9_1661554793960_500657_60", isAbstract: false, isFinalSpecialization: false, isActive: false)] [GeneratedCode("SysML2.NET", "latest")] diff --git a/SysML2.NET/Core/AutoGenPoco/IRelationship.cs b/SysML2.NET/Core/AutoGenPoco/IRelationship.cs index c86cf9f64..dae6019c6 100644 --- a/SysML2.NET/Core/AutoGenPoco/IRelationship.cs +++ b/SysML2.NET/Core/AutoGenPoco/IRelationship.cs @@ -37,14 +37,14 @@ namespace SysML2.NET.Core.POCO.Root.Elements /// in which case those ownedRelatedElements will be deleted from a model if their owningRelationship /// is. A Relationship may also be owned by another Element, in which case the ownedRelatedElements of /// the Relationship are also considered to be transitively owned by the owningRelatedElement of the - /// Relationship. The relatedElements of a Relationship are divided into source - /// and target Elements. The Relationship is considered to be directed from the source to the target - /// Elements. An undirected Relationship may have either all source or all target Elements. - /// A "relationship Element" in the abstract syntax is generically any Element that - /// is an instance of either Relationship or a direct or indirect specialization of Relationship. Any - /// other kind of Element is a "non-relationship Element". It is a convention of that - /// non-relationship Elements are only related via reified relationship Elements. Any meta-associations - /// directly between non-relationship Elements must be derived from underlying reified Relationship. + /// Relationship.The relatedElements of a Relationship are divided into source and target Elements. The + /// Relationship is considered to be directed from the source to the target Elements. An undirected + /// Relationship may have either all source or all target Elements.A "relationship Element" in + /// the abstract syntax is generically any Element that is an instance of either Relationship or a + /// direct or indirect specialization of Relationship. Any other kind of Element is a + /// "non-relationship Element". It is a convention of that non-relationship Elements are only + /// related via reified relationship Elements. Any meta-associations directly between non-relationship + /// Elements must be derived from underlying reified Relationship. /// [Class(xmiId: "_18_5_3_12e503d9_1533160651700_869737_42192", isAbstract: true, isFinalSpecialization: false, isActive: false)] [GeneratedCode("SysML2.NET", "latest")] diff --git a/SysML2.NET/Core/AutoGenPoco/IRequirementDefinition.cs b/SysML2.NET/Core/AutoGenPoco/IRequirementDefinition.cs index 186fc9c0c..3757fa1cf 100644 --- a/SysML2.NET/Core/AutoGenPoco/IRequirementDefinition.cs +++ b/SysML2.NET/Core/AutoGenPoco/IRequirementDefinition.cs @@ -113,7 +113,7 @@ public partial interface IRequirementDefinition : IConstraintDefinition List requiredConstraint { get; } /// - /// The parameters of this RequirementDefinition that represent stakeholders for th requirement. + /// The parameters of this RequirementDefinition that represent stakeholders for the requirement. /// [Property(xmiId: "_19_0_4_12e503d9_1624033010374_29375_40166", aggregation: AggregationKind.None, lowerValue: 0, upperValue: int.MaxValue, isOrdered: true, isReadOnly: false, isDerived: true, isDerivedUnion: false, isUnique: true, defaultValue: null)] [SubsettedProperty(propertyName: "_18_5_3_12e503d9_1543948010065_362066_20413")] diff --git a/SysML2.NET/Core/AutoGenPoco/ISendActionUsage.cs b/SysML2.NET/Core/AutoGenPoco/ISendActionUsage.cs index 9d22e1986..5e18539c1 100644 --- a/SysML2.NET/Core/AutoGenPoco/ISendActionUsage.cs +++ b/SysML2.NET/Core/AutoGenPoco/ISendActionUsage.cs @@ -78,7 +78,7 @@ public partial interface ISendActionUsage : IActionUsage /// /// An Expression whose result is bound to the payload input parameter of this SendActionUsage. /// - [Property(xmiId: "_19_0_4_12e503d9_1612814399422_336683_143", aggregation: AggregationKind.None, lowerValue: 1, upperValue: 1, isOrdered: false, isReadOnly: false, isDerived: true, isDerivedUnion: false, isUnique: true, defaultValue: null)] + [Property(xmiId: "_19_0_4_12e503d9_1612814399422_336683_143", aggregation: AggregationKind.None, lowerValue: 0, upperValue: 1, isOrdered: false, isReadOnly: false, isDerived: true, isDerivedUnion: false, isUnique: true, defaultValue: null)] IExpression payloadArgument { get; } /// diff --git a/SysML2.NET/Core/AutoGenPoco/IStateDefinition.cs b/SysML2.NET/Core/AutoGenPoco/IStateDefinition.cs index 95565f6f7..d4b7181b9 100644 --- a/SysML2.NET/Core/AutoGenPoco/IStateDefinition.cs +++ b/SysML2.NET/Core/AutoGenPoco/IStateDefinition.cs @@ -62,9 +62,9 @@ namespace SysML2.NET.Core.POCO.Systems.States /// /// A StateDefinition is the Definition of the Behavior of a system or part of a system in a certain - /// state condition. A StateDefinition may be related to up to three of its - /// ownedFeatures by StateBehaviorMembership Relationships, all of different kinds, corresponding to the - /// entry, do and exit actions of the StateDefinition. + /// state condition.A StateDefinition may be related to up to three of its ownedFeatures by + /// StateBehaviorMembership Relationships, all of different kinds, corresponding to the entry, do and + /// exit actions of the StateDefinition. /// [Class(xmiId: "_19_0_2_12e503d9_1575587534200_898246_600", isAbstract: false, isFinalSpecialization: false, isActive: false)] [GeneratedCode("SysML2.NET", "latest")] diff --git a/SysML2.NET/Core/AutoGenPoco/IStateUsage.cs b/SysML2.NET/Core/AutoGenPoco/IStateUsage.cs index 6b4705eb8..c9fcbc321 100644 --- a/SysML2.NET/Core/AutoGenPoco/IStateUsage.cs +++ b/SysML2.NET/Core/AutoGenPoco/IStateUsage.cs @@ -65,10 +65,9 @@ namespace SysML2.NET.Core.POCO.Systems.States /// /// A StateUsage is an ActionUsage that is nominally the Usage of a StateDefinition. However, other - /// kinds of kernel Behaviors are also allowed as types, to permit use of Behaviors - /// A StateUsage may be related to up to three of its ownedFeatures by StateSubactionMembership - /// Relationships, all of different kinds, corresponding to the entry, do and exit actions of the - /// StateUsage. + /// kinds of kernel Behaviors are also allowed as types, to permit use of BehaviorsA StateUsage may be + /// related to up to three of its ownedFeatures by StateSubactionMembership Relationships, all of + /// different kinds, corresponding to the entry, do and exit actions of the StateUsage. /// [Class(xmiId: "_19_0_2_12e503d9_1575587557729_586912_651", isAbstract: false, isFinalSpecialization: false, isActive: false)] [GeneratedCode("SysML2.NET", "latest")] diff --git a/SysML2.NET/Core/AutoGenPoco/ITextualRepresentation.cs b/SysML2.NET/Core/AutoGenPoco/ITextualRepresentation.cs index ea7cf327a..92c98c38f 100644 --- a/SysML2.NET/Core/AutoGenPoco/ITextualRepresentation.cs +++ b/SysML2.NET/Core/AutoGenPoco/ITextualRepresentation.cs @@ -37,30 +37,26 @@ namespace SysML2.NET.Core.POCO.Root.Annotations /// given language. The representedElement must be the owner of the TextualRepresentation. The named /// language can be a natural language, in which case the body is an informal representation, or an /// artificial language, in which case the body is expected to be a formal, machine-parsable - /// representation. If the named language of a TextualRepresentation is - /// machine-parsable, then the body text should be legal input text as defined for that language. The - /// interpretation of the named language string shall be case insensitive. The following language names - /// are defined to correspond to the given standard languages: - /// - /// - /// - /// - ///
kerml Kernel Modeling Language
ocl Object Constraint Language
alfAction Language for fUML
Other - /// specifications may define specific language strings, other than those shown above, to be used to - /// indicate the use of languages from those specifications in KerML TextualRepresentation. - /// If the language of a TextualRepresentation is "kerml", then the body text shall - /// be a legal representation of the representedElement in the KerML textual concrete syntax. A - /// conforming tool can use such a TextualRepresentation Annotation to record the original KerML - /// concrete syntax text from which an Element was parsed. In this case, it is a tool responsibility to - /// ensure that the body of the TextualRepresentation remains correct (or the Annotation is removed) if - /// the annotated Element changes other than by re-parsing the body text. An - /// Element with a TextualRepresentation in a language other than KerML is essentially a semantically - /// "opaque" Element specified in the other language. However, a conforming KerML tool may - /// interpret such an element consistently with the specification of the named language. + /// representation.If the named language of a TextualRepresentation is machine-parsable, then the body + /// text should be legal input text as defined for that language. The interpretation of the named + /// language string shall be case insensitive. The following language names are defined to correspond to + /// the given standard languages:
kerml Kernel Modeling Language
ocl Object Constraint + /// Language
alf Action Language for fUML
Other specifications may + /// define specific language strings, other than those shown above, to be used to indicate the use of + /// languages from those specifications in KerML TextualRepresentation.If the language of a + /// TextualRepresentation is "kerml", then the body text shall be a legal representation of + /// the representedElement in the KerML textual concrete syntax. A conforming tool can use such a + /// TextualRepresentation Annotation to record the original KerML concrete syntax text from which an + /// Element was parsed. In this case, it is a tool responsibility to ensure that the body of the + /// TextualRepresentation remains correct (or the Annotation is removed) if the annotated Element + /// changes other than by re-parsing the body text.An Element with a TextualRepresentation in a language + /// other than KerML is essentially a semantically "opaque" Element specified in the other + /// language. However, a conforming KerML tool may interpret such an element consistently with the + /// specification of the named language. ///
[Class(xmiId: "_19_0_2_12e503d9_1594152214531_455349_2448", isAbstract: false, isFinalSpecialization: false, isActive: false)] [GeneratedCode("SysML2.NET", "latest")] diff --git a/SysML2.NET/Core/AutoGenPoco/ITransitionUsage.cs b/SysML2.NET/Core/AutoGenPoco/ITransitionUsage.cs index 12d56b8bb..c25cffa92 100644 --- a/SysML2.NET/Core/AutoGenPoco/ITransitionUsage.cs +++ b/SysML2.NET/Core/AutoGenPoco/ITransitionUsage.cs @@ -68,9 +68,9 @@ namespace SysML2.NET.Core.POCO.Systems.States /// A TransitionUsage is an ActionUsage representing a triggered transition between ActionUsages or /// StateUsages. When triggered by a triggerAction, when its guardExpression is true, the /// TransitionUsage asserts that its source is exited, then its effectAction (if any) is performed, and - /// then its target is entered. A TransitionUsage can be related to some of its - /// ownedFeatures using TransitionFeatureMembership Relationships, corresponding to the triggerAction, - /// guardExpression and effectAction of the TransitionUsage. + /// then its target is entered.A TransitionUsage can be related to some of its ownedFeatures using + /// TransitionFeatureMembership Relationships, corresponding to the triggerAction, guardExpression and + /// effectAction of the TransitionUsage. /// [Class(xmiId: "_19_0_2_12e503d9_1575672078353_626298_450", isAbstract: false, isFinalSpecialization: false, isActive: false)] [GeneratedCode("SysML2.NET", "latest")] diff --git a/SysML2.NET/Core/AutoGenPoco/IType.cs b/SysML2.NET/Core/AutoGenPoco/IType.cs index 95d748bf4..9c28672d0 100644 --- a/SysML2.NET/Core/AutoGenPoco/IType.cs +++ b/SysML2.NET/Core/AutoGenPoco/IType.cs @@ -135,11 +135,11 @@ public partial interface IType : INamespace /// /// Whether all things that meet the classification conditions of this Type must be classified by the - /// Type. (A Type gives conditions that must be met by whatever it - /// classifies, but when isSufficient is false, things may meet those conditions but still not be - /// classified by the Type. For example, a Type Car that is not sufficient could require everything it - /// classifies to have four wheels, but not all four wheeled things would classify as cars. However, if - /// the Type Car were sufficient, it would classify all four-wheeled things.) + /// Type.(A Type gives conditions that must be met by whatever it classifies, but when isSufficient + /// is false, things may meet those conditions but still not be classified by the Type. For example, a + /// Type Car that is not sufficient could require everything it classifies to have four wheels, but not + /// all four wheeled things would classify as cars. However, if the Type Car were sufficient, it would + /// classify all four-wheeled things.) /// [Property(xmiId: "_18_5_3_b9102da_1564072709069_937523_30797", aggregation: AggregationKind.None, lowerValue: 1, upperValue: 1, isOrdered: false, isReadOnly: false, isDerived: false, isDerivedUnion: false, isUnique: true, defaultValue: "false")] bool IsSufficient { get; set; } @@ -322,13 +322,12 @@ public partial interface IType : INamespace /// /// Return a subset of memberships, removing those Memberships whose memberElements are Features and for - /// which either of the following two conditions holds:
    - ///
  1. The memberElement of the Membership is included in redefined Features of another - /// Membership in memberships.
  2. One of the redefined Features of the - /// Membership is a directly redefinedFeature of an ownedFeature of this Type.
  3. - ///
For this purpose, the redefined Features of a Membership - /// whose memberElement is a Feature includes the memberElement and all Features directly or indirectly - /// redefined by the memberElement. + /// which either of the following two conditions holds:
  1. The memberElement of the Membership is + /// included in redefined Features of another Membership in memberships.
  2. One of the redefined + /// Features of the Membership is a directly redefinedFeature of an ownedFeature of this + /// Type.
For this purpose, the redefined Features of a Membership whose memberElement is a + /// Feature includes the memberElement and all Features directly or indirectly redefined by the + /// memberElement. ///
/// /// No documentation provided diff --git a/SysML2.NET/Core/AutoGenPoco/IUsage.cs b/SysML2.NET/Core/AutoGenPoco/IUsage.cs index ca83c0da3..8b6b24811 100644 --- a/SysML2.NET/Core/AutoGenPoco/IUsage.cs +++ b/SysML2.NET/Core/AutoGenPoco/IUsage.cs @@ -60,14 +60,13 @@ namespace SysML2.NET.Core.POCO.Systems.DefinitionAndUsage using SysML2.NET.Decorators; /// - /// A Usage is a usage of a Definition. A Usage may have nestedUsages that model - /// features that apply in the context of the owningUsage. A Usage may also have Definitions nested in - /// it, but this has no semantic significance, other than the nested scoping resulting from the Usage - /// being considered as a Namespace for any nested Definitions. However, if a - /// Usage has isVariation = true, then it represents a variation point Usage. In this case, all of its - /// members must be variant Usages, related to the Usage by VariantMembership Relationships. Rather than - /// being features of the Usage, variant Usages model different concrete alternatives that can be chosen - /// to fill in for the variation point Usage. + /// A Usage is a usage of a Definition.A Usage may have nestedUsages that model features that apply in + /// the context of the owningUsage. A Usage may also have Definitions nested in it, but this has no + /// semantic significance, other than the nested scoping resulting from the Usage being considered as a + /// Namespace for any nested Definitions.However, if a Usage has isVariation = true, then it represents + /// a variation point Usage. In this case, all of its members must be variant Usages, related to the + /// Usage by VariantMembership Relationships. Rather than being features of the Usage, variant Usages + /// model different concrete alternatives that can be chosen to fill in for the variation point Usage. /// [Class(xmiId: "_18_5_3_12e503d9_1565469997820_598571_19982", isAbstract: false, isFinalSpecialization: false, isActive: false)] [GeneratedCode("SysML2.NET", "latest")] @@ -106,9 +105,9 @@ public partial interface IUsage : IFeature /// Whether this Usage may be time varying (that is, whether it is featured by the snapshots of its /// owningType, rather than being featured by the owningType itself). However, if isConstant is also /// true, then the value of the Usage is nevertheless constant over the entire duration of an instance - /// of its owningType (that is, it has the same value on all snapshots). The - /// property mayTimeVary redefines the KerML property Feature::isVariable, making it derived. The - /// property isConstant is inherited from Feature. + /// of its owningType (that is, it has the same value on all snapshots).The property mayTimeVary + /// redefines the KerML property Feature::isVariable, making it derived. The property isConstant is + /// inherited from Feature. /// [Property(xmiId: "_2022x_2_12e503d9_1737227200362_771035_69", aggregation: AggregationKind.None, lowerValue: 1, upperValue: 1, isOrdered: false, isReadOnly: false, isDerived: true, isDerivedUnion: false, isUnique: true, defaultValue: null)] [RedefinedProperty(propertyName: "_2022x_2_12e503d9_1725998273002_23711_212")] @@ -165,8 +164,8 @@ public partial interface IUsage : IFeature /// /// The ConnectorAsUsages that are nestedUsages of this Usage. Note that this list includes - /// BindingConnectorAsUsages, SuccessionAsUsages, and FlowConnectionUsages because these are - /// ConnectorAsUsages even though they are not ConnectionUsages. + /// BindingConnectorAsUsages, SuccessionAsUsages, and FlowUsages because these are ConnectorAsUsages + /// even though they are not ConnectionUsages. /// [Property(xmiId: "_19_0_2_12e503d9_1591479754895_422988_1242", aggregation: AggregationKind.None, lowerValue: 0, upperValue: int.MaxValue, isOrdered: true, isReadOnly: false, isDerived: true, isDerivedUnion: false, isUnique: true, defaultValue: null)] [SubsettedProperty(propertyName: "_18_5_3_12e503d9_1565472757327_162097_21259")] @@ -208,7 +207,7 @@ public partial interface IUsage : IFeature List nestedItem { get; } /// - /// The MetadataUsages that are nestedUsages of this of this Usage. + /// The MetadataUsages that are ownedMembers of this of this Usage. /// [Property(xmiId: "_19_0_4_12e503d9_1661488589862_120785_2970", aggregation: AggregationKind.None, lowerValue: 0, upperValue: int.MaxValue, isOrdered: true, isReadOnly: false, isDerived: true, isDerivedUnion: false, isUnique: true, defaultValue: null)] [SubsettedProperty(propertyName: "_19_0_2_12e503d9_1591482421103_284620_2978")] diff --git a/SysML2.NET/Core/AutoGenPoco/IfActionUsage.cs b/SysML2.NET/Core/AutoGenPoco/IfActionUsage.cs index a08e48e12..4ca766d20 100644 --- a/SysML2.NET/Core/AutoGenPoco/IfActionUsage.cs +++ b/SysML2.NET/Core/AutoGenPoco/IfActionUsage.cs @@ -448,11 +448,11 @@ public IfActionUsage() /// /// Whether all things that meet the classification conditions of this Type must be classified by the - /// Type. (A Type gives conditions that must be met by whatever it - /// classifies, but when isSufficient is false, things may meet those conditions but still not be - /// classified by the Type. For example, a Type Car that is not sufficient could require everything it - /// classifies to have four wheels, but not all four wheeled things would classify as cars. However, if - /// the Type Car were sufficient, it would classify all four-wheeled things.) + /// Type.(A Type gives conditions that must be met by whatever it classifies, but when isSufficient + /// is false, things may meet those conditions but still not be classified by the Type. For example, a + /// Type Car that is not sufficient could require everything it classifies to have four wheels, but not + /// all four wheeled things would classify as cars. However, if the Type Car were sufficient, it would + /// classify all four-wheeled things.) /// [Property(xmiId: "_18_5_3_b9102da_1564072709069_937523_30797", aggregation: AggregationKind.None, lowerValue: 1, upperValue: 1, isOrdered: false, isReadOnly: false, isDerived: false, isDerivedUnion: false, isUnique: true, defaultValue: "false")] [Implements(implementation: "IType.IsSufficient")] @@ -490,9 +490,9 @@ bool Core.Features.IFeature.IsVariable /// Whether this Usage may be time varying (that is, whether it is featured by the snapshots of its /// owningType, rather than being featured by the owningType itself). However, if isConstant is also /// true, then the value of the Usage is nevertheless constant over the entire duration of an instance - /// of its owningType (that is, it has the same value on all snapshots). The - /// property mayTimeVary redefines the KerML property Feature::isVariable, making it derived. The - /// property isConstant is inherited from Feature. + /// of its owningType (that is, it has the same value on all snapshots).The property mayTimeVary + /// redefines the KerML property Feature::isVariable, making it derived. The property isConstant is + /// inherited from Feature. /// [Property(xmiId: "_2022x_2_12e503d9_1737227200362_771035_69", aggregation: AggregationKind.None, lowerValue: 1, upperValue: 1, isOrdered: false, isReadOnly: false, isDerived: true, isDerivedUnion: false, isUnique: true, defaultValue: null)] [RedefinedProperty(propertyName: "_2022x_2_12e503d9_1725998273002_23711_212")] @@ -593,8 +593,8 @@ bool Core.Features.IFeature.IsVariable /// /// The ConnectorAsUsages that are nestedUsages of this Usage. Note that this list includes - /// BindingConnectorAsUsages, SuccessionAsUsages, and FlowConnectionUsages because these are - /// ConnectorAsUsages even though they are not ConnectionUsages. + /// BindingConnectorAsUsages, SuccessionAsUsages, and FlowUsages because these are ConnectorAsUsages + /// even though they are not ConnectionUsages. /// [Property(xmiId: "_19_0_2_12e503d9_1591479754895_422988_1242", aggregation: AggregationKind.None, lowerValue: 0, upperValue: int.MaxValue, isOrdered: true, isReadOnly: false, isDerived: true, isDerivedUnion: false, isUnique: true, defaultValue: null)] [SubsettedProperty(propertyName: "_18_5_3_12e503d9_1565472757327_162097_21259")] @@ -642,7 +642,7 @@ bool Core.Features.IFeature.IsVariable public List nestedItem => this.ComputeNestedItem(); /// - /// The MetadataUsages that are nestedUsages of this of this Usage. + /// The MetadataUsages that are ownedMembers of this of this Usage. /// [Property(xmiId: "_19_0_4_12e503d9_1661488589862_120785_2970", aggregation: AggregationKind.None, lowerValue: 0, upperValue: int.MaxValue, isOrdered: true, isReadOnly: false, isDerived: true, isDerivedUnion: false, isUnique: true, defaultValue: null)] [SubsettedProperty(propertyName: "_19_0_2_12e503d9_1591482421103_284620_2978")] @@ -1271,9 +1271,8 @@ bool Core.Features.IFeature.IsVariable public FeatureDirectionKind? DirectionOfExcluding(IFeature feature, List excluded) => this.ComputeDirectionOfExcludingOperation(feature, excluded); /// - /// If a Feature has no declaredName or declaredShortName , then its - /// effective name is given by the effective name of the Feature returned by the namingFeature() - /// operation, if any. + /// If a Feature has no declaredName or declaredShortName, then its effective name is given by the + /// effective name of the Feature returned by the namingFeature() operation, if any. /// /// /// The expected @@ -1398,11 +1397,10 @@ bool Core.Features.IFeature.IsVariable /// /// A Feature is compatible with an otherType if it either directly or indirectly specializes the - /// otherType or if the otherType is also a Feature and all of the following are true. - ///
  1. Neither this Feature or the otherType have any - /// ownedFeatures.
  2. This Feature directly or indirectly redefines a - /// Feature that is also directly or indirectly redefined by the otherType.
  3. - ///
  4. This Feature can access the otherType.
+ /// otherType or if the otherType is also a Feature and all of the following are true.
  1. Neither + /// this Feature or the otherType have any ownedFeatures.
  2. This Feature directly or indirectly + /// redefines a Feature that is also directly or indirectly redefined by the otherType.
  3. This + /// Feature can access the otherType.
///
/// /// No documentation provided @@ -1570,8 +1568,8 @@ bool Core.Features.IFeature.IsVariable /// an owningRelationship, then return the string constructed by appending to the path of it's /// owningRelationship the character / followed by the string representation of its position in the list /// of ownedRelatedElements of the owningRelationship (indexed starting at 1). Otherwise, return the - /// empty string. (Note that this operation is overridden for Relationships - /// to use owningRelatedElement when appropriate.) + /// empty string.(Note that this operation is overridden for Relationships to use owningRelatedElement + /// when appropriate.) /// /// /// The expected @@ -1625,13 +1623,12 @@ bool Core.Features.IFeature.IsVariable /// /// Return a subset of memberships, removing those Memberships whose memberElements are Features and for - /// which either of the following two conditions holds:
    - ///
  1. The memberElement of the Membership is included in redefined Features of another - /// Membership in memberships.
  2. One of the redefined Features of the - /// Membership is a directly redefinedFeature of an ownedFeature of this Type.
  3. - ///
For this purpose, the redefined Features of a Membership - /// whose memberElement is a Feature includes the memberElement and all Features directly or indirectly - /// redefined by the memberElement. + /// which either of the following two conditions holds:
  1. The memberElement of the Membership is + /// included in redefined Features of another Membership in memberships.
  2. One of the redefined + /// Features of the Membership is a directly redefinedFeature of an ownedFeature of this + /// Type.
For this purpose, the redefined Features of a Membership whose memberElement is a + /// Feature includes the memberElement and all Features directly or indirectly redefined by the + /// memberElement. ///
/// /// No documentation provided @@ -1758,11 +1755,11 @@ bool Core.Features.IFeature.IsVariable /// Return the Features used to determine the types of this Feature (other than this Feature itself). If /// this Feature is not conjugated, then the typingFeatures consist of all subsetted Features, except /// from CrossSubsetting, and the last chainingFeature (if any). If this Feature is conjugated, then the - /// typingFeatures are only its originalType (if the originalType is a Feature). - /// Note. CrossSubsetting is excluded from the determination of the type of a - /// Feature in order to avoid circularity in the construction of implied CrossSubsetting relationships. - /// The validateFeatureCrossFeatureType requires that the crossFeature of a Feature have the same type - /// as the Feature. + /// typingFeatures are only its originalType (if the originalType is a Feature).Note. + /// CrossSubsetting is excluded from the determination of the type of a Feature in order to avoid + /// circularity in the construction of implied CrossSubsetting relationships. The + /// validateFeatureCrossFeatureType requires that the crossFeature of a Feature have the same type as + /// the Feature. /// /// /// The expected collection of diff --git a/SysML2.NET/Core/AutoGenPoco/IncludeUseCaseUsage.cs b/SysML2.NET/Core/AutoGenPoco/IncludeUseCaseUsage.cs index 3d336409b..df198dfbc 100644 --- a/SysML2.NET/Core/AutoGenPoco/IncludeUseCaseUsage.cs +++ b/SysML2.NET/Core/AutoGenPoco/IncludeUseCaseUsage.cs @@ -505,11 +505,11 @@ public IncludeUseCaseUsage() /// /// Whether all things that meet the classification conditions of this Type must be classified by the - /// Type. (A Type gives conditions that must be met by whatever it - /// classifies, but when isSufficient is false, things may meet those conditions but still not be - /// classified by the Type. For example, a Type Car that is not sufficient could require everything it - /// classifies to have four wheels, but not all four wheeled things would classify as cars. However, if - /// the Type Car were sufficient, it would classify all four-wheeled things.) + /// Type.(A Type gives conditions that must be met by whatever it classifies, but when isSufficient + /// is false, things may meet those conditions but still not be classified by the Type. For example, a + /// Type Car that is not sufficient could require everything it classifies to have four wheels, but not + /// all four wheeled things would classify as cars. However, if the Type Car were sufficient, it would + /// classify all four-wheeled things.) /// [Property(xmiId: "_18_5_3_b9102da_1564072709069_937523_30797", aggregation: AggregationKind.None, lowerValue: 1, upperValue: 1, isOrdered: false, isReadOnly: false, isDerived: false, isDerivedUnion: false, isUnique: true, defaultValue: "false")] [Implements(implementation: "IType.IsSufficient")] @@ -547,9 +547,9 @@ bool Core.Features.IFeature.IsVariable /// Whether this Usage may be time varying (that is, whether it is featured by the snapshots of its /// owningType, rather than being featured by the owningType itself). However, if isConstant is also /// true, then the value of the Usage is nevertheless constant over the entire duration of an instance - /// of its owningType (that is, it has the same value on all snapshots). The - /// property mayTimeVary redefines the KerML property Feature::isVariable, making it derived. The - /// property isConstant is inherited from Feature. + /// of its owningType (that is, it has the same value on all snapshots).The property mayTimeVary + /// redefines the KerML property Feature::isVariable, making it derived. The property isConstant is + /// inherited from Feature. /// [Property(xmiId: "_2022x_2_12e503d9_1737227200362_771035_69", aggregation: AggregationKind.None, lowerValue: 1, upperValue: 1, isOrdered: false, isReadOnly: false, isDerived: true, isDerivedUnion: false, isUnique: true, defaultValue: null)] [RedefinedProperty(propertyName: "_2022x_2_12e503d9_1725998273002_23711_212")] @@ -650,8 +650,8 @@ bool Core.Features.IFeature.IsVariable /// /// The ConnectorAsUsages that are nestedUsages of this Usage. Note that this list includes - /// BindingConnectorAsUsages, SuccessionAsUsages, and FlowConnectionUsages because these are - /// ConnectorAsUsages even though they are not ConnectionUsages. + /// BindingConnectorAsUsages, SuccessionAsUsages, and FlowUsages because these are ConnectorAsUsages + /// even though they are not ConnectionUsages. /// [Property(xmiId: "_19_0_2_12e503d9_1591479754895_422988_1242", aggregation: AggregationKind.None, lowerValue: 0, upperValue: int.MaxValue, isOrdered: true, isReadOnly: false, isDerived: true, isDerivedUnion: false, isUnique: true, defaultValue: null)] [SubsettedProperty(propertyName: "_18_5_3_12e503d9_1565472757327_162097_21259")] @@ -699,7 +699,7 @@ bool Core.Features.IFeature.IsVariable public List nestedItem => this.ComputeNestedItem(); /// - /// The MetadataUsages that are nestedUsages of this of this Usage. + /// The MetadataUsages that are ownedMembers of this of this Usage. /// [Property(xmiId: "_19_0_4_12e503d9_1661488589862_120785_2970", aggregation: AggregationKind.None, lowerValue: 0, upperValue: int.MaxValue, isOrdered: true, isReadOnly: false, isDerived: true, isDerivedUnion: false, isUnique: true, defaultValue: null)] [SubsettedProperty(propertyName: "_19_0_2_12e503d9_1591482421103_284620_2978")] @@ -1386,9 +1386,8 @@ bool Core.Features.IFeature.IsVariable public FeatureDirectionKind? DirectionOfExcluding(IFeature feature, List excluded) => this.ComputeDirectionOfExcludingOperation(feature, excluded); /// - /// If a Feature has no declaredName or declaredShortName , then its - /// effective name is given by the effective name of the Feature returned by the namingFeature() - /// operation, if any. + /// If a Feature has no declaredName or declaredShortName, then its effective name is given by the + /// effective name of the Feature returned by the namingFeature() operation, if any. /// /// /// The expected @@ -1527,11 +1526,10 @@ bool Core.Features.IFeature.IsVariable /// /// A Feature is compatible with an otherType if it either directly or indirectly specializes the - /// otherType or if the otherType is also a Feature and all of the following are true. - ///
  1. Neither this Feature or the otherType have any - /// ownedFeatures.
  2. This Feature directly or indirectly redefines a - /// Feature that is also directly or indirectly redefined by the otherType.
  3. - ///
  4. This Feature can access the otherType.
+ /// otherType or if the otherType is also a Feature and all of the following are true.
  1. Neither + /// this Feature or the otherType have any ownedFeatures.
  2. This Feature directly or indirectly + /// redefines a Feature that is also directly or indirectly redefined by the otherType.
  3. This + /// Feature can access the otherType.
///
/// /// No documentation provided @@ -1641,11 +1639,11 @@ bool Core.Features.IFeature.IsVariable /// Return whether this Expression is model-level evaluable. The visited parameter is used to track /// possible circular Feature references made from FeatureReferenceExpressions (see the redefinition of /// this operation for FeatureReferenceExpression). Such circular references are not allowed in - /// model-level evaluable expressions. An Expression that is not otherwise - /// specialized is model-level evaluable if it has no (non-implied) ownedSpecializations and all its - /// ownedFeatures are either in parameters, the result parameter or a result Expression owned via a - /// ResultExpressionMembership. The parameters must not have any ownedFeatures or a FeatureValue, and - /// the result Expression must be model-level evaluable. + /// model-level evaluable expressions.An Expression that is not otherwise specialized is model-level + /// evaluable if it has no (non-implied) ownedSpecializations and all its ownedFeatures are either in + /// parameters, the result parameter or a result Expression owned via a ResultExpressionMembership. The + /// parameters must not have any ownedFeatures or a FeatureValue, and the result Expression must be + /// model-level evaluable. /// /// /// No documentation provided @@ -1738,8 +1736,8 @@ bool Core.Features.IFeature.IsVariable /// an owningRelationship, then return the string constructed by appending to the path of it's /// owningRelationship the character / followed by the string representation of its position in the list /// of ownedRelatedElements of the owningRelationship (indexed starting at 1). Otherwise, return the - /// empty string. (Note that this operation is overridden for Relationships - /// to use owningRelatedElement when appropriate.) + /// empty string.(Note that this operation is overridden for Relationships to use owningRelatedElement + /// when appropriate.) /// /// /// The expected @@ -1793,13 +1791,12 @@ bool Core.Features.IFeature.IsVariable /// /// Return a subset of memberships, removing those Memberships whose memberElements are Features and for - /// which either of the following two conditions holds:
    - ///
  1. The memberElement of the Membership is included in redefined Features of another - /// Membership in memberships.
  2. One of the redefined Features of the - /// Membership is a directly redefinedFeature of an ownedFeature of this Type.
  3. - ///
For this purpose, the redefined Features of a Membership - /// whose memberElement is a Feature includes the memberElement and all Features directly or indirectly - /// redefined by the memberElement. + /// which either of the following two conditions holds:
  1. The memberElement of the Membership is + /// included in redefined Features of another Membership in memberships.
  2. One of the redefined + /// Features of the Membership is a directly redefinedFeature of an ownedFeature of this + /// Type.
For this purpose, the redefined Features of a Membership whose memberElement is a + /// Feature includes the memberElement and all Features directly or indirectly redefined by the + /// memberElement. ///
/// /// No documentation provided @@ -1926,11 +1923,11 @@ bool Core.Features.IFeature.IsVariable /// Return the Features used to determine the types of this Feature (other than this Feature itself). If /// this Feature is not conjugated, then the typingFeatures consist of all subsetted Features, except /// from CrossSubsetting, and the last chainingFeature (if any). If this Feature is conjugated, then the - /// typingFeatures are only its originalType (if the originalType is a Feature). - /// Note. CrossSubsetting is excluded from the determination of the type of a - /// Feature in order to avoid circularity in the construction of implied CrossSubsetting relationships. - /// The validateFeatureCrossFeatureType requires that the crossFeature of a Feature have the same type - /// as the Feature. + /// typingFeatures are only its originalType (if the originalType is a Feature).Note. + /// CrossSubsetting is excluded from the determination of the type of a Feature in order to avoid + /// circularity in the construction of implied CrossSubsetting relationships. The + /// validateFeatureCrossFeatureType requires that the crossFeature of a Feature have the same type as + /// the Feature. /// /// /// The expected collection of diff --git a/SysML2.NET/Core/AutoGenPoco/IndexExpression.cs b/SysML2.NET/Core/AutoGenPoco/IndexExpression.cs index c1809671e..a3e7e316d 100644 --- a/SysML2.NET/Core/AutoGenPoco/IndexExpression.cs +++ b/SysML2.NET/Core/AutoGenPoco/IndexExpression.cs @@ -77,8 +77,8 @@ public IndexExpression() /// /// The Expressions whose results are bound to features of the instantiatedType. The arguments are /// ordered consistent with the order of the features, though they may not be one-to-one with all the - /// features. Note. The derivation of argument is given in - /// the concrete subclasses of InstantiationExpression. + /// features.Note. The derivation of argument is given in the concrete subclasses of + /// InstantiationExpression. /// [Property(xmiId: "_2022x_2_12e503d9_1739134437590_328753_108", aggregation: AggregationKind.None, lowerValue: 0, upperValue: int.MaxValue, isOrdered: true, isReadOnly: false, isDerived: true, isDerivedUnion: false, isUnique: true, defaultValue: null)] [Implements(implementation: "IInstantiationExpression.Argument")] @@ -389,11 +389,11 @@ public IndexExpression() /// /// Whether all things that meet the classification conditions of this Type must be classified by the - /// Type. (A Type gives conditions that must be met by whatever it - /// classifies, but when isSufficient is false, things may meet those conditions but still not be - /// classified by the Type. For example, a Type Car that is not sufficient could require everything it - /// classifies to have four wheels, but not all four wheeled things would classify as cars. However, if - /// the Type Car were sufficient, it would classify all four-wheeled things.) + /// Type.(A Type gives conditions that must be met by whatever it classifies, but when isSufficient + /// is false, things may meet those conditions but still not be classified by the Type. For example, a + /// Type Car that is not sufficient could require everything it classifies to have four wheels, but not + /// all four wheeled things would classify as cars. However, if the Type Car were sufficient, it would + /// classify all four-wheeled things.) /// [Property(xmiId: "_18_5_3_b9102da_1564072709069_937523_30797", aggregation: AggregationKind.None, lowerValue: 1, upperValue: 1, isOrdered: false, isReadOnly: false, isDerived: false, isDerivedUnion: false, isUnique: true, defaultValue: "false")] [Implements(implementation: "IType.IsSufficient")] @@ -931,9 +931,8 @@ string IOperatorExpression.Operator public FeatureDirectionKind? DirectionOfExcluding(IFeature feature, List excluded) => this.ComputeDirectionOfExcludingOperation(feature, excluded); /// - /// If a Feature has no declaredName or declaredShortName , then its - /// effective name is given by the effective name of the Feature returned by the namingFeature() - /// operation, if any. + /// If a Feature has no declaredName or declaredShortName, then its effective name is given by the + /// effective name of the Feature returned by the namingFeature() operation, if any. /// /// /// The expected @@ -1067,8 +1066,7 @@ string IOperatorExpression.Operator /// /// Return the Type to act as the instantiatedType for this InstantiationExpression. By default, this is /// the memberElement of the first ownedMembership that is not a FeatureMembership, which must be a - /// Type. Note. This operation is overridden in the subclass - /// OperatorExpression. + /// Type.Note. This operation is overridden in the subclass OperatorExpression. /// /// /// The expected @@ -1085,11 +1083,10 @@ string IOperatorExpression.Operator /// /// A Feature is compatible with an otherType if it either directly or indirectly specializes the - /// otherType or if the otherType is also a Feature and all of the following are true. - ///
  1. Neither this Feature or the otherType have any - /// ownedFeatures.
  2. This Feature directly or indirectly redefines a - /// Feature that is also directly or indirectly redefined by the otherType.
  3. - ///
  4. This Feature can access the otherType.
+ /// otherType or if the otherType is also a Feature and all of the following are true.
  1. Neither + /// this Feature or the otherType have any ownedFeatures.
  2. This Feature directly or indirectly + /// redefines a Feature that is also directly or indirectly redefined by the otherType.
  3. This + /// Feature can access the otherType.
///
/// /// No documentation provided @@ -1190,11 +1187,11 @@ string IOperatorExpression.Operator /// Return whether this Expression is model-level evaluable. The visited parameter is used to track /// possible circular Feature references made from FeatureReferenceExpressions (see the redefinition of /// this operation for FeatureReferenceExpression). Such circular references are not allowed in - /// model-level evaluable expressions. An Expression that is not otherwise - /// specialized is model-level evaluable if it has no (non-implied) ownedSpecializations and all its - /// ownedFeatures are either in parameters, the result parameter or a result Expression owned via a - /// ResultExpressionMembership. The parameters must not have any ownedFeatures or a FeatureValue, and - /// the result Expression must be model-level evaluable. + /// model-level evaluable expressions.An Expression that is not otherwise specialized is model-level + /// evaluable if it has no (non-implied) ownedSpecializations and all its ownedFeatures are either in + /// parameters, the result parameter or a result Expression owned via a ResultExpressionMembership. The + /// parameters must not have any ownedFeatures or a FeatureValue, and the result Expression must be + /// model-level evaluable. /// /// /// No documentation provided @@ -1268,8 +1265,8 @@ string IOperatorExpression.Operator /// an owningRelationship, then return the string constructed by appending to the path of it's /// owningRelationship the character / followed by the string representation of its position in the list /// of ownedRelatedElements of the owningRelationship (indexed starting at 1). Otherwise, return the - /// empty string. (Note that this operation is overridden for Relationships - /// to use owningRelatedElement when appropriate.) + /// empty string.(Note that this operation is overridden for Relationships to use owningRelatedElement + /// when appropriate.) /// /// /// The expected @@ -1314,13 +1311,12 @@ string IOperatorExpression.Operator /// /// Return a subset of memberships, removing those Memberships whose memberElements are Features and for - /// which either of the following two conditions holds:
    - ///
  1. The memberElement of the Membership is included in redefined Features of another - /// Membership in memberships.
  2. One of the redefined Features of the - /// Membership is a directly redefinedFeature of an ownedFeature of this Type.
  3. - ///
For this purpose, the redefined Features of a Membership - /// whose memberElement is a Feature includes the memberElement and all Features directly or indirectly - /// redefined by the memberElement. + /// which either of the following two conditions holds:
  1. The memberElement of the Membership is + /// included in redefined Features of another Membership in memberships.
  2. One of the redefined + /// Features of the Membership is a directly redefinedFeature of an ownedFeature of this + /// Type.
For this purpose, the redefined Features of a Membership whose memberElement is a + /// Feature includes the memberElement and all Features directly or indirectly redefined by the + /// memberElement. ///
/// /// No documentation provided @@ -1447,11 +1443,11 @@ string IOperatorExpression.Operator /// Return the Features used to determine the types of this Feature (other than this Feature itself). If /// this Feature is not conjugated, then the typingFeatures consist of all subsetted Features, except /// from CrossSubsetting, and the last chainingFeature (if any). If this Feature is conjugated, then the - /// typingFeatures are only its originalType (if the originalType is a Feature). - /// Note. CrossSubsetting is excluded from the determination of the type of a - /// Feature in order to avoid circularity in the construction of implied CrossSubsetting relationships. - /// The validateFeatureCrossFeatureType requires that the crossFeature of a Feature have the same type - /// as the Feature. + /// typingFeatures are only its originalType (if the originalType is a Feature).Note. + /// CrossSubsetting is excluded from the determination of the type of a Feature in order to avoid + /// circularity in the construction of implied CrossSubsetting relationships. The + /// validateFeatureCrossFeatureType requires that the crossFeature of a Feature have the same type as + /// the Feature. /// /// /// The expected collection of diff --git a/SysML2.NET/Core/AutoGenPoco/Interaction.cs b/SysML2.NET/Core/AutoGenPoco/Interaction.cs index 086299619..938ab999b 100644 --- a/SysML2.NET/Core/AutoGenPoco/Interaction.cs +++ b/SysML2.NET/Core/AutoGenPoco/Interaction.cs @@ -260,11 +260,11 @@ public Interaction() /// /// Whether all things that meet the classification conditions of this Type must be classified by the - /// Type. (A Type gives conditions that must be met by whatever it - /// classifies, but when isSufficient is false, things may meet those conditions but still not be - /// classified by the Type. For example, a Type Car that is not sufficient could require everything it - /// classifies to have four wheels, but not all four wheeled things would classify as cars. However, if - /// the Type Car were sufficient, it would classify all four-wheeled things.) + /// Type.(A Type gives conditions that must be met by whatever it classifies, but when isSufficient + /// is false, things may meet those conditions but still not be classified by the Type. For example, a + /// Type Car that is not sufficient could require everything it classifies to have four wheels, but not + /// all four wheeled things would classify as cars. However, if the Type Car were sufficient, it would + /// classify all four-wheeled things.) /// [Property(xmiId: "_18_5_3_b9102da_1564072709069_937523_30797", aggregation: AggregationKind.None, lowerValue: 1, upperValue: 1, isOrdered: false, isReadOnly: false, isDerived: false, isDerivedUnion: false, isUnique: true, defaultValue: "false")] [Implements(implementation: "IType.IsSufficient")] @@ -867,8 +867,8 @@ List Root.Elements.IRelationship.Target /// an owningRelationship, then return the string constructed by appending to the path of it's /// owningRelationship the character / followed by the string representation of its position in the list /// of ownedRelatedElements of the owningRelationship (indexed starting at 1). Otherwise, return the - /// empty string. (Note that this operation is overridden for Relationships - /// to use owningRelatedElement when appropriate.) + /// empty string.(Note that this operation is overridden for Relationships to use owningRelatedElement + /// when appropriate.) /// /// /// The expected @@ -901,13 +901,12 @@ List Root.Elements.IRelationship.Target /// /// Return a subset of memberships, removing those Memberships whose memberElements are Features and for - /// which either of the following two conditions holds:
    - ///
  1. The memberElement of the Membership is included in redefined Features of another - /// Membership in memberships.
  2. One of the redefined Features of the - /// Membership is a directly redefinedFeature of an ownedFeature of this Type.
  3. - ///
For this purpose, the redefined Features of a Membership - /// whose memberElement is a Feature includes the memberElement and all Features directly or indirectly - /// redefined by the memberElement. + /// which either of the following two conditions holds:
  1. The memberElement of the Membership is + /// included in redefined Features of another Membership in memberships.
  2. One of the redefined + /// Features of the Membership is a directly redefinedFeature of an ownedFeature of this + /// Type.
For this purpose, the redefined Features of a Membership whose memberElement is a + /// Feature includes the memberElement and all Features directly or indirectly redefined by the + /// memberElement. ///
/// /// No documentation provided diff --git a/SysML2.NET/Core/AutoGenPoco/InterfaceDefinition.cs b/SysML2.NET/Core/AutoGenPoco/InterfaceDefinition.cs index 0ca435624..ce91241b4 100644 --- a/SysML2.NET/Core/AutoGenPoco/InterfaceDefinition.cs +++ b/SysML2.NET/Core/AutoGenPoco/InterfaceDefinition.cs @@ -320,11 +320,11 @@ public InterfaceDefinition() /// /// Whether all things that meet the classification conditions of this Type must be classified by the - /// Type. (A Type gives conditions that must be met by whatever it - /// classifies, but when isSufficient is false, things may meet those conditions but still not be - /// classified by the Type. For example, a Type Car that is not sufficient could require everything it - /// classifies to have four wheels, but not all four wheeled things would classify as cars. However, if - /// the Type Car were sufficient, it would classify all four-wheeled things.) + /// Type.(A Type gives conditions that must be met by whatever it classifies, but when isSufficient + /// is false, things may meet those conditions but still not be classified by the Type. For example, a + /// Type Car that is not sufficient could require everything it classifies to have four wheels, but not + /// all four wheeled things would classify as cars. However, if the Type Car were sufficient, it would + /// classify all four-wheeled things.) /// [Property(xmiId: "_18_5_3_b9102da_1564072709069_937523_30797", aggregation: AggregationKind.None, lowerValue: 1, upperValue: 1, isOrdered: false, isReadOnly: false, isDerived: false, isDerivedUnion: false, isUnique: true, defaultValue: "false")] [RedefinedByProperty("IConnectionDefinition.IsSufficient")] @@ -610,7 +610,7 @@ bool Core.Types.IType.IsSufficient public List ownedMembership => this.ComputeOwnedMembership(); /// - /// The MetadataUsages that are ownedUsages of this Definition. + /// The MetadataUsages that are ownedMembers of this Definition. /// [Property(xmiId: "_19_0_4_12e503d9_1661488358064_457109_2881", aggregation: AggregationKind.None, lowerValue: 0, upperValue: int.MaxValue, isOrdered: true, isReadOnly: false, isDerived: true, isDerivedUnion: false, isUnique: true, defaultValue: null)] [SubsettedProperty(propertyName: "_19_0_2_12e503d9_1591482567975_649284_3005")] @@ -1171,8 +1171,8 @@ List Root.Elements.IRelationship.Target /// an owningRelationship, then return the string constructed by appending to the path of it's /// owningRelationship the character / followed by the string representation of its position in the list /// of ownedRelatedElements of the owningRelationship (indexed starting at 1). Otherwise, return the - /// empty string. (Note that this operation is overridden for Relationships - /// to use owningRelatedElement when appropriate.) + /// empty string.(Note that this operation is overridden for Relationships to use owningRelatedElement + /// when appropriate.) /// /// /// The expected @@ -1205,13 +1205,12 @@ List Root.Elements.IRelationship.Target /// /// Return a subset of memberships, removing those Memberships whose memberElements are Features and for - /// which either of the following two conditions holds:
    - ///
  1. The memberElement of the Membership is included in redefined Features of another - /// Membership in memberships.
  2. One of the redefined Features of the - /// Membership is a directly redefinedFeature of an ownedFeature of this Type.
  3. - ///
For this purpose, the redefined Features of a Membership - /// whose memberElement is a Feature includes the memberElement and all Features directly or indirectly - /// redefined by the memberElement. + /// which either of the following two conditions holds:
  1. The memberElement of the Membership is + /// included in redefined Features of another Membership in memberships.
  2. One of the redefined + /// Features of the Membership is a directly redefinedFeature of an ownedFeature of this + /// Type.
For this purpose, the redefined Features of a Membership whose memberElement is a + /// Feature includes the memberElement and all Features directly or indirectly redefined by the + /// memberElement. ///
/// /// No documentation provided diff --git a/SysML2.NET/Core/AutoGenPoco/InterfaceUsage.cs b/SysML2.NET/Core/AutoGenPoco/InterfaceUsage.cs index b301207fb..0df9c5586 100644 --- a/SysML2.NET/Core/AutoGenPoco/InterfaceUsage.cs +++ b/SysML2.NET/Core/AutoGenPoco/InterfaceUsage.cs @@ -473,11 +473,11 @@ public InterfaceUsage() /// /// Whether all things that meet the classification conditions of this Type must be classified by the - /// Type. (A Type gives conditions that must be met by whatever it - /// classifies, but when isSufficient is false, things may meet those conditions but still not be - /// classified by the Type. For example, a Type Car that is not sufficient could require everything it - /// classifies to have four wheels, but not all four wheeled things would classify as cars. However, if - /// the Type Car were sufficient, it would classify all four-wheeled things.) + /// Type.(A Type gives conditions that must be met by whatever it classifies, but when isSufficient + /// is false, things may meet those conditions but still not be classified by the Type. For example, a + /// Type Car that is not sufficient could require everything it classifies to have four wheels, but not + /// all four wheeled things would classify as cars. However, if the Type Car were sufficient, it would + /// classify all four-wheeled things.) /// [Property(xmiId: "_18_5_3_b9102da_1564072709069_937523_30797", aggregation: AggregationKind.None, lowerValue: 1, upperValue: 1, isOrdered: false, isReadOnly: false, isDerived: false, isDerivedUnion: false, isUnique: true, defaultValue: "false")] [Implements(implementation: "IType.IsSufficient")] @@ -525,9 +525,9 @@ bool Core.Features.IFeature.IsVariable /// Whether this Usage may be time varying (that is, whether it is featured by the snapshots of its /// owningType, rather than being featured by the owningType itself). However, if isConstant is also /// true, then the value of the Usage is nevertheless constant over the entire duration of an instance - /// of its owningType (that is, it has the same value on all snapshots). The - /// property mayTimeVary redefines the KerML property Feature::isVariable, making it derived. The - /// property isConstant is inherited from Feature. + /// of its owningType (that is, it has the same value on all snapshots).The property mayTimeVary + /// redefines the KerML property Feature::isVariable, making it derived. The property isConstant is + /// inherited from Feature. /// [Property(xmiId: "_2022x_2_12e503d9_1737227200362_771035_69", aggregation: AggregationKind.None, lowerValue: 1, upperValue: 1, isOrdered: false, isReadOnly: false, isDerived: true, isDerivedUnion: false, isUnique: true, defaultValue: null)] [RedefinedProperty(propertyName: "_2022x_2_12e503d9_1725998273002_23711_212")] @@ -628,8 +628,8 @@ bool Core.Features.IFeature.IsVariable /// /// The ConnectorAsUsages that are nestedUsages of this Usage. Note that this list includes - /// BindingConnectorAsUsages, SuccessionAsUsages, and FlowConnectionUsages because these are - /// ConnectorAsUsages even though they are not ConnectionUsages. + /// BindingConnectorAsUsages, SuccessionAsUsages, and FlowUsages because these are ConnectorAsUsages + /// even though they are not ConnectionUsages. /// [Property(xmiId: "_19_0_2_12e503d9_1591479754895_422988_1242", aggregation: AggregationKind.None, lowerValue: 0, upperValue: int.MaxValue, isOrdered: true, isReadOnly: false, isDerived: true, isDerivedUnion: false, isUnique: true, defaultValue: null)] [SubsettedProperty(propertyName: "_18_5_3_12e503d9_1565472757327_162097_21259")] @@ -677,7 +677,7 @@ bool Core.Features.IFeature.IsVariable public List nestedItem => this.ComputeNestedItem(); /// - /// The MetadataUsages that are nestedUsages of this of this Usage. + /// The MetadataUsages that are ownedMembers of this of this Usage. /// [Property(xmiId: "_19_0_4_12e503d9_1661488589862_120785_2970", aggregation: AggregationKind.None, lowerValue: 0, upperValue: int.MaxValue, isOrdered: true, isReadOnly: false, isDerived: true, isDerivedUnion: false, isUnique: true, defaultValue: null)] [SubsettedProperty(propertyName: "_19_0_2_12e503d9_1591482421103_284620_2978")] @@ -1369,9 +1369,8 @@ List Root.Elements.IRelationship.Target public FeatureDirectionKind? DirectionOfExcluding(IFeature feature, List excluded) => this.ComputeDirectionOfExcludingOperation(feature, excluded); /// - /// If a Feature has no declaredName or declaredShortName , then its - /// effective name is given by the effective name of the Feature returned by the namingFeature() - /// operation, if any. + /// If a Feature has no declaredName or declaredShortName, then its effective name is given by the + /// effective name of the Feature returned by the namingFeature() operation, if any. /// /// /// The expected @@ -1476,11 +1475,10 @@ List Root.Elements.IRelationship.Target /// /// A Feature is compatible with an otherType if it either directly or indirectly specializes the - /// otherType or if the otherType is also a Feature and all of the following are true. - ///
  1. Neither this Feature or the otherType have any - /// ownedFeatures.
  2. This Feature directly or indirectly redefines a - /// Feature that is also directly or indirectly redefined by the otherType.
  3. - ///
  4. This Feature can access the otherType.
+ /// otherType or if the otherType is also a Feature and all of the following are true.
  1. Neither + /// this Feature or the otherType have any ownedFeatures.
  2. This Feature directly or indirectly + /// redefines a Feature that is also directly or indirectly redefined by the otherType.
  3. This + /// Feature can access the otherType.
///
/// /// No documentation provided @@ -1647,8 +1645,8 @@ List Root.Elements.IRelationship.Target /// an owningRelationship, then return the string constructed by appending to the path of it's /// owningRelationship the character / followed by the string representation of its position in the list /// of ownedRelatedElements of the owningRelationship (indexed starting at 1). Otherwise, return the - /// empty string. (Note that this operation is overridden for Relationships - /// to use owningRelatedElement when appropriate.) + /// empty string.(Note that this operation is overridden for Relationships to use owningRelatedElement + /// when appropriate.) /// /// /// The expected @@ -1713,13 +1711,12 @@ List Root.Elements.IRelationship.Target /// /// Return a subset of memberships, removing those Memberships whose memberElements are Features and for - /// which either of the following two conditions holds:
    - ///
  1. The memberElement of the Membership is included in redefined Features of another - /// Membership in memberships.
  2. One of the redefined Features of the - /// Membership is a directly redefinedFeature of an ownedFeature of this Type.
  3. - ///
For this purpose, the redefined Features of a Membership - /// whose memberElement is a Feature includes the memberElement and all Features directly or indirectly - /// redefined by the memberElement. + /// which either of the following two conditions holds:
  1. The memberElement of the Membership is + /// included in redefined Features of another Membership in memberships.
  2. One of the redefined + /// Features of the Membership is a directly redefinedFeature of an ownedFeature of this + /// Type.
For this purpose, the redefined Features of a Membership whose memberElement is a + /// Feature includes the memberElement and all Features directly or indirectly redefined by the + /// memberElement. ///
/// /// No documentation provided @@ -1846,11 +1843,11 @@ List Root.Elements.IRelationship.Target /// Return the Features used to determine the types of this Feature (other than this Feature itself). If /// this Feature is not conjugated, then the typingFeatures consist of all subsetted Features, except /// from CrossSubsetting, and the last chainingFeature (if any). If this Feature is conjugated, then the - /// typingFeatures are only its originalType (if the originalType is a Feature). - /// Note. CrossSubsetting is excluded from the determination of the type of a - /// Feature in order to avoid circularity in the construction of implied CrossSubsetting relationships. - /// The validateFeatureCrossFeatureType requires that the crossFeature of a Feature have the same type - /// as the Feature. + /// typingFeatures are only its originalType (if the originalType is a Feature).Note. + /// CrossSubsetting is excluded from the determination of the type of a Feature in order to avoid + /// circularity in the construction of implied CrossSubsetting relationships. The + /// validateFeatureCrossFeatureType requires that the crossFeature of a Feature have the same type as + /// the Feature. /// /// /// The expected collection of diff --git a/SysML2.NET/Core/AutoGenPoco/Intersecting.cs b/SysML2.NET/Core/AutoGenPoco/Intersecting.cs index 757175168..729751df5 100644 --- a/SysML2.NET/Core/AutoGenPoco/Intersecting.cs +++ b/SysML2.NET/Core/AutoGenPoco/Intersecting.cs @@ -383,8 +383,8 @@ List Root.Elements.IRelationship.Target /// an owningRelationship, then return the string constructed by appending to the path of it's /// owningRelationship the character / followed by the string representation of its position in the list /// of ownedRelatedElements of the owningRelationship (indexed starting at 1). Otherwise, return the - /// empty string. (Note that this operation is overridden for Relationships - /// to use owningRelatedElement when appropriate.) + /// empty string.(Note that this operation is overridden for Relationships to use owningRelatedElement + /// when appropriate.) /// /// /// The expected diff --git a/SysML2.NET/Core/AutoGenPoco/Invariant.cs b/SysML2.NET/Core/AutoGenPoco/Invariant.cs index e0039a835..632a6c260 100644 --- a/SysML2.NET/Core/AutoGenPoco/Invariant.cs +++ b/SysML2.NET/Core/AutoGenPoco/Invariant.cs @@ -379,11 +379,11 @@ public Invariant() /// /// Whether all things that meet the classification conditions of this Type must be classified by the - /// Type. (A Type gives conditions that must be met by whatever it - /// classifies, but when isSufficient is false, things may meet those conditions but still not be - /// classified by the Type. For example, a Type Car that is not sufficient could require everything it - /// classifies to have four wheels, but not all four wheeled things would classify as cars. However, if - /// the Type Car were sufficient, it would classify all four-wheeled things.) + /// Type.(A Type gives conditions that must be met by whatever it classifies, but when isSufficient + /// is false, things may meet those conditions but still not be classified by the Type. For example, a + /// Type Car that is not sufficient could require everything it classifies to have four wheels, but not + /// all four wheeled things would classify as cars. However, if the Type Car were sufficient, it would + /// classify all four-wheeled things.) /// [Property(xmiId: "_18_5_3_b9102da_1564072709069_937523_30797", aggregation: AggregationKind.None, lowerValue: 1, upperValue: 1, isOrdered: false, isReadOnly: false, isDerived: false, isDerivedUnion: false, isUnique: true, defaultValue: "false")] [Implements(implementation: "IType.IsSufficient")] @@ -906,9 +906,8 @@ public Invariant() public FeatureDirectionKind? DirectionOfExcluding(IFeature feature, List excluded) => this.ComputeDirectionOfExcludingOperation(feature, excluded); /// - /// If a Feature has no declaredName or declaredShortName , then its - /// effective name is given by the effective name of the Feature returned by the namingFeature() - /// operation, if any. + /// If a Feature has no declaredName or declaredShortName, then its effective name is given by the + /// effective name of the Feature returned by the namingFeature() operation, if any. /// /// /// The expected @@ -1027,11 +1026,10 @@ public Invariant() /// /// A Feature is compatible with an otherType if it either directly or indirectly specializes the - /// otherType or if the otherType is also a Feature and all of the following are true. - ///
  1. Neither this Feature or the otherType have any - /// ownedFeatures.
  2. This Feature directly or indirectly redefines a - /// Feature that is also directly or indirectly redefined by the otherType.
  3. - ///
  4. This Feature can access the otherType.
+ /// otherType or if the otherType is also a Feature and all of the following are true.
  1. Neither + /// this Feature or the otherType have any ownedFeatures.
  2. This Feature directly or indirectly + /// redefines a Feature that is also directly or indirectly redefined by the otherType.
  3. This + /// Feature can access the otherType.
///
/// /// No documentation provided @@ -1120,11 +1118,11 @@ public Invariant() /// Return whether this Expression is model-level evaluable. The visited parameter is used to track /// possible circular Feature references made from FeatureReferenceExpressions (see the redefinition of /// this operation for FeatureReferenceExpression). Such circular references are not allowed in - /// model-level evaluable expressions. An Expression that is not otherwise - /// specialized is model-level evaluable if it has no (non-implied) ownedSpecializations and all its - /// ownedFeatures are either in parameters, the result parameter or a result Expression owned via a - /// ResultExpressionMembership. The parameters must not have any ownedFeatures or a FeatureValue, and - /// the result Expression must be model-level evaluable. + /// model-level evaluable expressions.An Expression that is not otherwise specialized is model-level + /// evaluable if it has no (non-implied) ownedSpecializations and all its ownedFeatures are either in + /// parameters, the result parameter or a result Expression owned via a ResultExpressionMembership. The + /// parameters must not have any ownedFeatures or a FeatureValue, and the result Expression must be + /// model-level evaluable. /// /// /// No documentation provided @@ -1198,8 +1196,8 @@ public Invariant() /// an owningRelationship, then return the string constructed by appending to the path of it's /// owningRelationship the character / followed by the string representation of its position in the list /// of ownedRelatedElements of the owningRelationship (indexed starting at 1). Otherwise, return the - /// empty string. (Note that this operation is overridden for Relationships - /// to use owningRelatedElement when appropriate.) + /// empty string.(Note that this operation is overridden for Relationships to use owningRelatedElement + /// when appropriate.) /// /// /// The expected @@ -1244,13 +1242,12 @@ public Invariant() /// /// Return a subset of memberships, removing those Memberships whose memberElements are Features and for - /// which either of the following two conditions holds:
    - ///
  1. The memberElement of the Membership is included in redefined Features of another - /// Membership in memberships.
  2. One of the redefined Features of the - /// Membership is a directly redefinedFeature of an ownedFeature of this Type.
  3. - ///
For this purpose, the redefined Features of a Membership - /// whose memberElement is a Feature includes the memberElement and all Features directly or indirectly - /// redefined by the memberElement. + /// which either of the following two conditions holds:
  1. The memberElement of the Membership is + /// included in redefined Features of another Membership in memberships.
  2. One of the redefined + /// Features of the Membership is a directly redefinedFeature of an ownedFeature of this + /// Type.
For this purpose, the redefined Features of a Membership whose memberElement is a + /// Feature includes the memberElement and all Features directly or indirectly redefined by the + /// memberElement. ///
/// /// No documentation provided @@ -1377,11 +1374,11 @@ public Invariant() /// Return the Features used to determine the types of this Feature (other than this Feature itself). If /// this Feature is not conjugated, then the typingFeatures consist of all subsetted Features, except /// from CrossSubsetting, and the last chainingFeature (if any). If this Feature is conjugated, then the - /// typingFeatures are only its originalType (if the originalType is a Feature). - /// Note. CrossSubsetting is excluded from the determination of the type of a - /// Feature in order to avoid circularity in the construction of implied CrossSubsetting relationships. - /// The validateFeatureCrossFeatureType requires that the crossFeature of a Feature have the same type - /// as the Feature. + /// typingFeatures are only its originalType (if the originalType is a Feature).Note. + /// CrossSubsetting is excluded from the determination of the type of a Feature in order to avoid + /// circularity in the construction of implied CrossSubsetting relationships. The + /// validateFeatureCrossFeatureType requires that the crossFeature of a Feature have the same type as + /// the Feature. /// /// /// The expected collection of diff --git a/SysML2.NET/Core/AutoGenPoco/InvocationExpression.cs b/SysML2.NET/Core/AutoGenPoco/InvocationExpression.cs index c6242ab2c..1fa657370 100644 --- a/SysML2.NET/Core/AutoGenPoco/InvocationExpression.cs +++ b/SysML2.NET/Core/AutoGenPoco/InvocationExpression.cs @@ -81,8 +81,8 @@ public InvocationExpression() /// /// The Expressions whose results are bound to features of the instantiatedType. The arguments are /// ordered consistent with the order of the features, though they may not be one-to-one with all the - /// features. Note. The derivation of argument is given in - /// the concrete subclasses of InstantiationExpression. + /// features.Note. The derivation of argument is given in the concrete subclasses of + /// InstantiationExpression. /// [Property(xmiId: "_2022x_2_12e503d9_1739134437590_328753_108", aggregation: AggregationKind.None, lowerValue: 0, upperValue: int.MaxValue, isOrdered: true, isReadOnly: false, isDerived: true, isDerivedUnion: false, isUnique: true, defaultValue: null)] [Implements(implementation: "IInstantiationExpression.Argument")] @@ -393,11 +393,11 @@ public InvocationExpression() /// /// Whether all things that meet the classification conditions of this Type must be classified by the - /// Type. (A Type gives conditions that must be met by whatever it - /// classifies, but when isSufficient is false, things may meet those conditions but still not be - /// classified by the Type. For example, a Type Car that is not sufficient could require everything it - /// classifies to have four wheels, but not all four wheeled things would classify as cars. However, if - /// the Type Car were sufficient, it would classify all four-wheeled things.) + /// Type.(A Type gives conditions that must be met by whatever it classifies, but when isSufficient + /// is false, things may meet those conditions but still not be classified by the Type. For example, a + /// Type Car that is not sufficient could require everything it classifies to have four wheels, but not + /// all four wheeled things would classify as cars. However, if the Type Car were sufficient, it would + /// classify all four-wheeled things.) /// [Property(xmiId: "_18_5_3_b9102da_1564072709069_937523_30797", aggregation: AggregationKind.None, lowerValue: 1, upperValue: 1, isOrdered: false, isReadOnly: false, isDerived: false, isDerivedUnion: false, isUnique: true, defaultValue: "false")] [Implements(implementation: "IType.IsSufficient")] @@ -912,9 +912,8 @@ public InvocationExpression() public FeatureDirectionKind? DirectionOfExcluding(IFeature feature, List excluded) => this.ComputeDirectionOfExcludingOperation(feature, excluded); /// - /// If a Feature has no declaredName or declaredShortName , then its - /// effective name is given by the effective name of the Feature returned by the namingFeature() - /// operation, if any. + /// If a Feature has no declaredName or declaredShortName, then its effective name is given by the + /// effective name of the Feature returned by the namingFeature() operation, if any. /// /// /// The expected @@ -1039,8 +1038,7 @@ public InvocationExpression() /// /// Return the Type to act as the instantiatedType for this InstantiationExpression. By default, this is /// the memberElement of the first ownedMembership that is not a FeatureMembership, which must be a - /// Type. Note. This operation is overridden in the subclass - /// OperatorExpression. + /// Type.Note. This operation is overridden in the subclass OperatorExpression. /// /// /// The expected @@ -1057,11 +1055,10 @@ public InvocationExpression() /// /// A Feature is compatible with an otherType if it either directly or indirectly specializes the - /// otherType or if the otherType is also a Feature and all of the following are true. - ///
  1. Neither this Feature or the otherType have any - /// ownedFeatures.
  2. This Feature directly or indirectly redefines a - /// Feature that is also directly or indirectly redefined by the otherType.
  3. - ///
  4. This Feature can access the otherType.
+ /// otherType or if the otherType is also a Feature and all of the following are true.
  1. Neither + /// this Feature or the otherType have any ownedFeatures.
  2. This Feature directly or indirectly + /// redefines a Feature that is also directly or indirectly redefined by the otherType.
  3. This + /// Feature can access the otherType.
///
/// /// No documentation provided @@ -1162,11 +1159,11 @@ public InvocationExpression() /// Return whether this Expression is model-level evaluable. The visited parameter is used to track /// possible circular Feature references made from FeatureReferenceExpressions (see the redefinition of /// this operation for FeatureReferenceExpression). Such circular references are not allowed in - /// model-level evaluable expressions. An Expression that is not otherwise - /// specialized is model-level evaluable if it has no (non-implied) ownedSpecializations and all its - /// ownedFeatures are either in parameters, the result parameter or a result Expression owned via a - /// ResultExpressionMembership. The parameters must not have any ownedFeatures or a FeatureValue, and - /// the result Expression must be model-level evaluable. + /// model-level evaluable expressions.An Expression that is not otherwise specialized is model-level + /// evaluable if it has no (non-implied) ownedSpecializations and all its ownedFeatures are either in + /// parameters, the result parameter or a result Expression owned via a ResultExpressionMembership. The + /// parameters must not have any ownedFeatures or a FeatureValue, and the result Expression must be + /// model-level evaluable. /// /// /// No documentation provided @@ -1240,8 +1237,8 @@ public InvocationExpression() /// an owningRelationship, then return the string constructed by appending to the path of it's /// owningRelationship the character / followed by the string representation of its position in the list /// of ownedRelatedElements of the owningRelationship (indexed starting at 1). Otherwise, return the - /// empty string. (Note that this operation is overridden for Relationships - /// to use owningRelatedElement when appropriate.) + /// empty string.(Note that this operation is overridden for Relationships to use owningRelatedElement + /// when appropriate.) /// /// /// The expected @@ -1286,13 +1283,12 @@ public InvocationExpression() /// /// Return a subset of memberships, removing those Memberships whose memberElements are Features and for - /// which either of the following two conditions holds:
    - ///
  1. The memberElement of the Membership is included in redefined Features of another - /// Membership in memberships.
  2. One of the redefined Features of the - /// Membership is a directly redefinedFeature of an ownedFeature of this Type.
  3. - ///
For this purpose, the redefined Features of a Membership - /// whose memberElement is a Feature includes the memberElement and all Features directly or indirectly - /// redefined by the memberElement. + /// which either of the following two conditions holds:
  1. The memberElement of the Membership is + /// included in redefined Features of another Membership in memberships.
  2. One of the redefined + /// Features of the Membership is a directly redefinedFeature of an ownedFeature of this + /// Type.
For this purpose, the redefined Features of a Membership whose memberElement is a + /// Feature includes the memberElement and all Features directly or indirectly redefined by the + /// memberElement. ///
/// /// No documentation provided @@ -1419,11 +1415,11 @@ public InvocationExpression() /// Return the Features used to determine the types of this Feature (other than this Feature itself). If /// this Feature is not conjugated, then the typingFeatures consist of all subsetted Features, except /// from CrossSubsetting, and the last chainingFeature (if any). If this Feature is conjugated, then the - /// typingFeatures are only its originalType (if the originalType is a Feature). - /// Note. CrossSubsetting is excluded from the determination of the type of a - /// Feature in order to avoid circularity in the construction of implied CrossSubsetting relationships. - /// The validateFeatureCrossFeatureType requires that the crossFeature of a Feature have the same type - /// as the Feature. + /// typingFeatures are only its originalType (if the originalType is a Feature).Note. + /// CrossSubsetting is excluded from the determination of the type of a Feature in order to avoid + /// circularity in the construction of implied CrossSubsetting relationships. The + /// validateFeatureCrossFeatureType requires that the crossFeature of a Feature have the same type as + /// the Feature. /// /// /// The expected collection of diff --git a/SysML2.NET/Core/AutoGenPoco/ItemDefinition.cs b/SysML2.NET/Core/AutoGenPoco/ItemDefinition.cs index a87fe8073..741b9cea0 100644 --- a/SysML2.NET/Core/AutoGenPoco/ItemDefinition.cs +++ b/SysML2.NET/Core/AutoGenPoco/ItemDefinition.cs @@ -273,11 +273,11 @@ public ItemDefinition() /// /// Whether all things that meet the classification conditions of this Type must be classified by the - /// Type. (A Type gives conditions that must be met by whatever it - /// classifies, but when isSufficient is false, things may meet those conditions but still not be - /// classified by the Type. For example, a Type Car that is not sufficient could require everything it - /// classifies to have four wheels, but not all four wheeled things would classify as cars. However, if - /// the Type Car were sufficient, it would classify all four-wheeled things.) + /// Type.(A Type gives conditions that must be met by whatever it classifies, but when isSufficient + /// is false, things may meet those conditions but still not be classified by the Type. For example, a + /// Type Car that is not sufficient could require everything it classifies to have four wheels, but not + /// all four wheeled things would classify as cars. However, if the Type Car were sufficient, it would + /// classify all four-wheeled things.) /// [Property(xmiId: "_18_5_3_b9102da_1564072709069_937523_30797", aggregation: AggregationKind.None, lowerValue: 1, upperValue: 1, isOrdered: false, isReadOnly: false, isDerived: false, isDerivedUnion: false, isUnique: true, defaultValue: "false")] [Implements(implementation: "IType.IsSufficient")] @@ -555,7 +555,7 @@ public ItemDefinition() public List ownedMembership => this.ComputeOwnedMembership(); /// - /// The MetadataUsages that are ownedUsages of this Definition. + /// The MetadataUsages that are ownedMembers of this Definition. /// [Property(xmiId: "_19_0_4_12e503d9_1661488358064_457109_2881", aggregation: AggregationKind.None, lowerValue: 0, upperValue: int.MaxValue, isOrdered: true, isReadOnly: false, isDerived: true, isDerivedUnion: false, isUnique: true, defaultValue: null)] [SubsettedProperty(propertyName: "_19_0_2_12e503d9_1591482567975_649284_3005")] @@ -1022,8 +1022,8 @@ public ItemDefinition() /// an owningRelationship, then return the string constructed by appending to the path of it's /// owningRelationship the character / followed by the string representation of its position in the list /// of ownedRelatedElements of the owningRelationship (indexed starting at 1). Otherwise, return the - /// empty string. (Note that this operation is overridden for Relationships - /// to use owningRelatedElement when appropriate.) + /// empty string.(Note that this operation is overridden for Relationships to use owningRelatedElement + /// when appropriate.) /// /// /// The expected @@ -1045,13 +1045,12 @@ public ItemDefinition() /// /// Return a subset of memberships, removing those Memberships whose memberElements are Features and for - /// which either of the following two conditions holds:
    - ///
  1. The memberElement of the Membership is included in redefined Features of another - /// Membership in memberships.
  2. One of the redefined Features of the - /// Membership is a directly redefinedFeature of an ownedFeature of this Type.
  3. - ///
For this purpose, the redefined Features of a Membership - /// whose memberElement is a Feature includes the memberElement and all Features directly or indirectly - /// redefined by the memberElement. + /// which either of the following two conditions holds:
  1. The memberElement of the Membership is + /// included in redefined Features of another Membership in memberships.
  2. One of the redefined + /// Features of the Membership is a directly redefinedFeature of an ownedFeature of this + /// Type.
For this purpose, the redefined Features of a Membership whose memberElement is a + /// Feature includes the memberElement and all Features directly or indirectly redefined by the + /// memberElement. ///
/// /// No documentation provided diff --git a/SysML2.NET/Core/AutoGenPoco/ItemUsage.cs b/SysML2.NET/Core/AutoGenPoco/ItemUsage.cs index 3f3bb1a8d..c2d8166fa 100644 --- a/SysML2.NET/Core/AutoGenPoco/ItemUsage.cs +++ b/SysML2.NET/Core/AutoGenPoco/ItemUsage.cs @@ -65,9 +65,9 @@ namespace SysML2.NET.Core.POCO.Systems.Items using SysML2.NET.Decorators; /// - /// An ItemUsage is a ItemUsage whose definition is a Structure. Nominally, if the definition is an - /// ItemDefinition, an ItemUsage is a ItemUsage of that ItemDefinition within a system. However, other - /// kinds of Kernel Structures are also allowed, to permit use of Structures from the Kernel Model + /// An ItemUsage is an OccurrenceUsage whose definition is a Structure. Nominally, if the definition is + /// an ItemDefinition, an ItemUsage is a ItemUsage of that ItemDefinition within a system. However, + /// other kinds of Kernel Structures are also allowed, to permit use of Structures from the Kernel Model /// Libraries. /// [Class(xmiId: "_18_5_3_12e503d9_1565480460114_846184_24270", isAbstract: false, isFinalSpecialization: false, isActive: false)] @@ -412,11 +412,11 @@ public ItemUsage() /// /// Whether all things that meet the classification conditions of this Type must be classified by the - /// Type. (A Type gives conditions that must be met by whatever it - /// classifies, but when isSufficient is false, things may meet those conditions but still not be - /// classified by the Type. For example, a Type Car that is not sufficient could require everything it - /// classifies to have four wheels, but not all four wheeled things would classify as cars. However, if - /// the Type Car were sufficient, it would classify all four-wheeled things.) + /// Type.(A Type gives conditions that must be met by whatever it classifies, but when isSufficient + /// is false, things may meet those conditions but still not be classified by the Type. For example, a + /// Type Car that is not sufficient could require everything it classifies to have four wheels, but not + /// all four wheeled things would classify as cars. However, if the Type Car were sufficient, it would + /// classify all four-wheeled things.) /// [Property(xmiId: "_18_5_3_b9102da_1564072709069_937523_30797", aggregation: AggregationKind.None, lowerValue: 1, upperValue: 1, isOrdered: false, isReadOnly: false, isDerived: false, isDerivedUnion: false, isUnique: true, defaultValue: "false")] [Implements(implementation: "IType.IsSufficient")] @@ -464,9 +464,9 @@ bool Core.Features.IFeature.IsVariable /// Whether this Usage may be time varying (that is, whether it is featured by the snapshots of its /// owningType, rather than being featured by the owningType itself). However, if isConstant is also /// true, then the value of the Usage is nevertheless constant over the entire duration of an instance - /// of its owningType (that is, it has the same value on all snapshots). The - /// property mayTimeVary redefines the KerML property Feature::isVariable, making it derived. The - /// property isConstant is inherited from Feature. + /// of its owningType (that is, it has the same value on all snapshots).The property mayTimeVary + /// redefines the KerML property Feature::isVariable, making it derived. The property isConstant is + /// inherited from Feature. /// [Property(xmiId: "_2022x_2_12e503d9_1737227200362_771035_69", aggregation: AggregationKind.None, lowerValue: 1, upperValue: 1, isOrdered: false, isReadOnly: false, isDerived: true, isDerivedUnion: false, isUnique: true, defaultValue: null)] [RedefinedProperty(propertyName: "_2022x_2_12e503d9_1725998273002_23711_212")] @@ -567,8 +567,8 @@ bool Core.Features.IFeature.IsVariable /// /// The ConnectorAsUsages that are nestedUsages of this Usage. Note that this list includes - /// BindingConnectorAsUsages, SuccessionAsUsages, and FlowConnectionUsages because these are - /// ConnectorAsUsages even though they are not ConnectionUsages. + /// BindingConnectorAsUsages, SuccessionAsUsages, and FlowUsages because these are ConnectorAsUsages + /// even though they are not ConnectionUsages. /// [Property(xmiId: "_19_0_2_12e503d9_1591479754895_422988_1242", aggregation: AggregationKind.None, lowerValue: 0, upperValue: int.MaxValue, isOrdered: true, isReadOnly: false, isDerived: true, isDerivedUnion: false, isUnique: true, defaultValue: null)] [SubsettedProperty(propertyName: "_18_5_3_12e503d9_1565472757327_162097_21259")] @@ -616,7 +616,7 @@ bool Core.Features.IFeature.IsVariable public List nestedItem => this.ComputeNestedItem(); /// - /// The MetadataUsages that are nestedUsages of this of this Usage. + /// The MetadataUsages that are ownedMembers of this of this Usage. /// [Property(xmiId: "_19_0_4_12e503d9_1661488589862_120785_2970", aggregation: AggregationKind.None, lowerValue: 0, upperValue: int.MaxValue, isOrdered: true, isReadOnly: false, isDerived: true, isDerivedUnion: false, isUnique: true, defaultValue: null)] [SubsettedProperty(propertyName: "_19_0_2_12e503d9_1591482421103_284620_2978")] @@ -1215,9 +1215,8 @@ bool Core.Features.IFeature.IsVariable public FeatureDirectionKind? DirectionOfExcluding(IFeature feature, List excluded) => this.ComputeDirectionOfExcludingOperation(feature, excluded); /// - /// If a Feature has no declaredName or declaredShortName , then its - /// effective name is given by the effective name of the Feature returned by the namingFeature() - /// operation, if any. + /// If a Feature has no declaredName or declaredShortName, then its effective name is given by the + /// effective name of the Feature returned by the namingFeature() operation, if any. /// /// /// The expected @@ -1322,11 +1321,10 @@ bool Core.Features.IFeature.IsVariable /// /// A Feature is compatible with an otherType if it either directly or indirectly specializes the - /// otherType or if the otherType is also a Feature and all of the following are true. - ///
  1. Neither this Feature or the otherType have any - /// ownedFeatures.
  2. This Feature directly or indirectly redefines a - /// Feature that is also directly or indirectly redefined by the otherType.
  3. - ///
  4. This Feature can access the otherType.
+ /// otherType or if the otherType is also a Feature and all of the following are true.
  1. Neither + /// this Feature or the otherType have any ownedFeatures.
  2. This Feature directly or indirectly + /// redefines a Feature that is also directly or indirectly redefined by the otherType.
  3. This + /// Feature can access the otherType.
///
/// /// No documentation provided @@ -1484,8 +1482,8 @@ bool Core.Features.IFeature.IsVariable /// an owningRelationship, then return the string constructed by appending to the path of it's /// owningRelationship the character / followed by the string representation of its position in the list /// of ownedRelatedElements of the owningRelationship (indexed starting at 1). Otherwise, return the - /// empty string. (Note that this operation is overridden for Relationships - /// to use owningRelatedElement when appropriate.) + /// empty string.(Note that this operation is overridden for Relationships to use owningRelatedElement + /// when appropriate.) /// /// /// The expected @@ -1539,13 +1537,12 @@ bool Core.Features.IFeature.IsVariable /// /// Return a subset of memberships, removing those Memberships whose memberElements are Features and for - /// which either of the following two conditions holds:
    - ///
  1. The memberElement of the Membership is included in redefined Features of another - /// Membership in memberships.
  2. One of the redefined Features of the - /// Membership is a directly redefinedFeature of an ownedFeature of this Type.
  3. - ///
For this purpose, the redefined Features of a Membership - /// whose memberElement is a Feature includes the memberElement and all Features directly or indirectly - /// redefined by the memberElement. + /// which either of the following two conditions holds:
  1. The memberElement of the Membership is + /// included in redefined Features of another Membership in memberships.
  2. One of the redefined + /// Features of the Membership is a directly redefinedFeature of an ownedFeature of this + /// Type.
For this purpose, the redefined Features of a Membership whose memberElement is a + /// Feature includes the memberElement and all Features directly or indirectly redefined by the + /// memberElement. ///
/// /// No documentation provided @@ -1672,11 +1669,11 @@ bool Core.Features.IFeature.IsVariable /// Return the Features used to determine the types of this Feature (other than this Feature itself). If /// this Feature is not conjugated, then the typingFeatures consist of all subsetted Features, except /// from CrossSubsetting, and the last chainingFeature (if any). If this Feature is conjugated, then the - /// typingFeatures are only its originalType (if the originalType is a Feature). - /// Note. CrossSubsetting is excluded from the determination of the type of a - /// Feature in order to avoid circularity in the construction of implied CrossSubsetting relationships. - /// The validateFeatureCrossFeatureType requires that the crossFeature of a Feature have the same type - /// as the Feature. + /// typingFeatures are only its originalType (if the originalType is a Feature).Note. + /// CrossSubsetting is excluded from the determination of the type of a Feature in order to avoid + /// circularity in the construction of implied CrossSubsetting relationships. The + /// validateFeatureCrossFeatureType requires that the crossFeature of a Feature have the same type as + /// the Feature. /// /// /// The expected collection of diff --git a/SysML2.NET/Core/AutoGenPoco/JoinNode.cs b/SysML2.NET/Core/AutoGenPoco/JoinNode.cs index 03de74ff6..98b4e343a 100644 --- a/SysML2.NET/Core/AutoGenPoco/JoinNode.cs +++ b/SysML2.NET/Core/AutoGenPoco/JoinNode.cs @@ -431,11 +431,11 @@ public JoinNode() /// /// Whether all things that meet the classification conditions of this Type must be classified by the - /// Type. (A Type gives conditions that must be met by whatever it - /// classifies, but when isSufficient is false, things may meet those conditions but still not be - /// classified by the Type. For example, a Type Car that is not sufficient could require everything it - /// classifies to have four wheels, but not all four wheeled things would classify as cars. However, if - /// the Type Car were sufficient, it would classify all four-wheeled things.) + /// Type.(A Type gives conditions that must be met by whatever it classifies, but when isSufficient + /// is false, things may meet those conditions but still not be classified by the Type. For example, a + /// Type Car that is not sufficient could require everything it classifies to have four wheels, but not + /// all four wheeled things would classify as cars. However, if the Type Car were sufficient, it would + /// classify all four-wheeled things.) /// [Property(xmiId: "_18_5_3_b9102da_1564072709069_937523_30797", aggregation: AggregationKind.None, lowerValue: 1, upperValue: 1, isOrdered: false, isReadOnly: false, isDerived: false, isDerivedUnion: false, isUnique: true, defaultValue: "false")] [Implements(implementation: "IType.IsSufficient")] @@ -473,9 +473,9 @@ bool Core.Features.IFeature.IsVariable /// Whether this Usage may be time varying (that is, whether it is featured by the snapshots of its /// owningType, rather than being featured by the owningType itself). However, if isConstant is also /// true, then the value of the Usage is nevertheless constant over the entire duration of an instance - /// of its owningType (that is, it has the same value on all snapshots). The - /// property mayTimeVary redefines the KerML property Feature::isVariable, making it derived. The - /// property isConstant is inherited from Feature. + /// of its owningType (that is, it has the same value on all snapshots).The property mayTimeVary + /// redefines the KerML property Feature::isVariable, making it derived. The property isConstant is + /// inherited from Feature. /// [Property(xmiId: "_2022x_2_12e503d9_1737227200362_771035_69", aggregation: AggregationKind.None, lowerValue: 1, upperValue: 1, isOrdered: false, isReadOnly: false, isDerived: true, isDerivedUnion: false, isUnique: true, defaultValue: null)] [RedefinedProperty(propertyName: "_2022x_2_12e503d9_1725998273002_23711_212")] @@ -576,8 +576,8 @@ bool Core.Features.IFeature.IsVariable /// /// The ConnectorAsUsages that are nestedUsages of this Usage. Note that this list includes - /// BindingConnectorAsUsages, SuccessionAsUsages, and FlowConnectionUsages because these are - /// ConnectorAsUsages even though they are not ConnectionUsages. + /// BindingConnectorAsUsages, SuccessionAsUsages, and FlowUsages because these are ConnectorAsUsages + /// even though they are not ConnectionUsages. /// [Property(xmiId: "_19_0_2_12e503d9_1591479754895_422988_1242", aggregation: AggregationKind.None, lowerValue: 0, upperValue: int.MaxValue, isOrdered: true, isReadOnly: false, isDerived: true, isDerivedUnion: false, isUnique: true, defaultValue: null)] [SubsettedProperty(propertyName: "_18_5_3_12e503d9_1565472757327_162097_21259")] @@ -625,7 +625,7 @@ bool Core.Features.IFeature.IsVariable public List nestedItem => this.ComputeNestedItem(); /// - /// The MetadataUsages that are nestedUsages of this of this Usage. + /// The MetadataUsages that are ownedMembers of this of this Usage. /// [Property(xmiId: "_19_0_4_12e503d9_1661488589862_120785_2970", aggregation: AggregationKind.None, lowerValue: 0, upperValue: int.MaxValue, isOrdered: true, isReadOnly: false, isDerived: true, isDerivedUnion: false, isUnique: true, defaultValue: null)] [SubsettedProperty(propertyName: "_19_0_2_12e503d9_1591482421103_284620_2978")] @@ -1246,9 +1246,8 @@ bool Core.Features.IFeature.IsVariable public FeatureDirectionKind? DirectionOfExcluding(IFeature feature, List excluded) => this.ComputeDirectionOfExcludingOperation(feature, excluded); /// - /// If a Feature has no declaredName or declaredShortName , then its - /// effective name is given by the effective name of the Feature returned by the namingFeature() - /// operation, if any. + /// If a Feature has no declaredName or declaredShortName, then its effective name is given by the + /// effective name of the Feature returned by the namingFeature() operation, if any. /// /// /// The expected @@ -1373,11 +1372,10 @@ bool Core.Features.IFeature.IsVariable /// /// A Feature is compatible with an otherType if it either directly or indirectly specializes the - /// otherType or if the otherType is also a Feature and all of the following are true. - ///
  1. Neither this Feature or the otherType have any - /// ownedFeatures.
  2. This Feature directly or indirectly redefines a - /// Feature that is also directly or indirectly redefined by the otherType.
  3. - ///
  4. This Feature can access the otherType.
+ /// otherType or if the otherType is also a Feature and all of the following are true.
  1. Neither + /// this Feature or the otherType have any ownedFeatures.
  2. This Feature directly or indirectly + /// redefines a Feature that is also directly or indirectly redefined by the otherType.
  3. This + /// Feature can access the otherType.
///
/// /// No documentation provided @@ -1563,8 +1561,8 @@ bool Core.Features.IFeature.IsVariable /// an owningRelationship, then return the string constructed by appending to the path of it's /// owningRelationship the character / followed by the string representation of its position in the list /// of ownedRelatedElements of the owningRelationship (indexed starting at 1). Otherwise, return the - /// empty string. (Note that this operation is overridden for Relationships - /// to use owningRelatedElement when appropriate.) + /// empty string.(Note that this operation is overridden for Relationships to use owningRelatedElement + /// when appropriate.) /// /// /// The expected @@ -1618,13 +1616,12 @@ bool Core.Features.IFeature.IsVariable /// /// Return a subset of memberships, removing those Memberships whose memberElements are Features and for - /// which either of the following two conditions holds:
    - ///
  1. The memberElement of the Membership is included in redefined Features of another - /// Membership in memberships.
  2. One of the redefined Features of the - /// Membership is a directly redefinedFeature of an ownedFeature of this Type.
  3. - ///
For this purpose, the redefined Features of a Membership - /// whose memberElement is a Feature includes the memberElement and all Features directly or indirectly - /// redefined by the memberElement. + /// which either of the following two conditions holds:
  1. The memberElement of the Membership is + /// included in redefined Features of another Membership in memberships.
  2. One of the redefined + /// Features of the Membership is a directly redefinedFeature of an ownedFeature of this + /// Type.
For this purpose, the redefined Features of a Membership whose memberElement is a + /// Feature includes the memberElement and all Features directly or indirectly redefined by the + /// memberElement. ///
/// /// No documentation provided @@ -1751,11 +1748,11 @@ bool Core.Features.IFeature.IsVariable /// Return the Features used to determine the types of this Feature (other than this Feature itself). If /// this Feature is not conjugated, then the typingFeatures consist of all subsetted Features, except /// from CrossSubsetting, and the last chainingFeature (if any). If this Feature is conjugated, then the - /// typingFeatures are only its originalType (if the originalType is a Feature). - /// Note. CrossSubsetting is excluded from the determination of the type of a - /// Feature in order to avoid circularity in the construction of implied CrossSubsetting relationships. - /// The validateFeatureCrossFeatureType requires that the crossFeature of a Feature have the same type - /// as the Feature. + /// typingFeatures are only its originalType (if the originalType is a Feature).Note. + /// CrossSubsetting is excluded from the determination of the type of a Feature in order to avoid + /// circularity in the construction of implied CrossSubsetting relationships. The + /// validateFeatureCrossFeatureType requires that the crossFeature of a Feature have the same type as + /// the Feature. /// /// /// The expected collection of diff --git a/SysML2.NET/Core/AutoGenPoco/LibraryPackage.cs b/SysML2.NET/Core/AutoGenPoco/LibraryPackage.cs index ad3440de3..5ffa2f295 100644 --- a/SysML2.NET/Core/AutoGenPoco/LibraryPackage.cs +++ b/SysML2.NET/Core/AutoGenPoco/LibraryPackage.cs @@ -416,8 +416,8 @@ public LibraryPackage() /// an owningRelationship, then return the string constructed by appending to the path of it's /// owningRelationship the character / followed by the string representation of its position in the list /// of ownedRelatedElements of the owningRelationship (indexed starting at 1). Otherwise, return the - /// empty string. (Note that this operation is overridden for Relationships - /// to use owningRelatedElement when appropriate.) + /// empty string.(Note that this operation is overridden for Relationships to use owningRelatedElement + /// when appropriate.) /// /// /// The expected diff --git a/SysML2.NET/Core/AutoGenPoco/LiteralBoolean.cs b/SysML2.NET/Core/AutoGenPoco/LiteralBoolean.cs index fd1d0e76e..138c1c85b 100644 --- a/SysML2.NET/Core/AutoGenPoco/LiteralBoolean.cs +++ b/SysML2.NET/Core/AutoGenPoco/LiteralBoolean.cs @@ -371,11 +371,11 @@ public LiteralBoolean() /// /// Whether all things that meet the classification conditions of this Type must be classified by the - /// Type. (A Type gives conditions that must be met by whatever it - /// classifies, but when isSufficient is false, things may meet those conditions but still not be - /// classified by the Type. For example, a Type Car that is not sufficient could require everything it - /// classifies to have four wheels, but not all four wheeled things would classify as cars. However, if - /// the Type Car were sufficient, it would classify all four-wheeled things.) + /// Type.(A Type gives conditions that must be met by whatever it classifies, but when isSufficient + /// is false, things may meet those conditions but still not be classified by the Type. For example, a + /// Type Car that is not sufficient could require everything it classifies to have four wheels, but not + /// all four wheeled things would classify as cars. However, if the Type Car were sufficient, it would + /// classify all four-wheeled things.) /// [Property(xmiId: "_18_5_3_b9102da_1564072709069_937523_30797", aggregation: AggregationKind.None, lowerValue: 1, upperValue: 1, isOrdered: false, isReadOnly: false, isDerived: false, isDerivedUnion: false, isUnique: true, defaultValue: "false")] [Implements(implementation: "IType.IsSufficient")] @@ -897,9 +897,8 @@ public LiteralBoolean() public FeatureDirectionKind? DirectionOfExcluding(IFeature feature, List excluded) => this.ComputeDirectionOfExcludingOperation(feature, excluded); /// - /// If a Feature has no declaredName or declaredShortName , then its - /// effective name is given by the effective name of the Feature returned by the namingFeature() - /// operation, if any. + /// If a Feature has no declaredName or declaredShortName, then its effective name is given by the + /// effective name of the Feature returned by the namingFeature() operation, if any. /// /// /// The expected @@ -1029,11 +1028,10 @@ public LiteralBoolean() /// /// A Feature is compatible with an otherType if it either directly or indirectly specializes the - /// otherType or if the otherType is also a Feature and all of the following are true. - ///
  1. Neither this Feature or the otherType have any - /// ownedFeatures.
  2. This Feature directly or indirectly redefines a - /// Feature that is also directly or indirectly redefined by the otherType.
  3. - ///
  4. This Feature can access the otherType.
+ /// otherType or if the otherType is also a Feature and all of the following are true.
  1. Neither + /// this Feature or the otherType have any ownedFeatures.
  2. This Feature directly or indirectly + /// redefines a Feature that is also directly or indirectly redefined by the otherType.
  3. This + /// Feature can access the otherType.
///
/// /// No documentation provided @@ -1133,11 +1131,11 @@ public LiteralBoolean() /// Return whether this Expression is model-level evaluable. The visited parameter is used to track /// possible circular Feature references made from FeatureReferenceExpressions (see the redefinition of /// this operation for FeatureReferenceExpression). Such circular references are not allowed in - /// model-level evaluable expressions. An Expression that is not otherwise - /// specialized is model-level evaluable if it has no (non-implied) ownedSpecializations and all its - /// ownedFeatures are either in parameters, the result parameter or a result Expression owned via a - /// ResultExpressionMembership. The parameters must not have any ownedFeatures or a FeatureValue, and - /// the result Expression must be model-level evaluable. + /// model-level evaluable expressions.An Expression that is not otherwise specialized is model-level + /// evaluable if it has no (non-implied) ownedSpecializations and all its ownedFeatures are either in + /// parameters, the result parameter or a result Expression owned via a ResultExpressionMembership. The + /// parameters must not have any ownedFeatures or a FeatureValue, and the result Expression must be + /// model-level evaluable. /// /// /// No documentation provided @@ -1211,8 +1209,8 @@ public LiteralBoolean() /// an owningRelationship, then return the string constructed by appending to the path of it's /// owningRelationship the character / followed by the string representation of its position in the list /// of ownedRelatedElements of the owningRelationship (indexed starting at 1). Otherwise, return the - /// empty string. (Note that this operation is overridden for Relationships - /// to use owningRelatedElement when appropriate.) + /// empty string.(Note that this operation is overridden for Relationships to use owningRelatedElement + /// when appropriate.) /// /// /// The expected @@ -1257,13 +1255,12 @@ public LiteralBoolean() /// /// Return a subset of memberships, removing those Memberships whose memberElements are Features and for - /// which either of the following two conditions holds:
    - ///
  1. The memberElement of the Membership is included in redefined Features of another - /// Membership in memberships.
  2. One of the redefined Features of the - /// Membership is a directly redefinedFeature of an ownedFeature of this Type.
  3. - ///
For this purpose, the redefined Features of a Membership - /// whose memberElement is a Feature includes the memberElement and all Features directly or indirectly - /// redefined by the memberElement. + /// which either of the following two conditions holds:
  1. The memberElement of the Membership is + /// included in redefined Features of another Membership in memberships.
  2. One of the redefined + /// Features of the Membership is a directly redefinedFeature of an ownedFeature of this + /// Type.
For this purpose, the redefined Features of a Membership whose memberElement is a + /// Feature includes the memberElement and all Features directly or indirectly redefined by the + /// memberElement. ///
/// /// No documentation provided @@ -1390,11 +1387,11 @@ public LiteralBoolean() /// Return the Features used to determine the types of this Feature (other than this Feature itself). If /// this Feature is not conjugated, then the typingFeatures consist of all subsetted Features, except /// from CrossSubsetting, and the last chainingFeature (if any). If this Feature is conjugated, then the - /// typingFeatures are only its originalType (if the originalType is a Feature). - /// Note. CrossSubsetting is excluded from the determination of the type of a - /// Feature in order to avoid circularity in the construction of implied CrossSubsetting relationships. - /// The validateFeatureCrossFeatureType requires that the crossFeature of a Feature have the same type - /// as the Feature. + /// typingFeatures are only its originalType (if the originalType is a Feature).Note. + /// CrossSubsetting is excluded from the determination of the type of a Feature in order to avoid + /// circularity in the construction of implied CrossSubsetting relationships. The + /// validateFeatureCrossFeatureType requires that the crossFeature of a Feature have the same type as + /// the Feature. /// /// /// The expected collection of diff --git a/SysML2.NET/Core/AutoGenPoco/LiteralExpression.cs b/SysML2.NET/Core/AutoGenPoco/LiteralExpression.cs index 5ef5e2626..861cecc29 100644 --- a/SysML2.NET/Core/AutoGenPoco/LiteralExpression.cs +++ b/SysML2.NET/Core/AutoGenPoco/LiteralExpression.cs @@ -370,11 +370,11 @@ public LiteralExpression() /// /// Whether all things that meet the classification conditions of this Type must be classified by the - /// Type. (A Type gives conditions that must be met by whatever it - /// classifies, but when isSufficient is false, things may meet those conditions but still not be - /// classified by the Type. For example, a Type Car that is not sufficient could require everything it - /// classifies to have four wheels, but not all four wheeled things would classify as cars. However, if - /// the Type Car were sufficient, it would classify all four-wheeled things.) + /// Type.(A Type gives conditions that must be met by whatever it classifies, but when isSufficient + /// is false, things may meet those conditions but still not be classified by the Type. For example, a + /// Type Car that is not sufficient could require everything it classifies to have four wheels, but not + /// all four wheeled things would classify as cars. However, if the Type Car were sufficient, it would + /// classify all four-wheeled things.) /// [Property(xmiId: "_18_5_3_b9102da_1564072709069_937523_30797", aggregation: AggregationKind.None, lowerValue: 1, upperValue: 1, isOrdered: false, isReadOnly: false, isDerived: false, isDerivedUnion: false, isUnique: true, defaultValue: "false")] [Implements(implementation: "IType.IsSufficient")] @@ -889,9 +889,8 @@ public LiteralExpression() public FeatureDirectionKind? DirectionOfExcluding(IFeature feature, List excluded) => this.ComputeDirectionOfExcludingOperation(feature, excluded); /// - /// If a Feature has no declaredName or declaredShortName , then its - /// effective name is given by the effective name of the Feature returned by the namingFeature() - /// operation, if any. + /// If a Feature has no declaredName or declaredShortName, then its effective name is given by the + /// effective name of the Feature returned by the namingFeature() operation, if any. /// /// /// The expected @@ -1021,11 +1020,10 @@ public LiteralExpression() /// /// A Feature is compatible with an otherType if it either directly or indirectly specializes the - /// otherType or if the otherType is also a Feature and all of the following are true. - ///
  1. Neither this Feature or the otherType have any - /// ownedFeatures.
  2. This Feature directly or indirectly redefines a - /// Feature that is also directly or indirectly redefined by the otherType.
  3. - ///
  4. This Feature can access the otherType.
+ /// otherType or if the otherType is also a Feature and all of the following are true.
  1. Neither + /// this Feature or the otherType have any ownedFeatures.
  2. This Feature directly or indirectly + /// redefines a Feature that is also directly or indirectly redefined by the otherType.
  3. This + /// Feature can access the otherType.
///
/// /// No documentation provided @@ -1125,11 +1123,11 @@ public LiteralExpression() /// Return whether this Expression is model-level evaluable. The visited parameter is used to track /// possible circular Feature references made from FeatureReferenceExpressions (see the redefinition of /// this operation for FeatureReferenceExpression). Such circular references are not allowed in - /// model-level evaluable expressions. An Expression that is not otherwise - /// specialized is model-level evaluable if it has no (non-implied) ownedSpecializations and all its - /// ownedFeatures are either in parameters, the result parameter or a result Expression owned via a - /// ResultExpressionMembership. The parameters must not have any ownedFeatures or a FeatureValue, and - /// the result Expression must be model-level evaluable. + /// model-level evaluable expressions.An Expression that is not otherwise specialized is model-level + /// evaluable if it has no (non-implied) ownedSpecializations and all its ownedFeatures are either in + /// parameters, the result parameter or a result Expression owned via a ResultExpressionMembership. The + /// parameters must not have any ownedFeatures or a FeatureValue, and the result Expression must be + /// model-level evaluable. /// /// /// No documentation provided @@ -1203,8 +1201,8 @@ public LiteralExpression() /// an owningRelationship, then return the string constructed by appending to the path of it's /// owningRelationship the character / followed by the string representation of its position in the list /// of ownedRelatedElements of the owningRelationship (indexed starting at 1). Otherwise, return the - /// empty string. (Note that this operation is overridden for Relationships - /// to use owningRelatedElement when appropriate.) + /// empty string.(Note that this operation is overridden for Relationships to use owningRelatedElement + /// when appropriate.) /// /// /// The expected @@ -1249,13 +1247,12 @@ public LiteralExpression() /// /// Return a subset of memberships, removing those Memberships whose memberElements are Features and for - /// which either of the following two conditions holds:
    - ///
  1. The memberElement of the Membership is included in redefined Features of another - /// Membership in memberships.
  2. One of the redefined Features of the - /// Membership is a directly redefinedFeature of an ownedFeature of this Type.
  3. - ///
For this purpose, the redefined Features of a Membership - /// whose memberElement is a Feature includes the memberElement and all Features directly or indirectly - /// redefined by the memberElement. + /// which either of the following two conditions holds:
  1. The memberElement of the Membership is + /// included in redefined Features of another Membership in memberships.
  2. One of the redefined + /// Features of the Membership is a directly redefinedFeature of an ownedFeature of this + /// Type.
For this purpose, the redefined Features of a Membership whose memberElement is a + /// Feature includes the memberElement and all Features directly or indirectly redefined by the + /// memberElement. ///
/// /// No documentation provided @@ -1382,11 +1379,11 @@ public LiteralExpression() /// Return the Features used to determine the types of this Feature (other than this Feature itself). If /// this Feature is not conjugated, then the typingFeatures consist of all subsetted Features, except /// from CrossSubsetting, and the last chainingFeature (if any). If this Feature is conjugated, then the - /// typingFeatures are only its originalType (if the originalType is a Feature). - /// Note. CrossSubsetting is excluded from the determination of the type of a - /// Feature in order to avoid circularity in the construction of implied CrossSubsetting relationships. - /// The validateFeatureCrossFeatureType requires that the crossFeature of a Feature have the same type - /// as the Feature. + /// typingFeatures are only its originalType (if the originalType is a Feature).Note. + /// CrossSubsetting is excluded from the determination of the type of a Feature in order to avoid + /// circularity in the construction of implied CrossSubsetting relationships. The + /// validateFeatureCrossFeatureType requires that the crossFeature of a Feature have the same type as + /// the Feature. /// /// /// The expected collection of diff --git a/SysML2.NET/Core/AutoGenPoco/LiteralInfinity.cs b/SysML2.NET/Core/AutoGenPoco/LiteralInfinity.cs index 707b9e335..f32b94e75 100644 --- a/SysML2.NET/Core/AutoGenPoco/LiteralInfinity.cs +++ b/SysML2.NET/Core/AutoGenPoco/LiteralInfinity.cs @@ -371,11 +371,11 @@ public LiteralInfinity() /// /// Whether all things that meet the classification conditions of this Type must be classified by the - /// Type. (A Type gives conditions that must be met by whatever it - /// classifies, but when isSufficient is false, things may meet those conditions but still not be - /// classified by the Type. For example, a Type Car that is not sufficient could require everything it - /// classifies to have four wheels, but not all four wheeled things would classify as cars. However, if - /// the Type Car were sufficient, it would classify all four-wheeled things.) + /// Type.(A Type gives conditions that must be met by whatever it classifies, but when isSufficient + /// is false, things may meet those conditions but still not be classified by the Type. For example, a + /// Type Car that is not sufficient could require everything it classifies to have four wheels, but not + /// all four wheeled things would classify as cars. However, if the Type Car were sufficient, it would + /// classify all four-wheeled things.) /// [Property(xmiId: "_18_5_3_b9102da_1564072709069_937523_30797", aggregation: AggregationKind.None, lowerValue: 1, upperValue: 1, isOrdered: false, isReadOnly: false, isDerived: false, isDerivedUnion: false, isUnique: true, defaultValue: "false")] [Implements(implementation: "IType.IsSufficient")] @@ -890,9 +890,8 @@ public LiteralInfinity() public FeatureDirectionKind? DirectionOfExcluding(IFeature feature, List excluded) => this.ComputeDirectionOfExcludingOperation(feature, excluded); /// - /// If a Feature has no declaredName or declaredShortName , then its - /// effective name is given by the effective name of the Feature returned by the namingFeature() - /// operation, if any. + /// If a Feature has no declaredName or declaredShortName, then its effective name is given by the + /// effective name of the Feature returned by the namingFeature() operation, if any. /// /// /// The expected @@ -1022,11 +1021,10 @@ public LiteralInfinity() /// /// A Feature is compatible with an otherType if it either directly or indirectly specializes the - /// otherType or if the otherType is also a Feature and all of the following are true. - ///
  1. Neither this Feature or the otherType have any - /// ownedFeatures.
  2. This Feature directly or indirectly redefines a - /// Feature that is also directly or indirectly redefined by the otherType.
  3. - ///
  4. This Feature can access the otherType.
+ /// otherType or if the otherType is also a Feature and all of the following are true.
  1. Neither + /// this Feature or the otherType have any ownedFeatures.
  2. This Feature directly or indirectly + /// redefines a Feature that is also directly or indirectly redefined by the otherType.
  3. This + /// Feature can access the otherType.
///
/// /// No documentation provided @@ -1126,11 +1124,11 @@ public LiteralInfinity() /// Return whether this Expression is model-level evaluable. The visited parameter is used to track /// possible circular Feature references made from FeatureReferenceExpressions (see the redefinition of /// this operation for FeatureReferenceExpression). Such circular references are not allowed in - /// model-level evaluable expressions. An Expression that is not otherwise - /// specialized is model-level evaluable if it has no (non-implied) ownedSpecializations and all its - /// ownedFeatures are either in parameters, the result parameter or a result Expression owned via a - /// ResultExpressionMembership. The parameters must not have any ownedFeatures or a FeatureValue, and - /// the result Expression must be model-level evaluable. + /// model-level evaluable expressions.An Expression that is not otherwise specialized is model-level + /// evaluable if it has no (non-implied) ownedSpecializations and all its ownedFeatures are either in + /// parameters, the result parameter or a result Expression owned via a ResultExpressionMembership. The + /// parameters must not have any ownedFeatures or a FeatureValue, and the result Expression must be + /// model-level evaluable. /// /// /// No documentation provided @@ -1204,8 +1202,8 @@ public LiteralInfinity() /// an owningRelationship, then return the string constructed by appending to the path of it's /// owningRelationship the character / followed by the string representation of its position in the list /// of ownedRelatedElements of the owningRelationship (indexed starting at 1). Otherwise, return the - /// empty string. (Note that this operation is overridden for Relationships - /// to use owningRelatedElement when appropriate.) + /// empty string.(Note that this operation is overridden for Relationships to use owningRelatedElement + /// when appropriate.) /// /// /// The expected @@ -1250,13 +1248,12 @@ public LiteralInfinity() /// /// Return a subset of memberships, removing those Memberships whose memberElements are Features and for - /// which either of the following two conditions holds:
    - ///
  1. The memberElement of the Membership is included in redefined Features of another - /// Membership in memberships.
  2. One of the redefined Features of the - /// Membership is a directly redefinedFeature of an ownedFeature of this Type.
  3. - ///
For this purpose, the redefined Features of a Membership - /// whose memberElement is a Feature includes the memberElement and all Features directly or indirectly - /// redefined by the memberElement. + /// which either of the following two conditions holds:
  1. The memberElement of the Membership is + /// included in redefined Features of another Membership in memberships.
  2. One of the redefined + /// Features of the Membership is a directly redefinedFeature of an ownedFeature of this + /// Type.
For this purpose, the redefined Features of a Membership whose memberElement is a + /// Feature includes the memberElement and all Features directly or indirectly redefined by the + /// memberElement. ///
/// /// No documentation provided @@ -1383,11 +1380,11 @@ public LiteralInfinity() /// Return the Features used to determine the types of this Feature (other than this Feature itself). If /// this Feature is not conjugated, then the typingFeatures consist of all subsetted Features, except /// from CrossSubsetting, and the last chainingFeature (if any). If this Feature is conjugated, then the - /// typingFeatures are only its originalType (if the originalType is a Feature). - /// Note. CrossSubsetting is excluded from the determination of the type of a - /// Feature in order to avoid circularity in the construction of implied CrossSubsetting relationships. - /// The validateFeatureCrossFeatureType requires that the crossFeature of a Feature have the same type - /// as the Feature. + /// typingFeatures are only its originalType (if the originalType is a Feature).Note. + /// CrossSubsetting is excluded from the determination of the type of a Feature in order to avoid + /// circularity in the construction of implied CrossSubsetting relationships. The + /// validateFeatureCrossFeatureType requires that the crossFeature of a Feature have the same type as + /// the Feature. /// /// /// The expected collection of diff --git a/SysML2.NET/Core/AutoGenPoco/LiteralInteger.cs b/SysML2.NET/Core/AutoGenPoco/LiteralInteger.cs index 119668814..096cc4cbf 100644 --- a/SysML2.NET/Core/AutoGenPoco/LiteralInteger.cs +++ b/SysML2.NET/Core/AutoGenPoco/LiteralInteger.cs @@ -371,11 +371,11 @@ public LiteralInteger() /// /// Whether all things that meet the classification conditions of this Type must be classified by the - /// Type. (A Type gives conditions that must be met by whatever it - /// classifies, but when isSufficient is false, things may meet those conditions but still not be - /// classified by the Type. For example, a Type Car that is not sufficient could require everything it - /// classifies to have four wheels, but not all four wheeled things would classify as cars. However, if - /// the Type Car were sufficient, it would classify all four-wheeled things.) + /// Type.(A Type gives conditions that must be met by whatever it classifies, but when isSufficient + /// is false, things may meet those conditions but still not be classified by the Type. For example, a + /// Type Car that is not sufficient could require everything it classifies to have four wheels, but not + /// all four wheeled things would classify as cars. However, if the Type Car were sufficient, it would + /// classify all four-wheeled things.) /// [Property(xmiId: "_18_5_3_b9102da_1564072709069_937523_30797", aggregation: AggregationKind.None, lowerValue: 1, upperValue: 1, isOrdered: false, isReadOnly: false, isDerived: false, isDerivedUnion: false, isUnique: true, defaultValue: "false")] [Implements(implementation: "IType.IsSufficient")] @@ -897,9 +897,8 @@ public LiteralInteger() public FeatureDirectionKind? DirectionOfExcluding(IFeature feature, List excluded) => this.ComputeDirectionOfExcludingOperation(feature, excluded); /// - /// If a Feature has no declaredName or declaredShortName , then its - /// effective name is given by the effective name of the Feature returned by the namingFeature() - /// operation, if any. + /// If a Feature has no declaredName or declaredShortName, then its effective name is given by the + /// effective name of the Feature returned by the namingFeature() operation, if any. /// /// /// The expected @@ -1029,11 +1028,10 @@ public LiteralInteger() /// /// A Feature is compatible with an otherType if it either directly or indirectly specializes the - /// otherType or if the otherType is also a Feature and all of the following are true. - ///
  1. Neither this Feature or the otherType have any - /// ownedFeatures.
  2. This Feature directly or indirectly redefines a - /// Feature that is also directly or indirectly redefined by the otherType.
  3. - ///
  4. This Feature can access the otherType.
+ /// otherType or if the otherType is also a Feature and all of the following are true.
  1. Neither + /// this Feature or the otherType have any ownedFeatures.
  2. This Feature directly or indirectly + /// redefines a Feature that is also directly or indirectly redefined by the otherType.
  3. This + /// Feature can access the otherType.
///
/// /// No documentation provided @@ -1133,11 +1131,11 @@ public LiteralInteger() /// Return whether this Expression is model-level evaluable. The visited parameter is used to track /// possible circular Feature references made from FeatureReferenceExpressions (see the redefinition of /// this operation for FeatureReferenceExpression). Such circular references are not allowed in - /// model-level evaluable expressions. An Expression that is not otherwise - /// specialized is model-level evaluable if it has no (non-implied) ownedSpecializations and all its - /// ownedFeatures are either in parameters, the result parameter or a result Expression owned via a - /// ResultExpressionMembership. The parameters must not have any ownedFeatures or a FeatureValue, and - /// the result Expression must be model-level evaluable. + /// model-level evaluable expressions.An Expression that is not otherwise specialized is model-level + /// evaluable if it has no (non-implied) ownedSpecializations and all its ownedFeatures are either in + /// parameters, the result parameter or a result Expression owned via a ResultExpressionMembership. The + /// parameters must not have any ownedFeatures or a FeatureValue, and the result Expression must be + /// model-level evaluable. /// /// /// No documentation provided @@ -1211,8 +1209,8 @@ public LiteralInteger() /// an owningRelationship, then return the string constructed by appending to the path of it's /// owningRelationship the character / followed by the string representation of its position in the list /// of ownedRelatedElements of the owningRelationship (indexed starting at 1). Otherwise, return the - /// empty string. (Note that this operation is overridden for Relationships - /// to use owningRelatedElement when appropriate.) + /// empty string.(Note that this operation is overridden for Relationships to use owningRelatedElement + /// when appropriate.) /// /// /// The expected @@ -1257,13 +1255,12 @@ public LiteralInteger() /// /// Return a subset of memberships, removing those Memberships whose memberElements are Features and for - /// which either of the following two conditions holds:
    - ///
  1. The memberElement of the Membership is included in redefined Features of another - /// Membership in memberships.
  2. One of the redefined Features of the - /// Membership is a directly redefinedFeature of an ownedFeature of this Type.
  3. - ///
For this purpose, the redefined Features of a Membership - /// whose memberElement is a Feature includes the memberElement and all Features directly or indirectly - /// redefined by the memberElement. + /// which either of the following two conditions holds:
  1. The memberElement of the Membership is + /// included in redefined Features of another Membership in memberships.
  2. One of the redefined + /// Features of the Membership is a directly redefinedFeature of an ownedFeature of this + /// Type.
For this purpose, the redefined Features of a Membership whose memberElement is a + /// Feature includes the memberElement and all Features directly or indirectly redefined by the + /// memberElement. ///
/// /// No documentation provided @@ -1390,11 +1387,11 @@ public LiteralInteger() /// Return the Features used to determine the types of this Feature (other than this Feature itself). If /// this Feature is not conjugated, then the typingFeatures consist of all subsetted Features, except /// from CrossSubsetting, and the last chainingFeature (if any). If this Feature is conjugated, then the - /// typingFeatures are only its originalType (if the originalType is a Feature). - /// Note. CrossSubsetting is excluded from the determination of the type of a - /// Feature in order to avoid circularity in the construction of implied CrossSubsetting relationships. - /// The validateFeatureCrossFeatureType requires that the crossFeature of a Feature have the same type - /// as the Feature. + /// typingFeatures are only its originalType (if the originalType is a Feature).Note. + /// CrossSubsetting is excluded from the determination of the type of a Feature in order to avoid + /// circularity in the construction of implied CrossSubsetting relationships. The + /// validateFeatureCrossFeatureType requires that the crossFeature of a Feature have the same type as + /// the Feature. /// /// /// The expected collection of diff --git a/SysML2.NET/Core/AutoGenPoco/LiteralRational.cs b/SysML2.NET/Core/AutoGenPoco/LiteralRational.cs index 4b3f85ce7..e9a125d60 100644 --- a/SysML2.NET/Core/AutoGenPoco/LiteralRational.cs +++ b/SysML2.NET/Core/AutoGenPoco/LiteralRational.cs @@ -371,11 +371,11 @@ public LiteralRational() /// /// Whether all things that meet the classification conditions of this Type must be classified by the - /// Type. (A Type gives conditions that must be met by whatever it - /// classifies, but when isSufficient is false, things may meet those conditions but still not be - /// classified by the Type. For example, a Type Car that is not sufficient could require everything it - /// classifies to have four wheels, but not all four wheeled things would classify as cars. However, if - /// the Type Car were sufficient, it would classify all four-wheeled things.) + /// Type.(A Type gives conditions that must be met by whatever it classifies, but when isSufficient + /// is false, things may meet those conditions but still not be classified by the Type. For example, a + /// Type Car that is not sufficient could require everything it classifies to have four wheels, but not + /// all four wheeled things would classify as cars. However, if the Type Car were sufficient, it would + /// classify all four-wheeled things.) /// [Property(xmiId: "_18_5_3_b9102da_1564072709069_937523_30797", aggregation: AggregationKind.None, lowerValue: 1, upperValue: 1, isOrdered: false, isReadOnly: false, isDerived: false, isDerivedUnion: false, isUnique: true, defaultValue: "false")] [Implements(implementation: "IType.IsSufficient")] @@ -897,9 +897,8 @@ public LiteralRational() public FeatureDirectionKind? DirectionOfExcluding(IFeature feature, List excluded) => this.ComputeDirectionOfExcludingOperation(feature, excluded); /// - /// If a Feature has no declaredName or declaredShortName , then its - /// effective name is given by the effective name of the Feature returned by the namingFeature() - /// operation, if any. + /// If a Feature has no declaredName or declaredShortName, then its effective name is given by the + /// effective name of the Feature returned by the namingFeature() operation, if any. /// /// /// The expected @@ -1029,11 +1028,10 @@ public LiteralRational() /// /// A Feature is compatible with an otherType if it either directly or indirectly specializes the - /// otherType or if the otherType is also a Feature and all of the following are true. - ///
  1. Neither this Feature or the otherType have any - /// ownedFeatures.
  2. This Feature directly or indirectly redefines a - /// Feature that is also directly or indirectly redefined by the otherType.
  3. - ///
  4. This Feature can access the otherType.
+ /// otherType or if the otherType is also a Feature and all of the following are true.
  1. Neither + /// this Feature or the otherType have any ownedFeatures.
  2. This Feature directly or indirectly + /// redefines a Feature that is also directly or indirectly redefined by the otherType.
  3. This + /// Feature can access the otherType.
///
/// /// No documentation provided @@ -1133,11 +1131,11 @@ public LiteralRational() /// Return whether this Expression is model-level evaluable. The visited parameter is used to track /// possible circular Feature references made from FeatureReferenceExpressions (see the redefinition of /// this operation for FeatureReferenceExpression). Such circular references are not allowed in - /// model-level evaluable expressions. An Expression that is not otherwise - /// specialized is model-level evaluable if it has no (non-implied) ownedSpecializations and all its - /// ownedFeatures are either in parameters, the result parameter or a result Expression owned via a - /// ResultExpressionMembership. The parameters must not have any ownedFeatures or a FeatureValue, and - /// the result Expression must be model-level evaluable. + /// model-level evaluable expressions.An Expression that is not otherwise specialized is model-level + /// evaluable if it has no (non-implied) ownedSpecializations and all its ownedFeatures are either in + /// parameters, the result parameter or a result Expression owned via a ResultExpressionMembership. The + /// parameters must not have any ownedFeatures or a FeatureValue, and the result Expression must be + /// model-level evaluable. /// /// /// No documentation provided @@ -1211,8 +1209,8 @@ public LiteralRational() /// an owningRelationship, then return the string constructed by appending to the path of it's /// owningRelationship the character / followed by the string representation of its position in the list /// of ownedRelatedElements of the owningRelationship (indexed starting at 1). Otherwise, return the - /// empty string. (Note that this operation is overridden for Relationships - /// to use owningRelatedElement when appropriate.) + /// empty string.(Note that this operation is overridden for Relationships to use owningRelatedElement + /// when appropriate.) /// /// /// The expected @@ -1257,13 +1255,12 @@ public LiteralRational() /// /// Return a subset of memberships, removing those Memberships whose memberElements are Features and for - /// which either of the following two conditions holds:
    - ///
  1. The memberElement of the Membership is included in redefined Features of another - /// Membership in memberships.
  2. One of the redefined Features of the - /// Membership is a directly redefinedFeature of an ownedFeature of this Type.
  3. - ///
For this purpose, the redefined Features of a Membership - /// whose memberElement is a Feature includes the memberElement and all Features directly or indirectly - /// redefined by the memberElement. + /// which either of the following two conditions holds:
  1. The memberElement of the Membership is + /// included in redefined Features of another Membership in memberships.
  2. One of the redefined + /// Features of the Membership is a directly redefinedFeature of an ownedFeature of this + /// Type.
For this purpose, the redefined Features of a Membership whose memberElement is a + /// Feature includes the memberElement and all Features directly or indirectly redefined by the + /// memberElement. ///
/// /// No documentation provided @@ -1390,11 +1387,11 @@ public LiteralRational() /// Return the Features used to determine the types of this Feature (other than this Feature itself). If /// this Feature is not conjugated, then the typingFeatures consist of all subsetted Features, except /// from CrossSubsetting, and the last chainingFeature (if any). If this Feature is conjugated, then the - /// typingFeatures are only its originalType (if the originalType is a Feature). - /// Note. CrossSubsetting is excluded from the determination of the type of a - /// Feature in order to avoid circularity in the construction of implied CrossSubsetting relationships. - /// The validateFeatureCrossFeatureType requires that the crossFeature of a Feature have the same type - /// as the Feature. + /// typingFeatures are only its originalType (if the originalType is a Feature).Note. + /// CrossSubsetting is excluded from the determination of the type of a Feature in order to avoid + /// circularity in the construction of implied CrossSubsetting relationships. The + /// validateFeatureCrossFeatureType requires that the crossFeature of a Feature have the same type as + /// the Feature. /// /// /// The expected collection of diff --git a/SysML2.NET/Core/AutoGenPoco/LiteralString.cs b/SysML2.NET/Core/AutoGenPoco/LiteralString.cs index 509eccc4f..8e75189e1 100644 --- a/SysML2.NET/Core/AutoGenPoco/LiteralString.cs +++ b/SysML2.NET/Core/AutoGenPoco/LiteralString.cs @@ -371,11 +371,11 @@ public LiteralString() /// /// Whether all things that meet the classification conditions of this Type must be classified by the - /// Type. (A Type gives conditions that must be met by whatever it - /// classifies, but when isSufficient is false, things may meet those conditions but still not be - /// classified by the Type. For example, a Type Car that is not sufficient could require everything it - /// classifies to have four wheels, but not all four wheeled things would classify as cars. However, if - /// the Type Car were sufficient, it would classify all four-wheeled things.) + /// Type.(A Type gives conditions that must be met by whatever it classifies, but when isSufficient + /// is false, things may meet those conditions but still not be classified by the Type. For example, a + /// Type Car that is not sufficient could require everything it classifies to have four wheels, but not + /// all four wheeled things would classify as cars. However, if the Type Car were sufficient, it would + /// classify all four-wheeled things.) /// [Property(xmiId: "_18_5_3_b9102da_1564072709069_937523_30797", aggregation: AggregationKind.None, lowerValue: 1, upperValue: 1, isOrdered: false, isReadOnly: false, isDerived: false, isDerivedUnion: false, isUnique: true, defaultValue: "false")] [Implements(implementation: "IType.IsSufficient")] @@ -897,9 +897,8 @@ public LiteralString() public FeatureDirectionKind? DirectionOfExcluding(IFeature feature, List excluded) => this.ComputeDirectionOfExcludingOperation(feature, excluded); /// - /// If a Feature has no declaredName or declaredShortName , then its - /// effective name is given by the effective name of the Feature returned by the namingFeature() - /// operation, if any. + /// If a Feature has no declaredName or declaredShortName, then its effective name is given by the + /// effective name of the Feature returned by the namingFeature() operation, if any. /// /// /// The expected @@ -1029,11 +1028,10 @@ public LiteralString() /// /// A Feature is compatible with an otherType if it either directly or indirectly specializes the - /// otherType or if the otherType is also a Feature and all of the following are true. - ///
  1. Neither this Feature or the otherType have any - /// ownedFeatures.
  2. This Feature directly or indirectly redefines a - /// Feature that is also directly or indirectly redefined by the otherType.
  3. - ///
  4. This Feature can access the otherType.
+ /// otherType or if the otherType is also a Feature and all of the following are true.
  1. Neither + /// this Feature or the otherType have any ownedFeatures.
  2. This Feature directly or indirectly + /// redefines a Feature that is also directly or indirectly redefined by the otherType.
  3. This + /// Feature can access the otherType.
///
/// /// No documentation provided @@ -1133,11 +1131,11 @@ public LiteralString() /// Return whether this Expression is model-level evaluable. The visited parameter is used to track /// possible circular Feature references made from FeatureReferenceExpressions (see the redefinition of /// this operation for FeatureReferenceExpression). Such circular references are not allowed in - /// model-level evaluable expressions. An Expression that is not otherwise - /// specialized is model-level evaluable if it has no (non-implied) ownedSpecializations and all its - /// ownedFeatures are either in parameters, the result parameter or a result Expression owned via a - /// ResultExpressionMembership. The parameters must not have any ownedFeatures or a FeatureValue, and - /// the result Expression must be model-level evaluable. + /// model-level evaluable expressions.An Expression that is not otherwise specialized is model-level + /// evaluable if it has no (non-implied) ownedSpecializations and all its ownedFeatures are either in + /// parameters, the result parameter or a result Expression owned via a ResultExpressionMembership. The + /// parameters must not have any ownedFeatures or a FeatureValue, and the result Expression must be + /// model-level evaluable. /// /// /// No documentation provided @@ -1211,8 +1209,8 @@ public LiteralString() /// an owningRelationship, then return the string constructed by appending to the path of it's /// owningRelationship the character / followed by the string representation of its position in the list /// of ownedRelatedElements of the owningRelationship (indexed starting at 1). Otherwise, return the - /// empty string. (Note that this operation is overridden for Relationships - /// to use owningRelatedElement when appropriate.) + /// empty string.(Note that this operation is overridden for Relationships to use owningRelatedElement + /// when appropriate.) /// /// /// The expected @@ -1257,13 +1255,12 @@ public LiteralString() /// /// Return a subset of memberships, removing those Memberships whose memberElements are Features and for - /// which either of the following two conditions holds:
    - ///
  1. The memberElement of the Membership is included in redefined Features of another - /// Membership in memberships.
  2. One of the redefined Features of the - /// Membership is a directly redefinedFeature of an ownedFeature of this Type.
  3. - ///
For this purpose, the redefined Features of a Membership - /// whose memberElement is a Feature includes the memberElement and all Features directly or indirectly - /// redefined by the memberElement. + /// which either of the following two conditions holds:
  1. The memberElement of the Membership is + /// included in redefined Features of another Membership in memberships.
  2. One of the redefined + /// Features of the Membership is a directly redefinedFeature of an ownedFeature of this + /// Type.
For this purpose, the redefined Features of a Membership whose memberElement is a + /// Feature includes the memberElement and all Features directly or indirectly redefined by the + /// memberElement. ///
/// /// No documentation provided @@ -1390,11 +1387,11 @@ public LiteralString() /// Return the Features used to determine the types of this Feature (other than this Feature itself). If /// this Feature is not conjugated, then the typingFeatures consist of all subsetted Features, except /// from CrossSubsetting, and the last chainingFeature (if any). If this Feature is conjugated, then the - /// typingFeatures are only its originalType (if the originalType is a Feature). - /// Note. CrossSubsetting is excluded from the determination of the type of a - /// Feature in order to avoid circularity in the construction of implied CrossSubsetting relationships. - /// The validateFeatureCrossFeatureType requires that the crossFeature of a Feature have the same type - /// as the Feature. + /// typingFeatures are only its originalType (if the originalType is a Feature).Note. + /// CrossSubsetting is excluded from the determination of the type of a Feature in order to avoid + /// circularity in the construction of implied CrossSubsetting relationships. The + /// validateFeatureCrossFeatureType requires that the crossFeature of a Feature have the same type as + /// the Feature. /// /// /// The expected collection of diff --git a/SysML2.NET/Core/AutoGenPoco/Membership.cs b/SysML2.NET/Core/AutoGenPoco/Membership.cs index eb57d12d9..bdf51e1e6 100644 --- a/SysML2.NET/Core/AutoGenPoco/Membership.cs +++ b/SysML2.NET/Core/AutoGenPoco/Membership.cs @@ -39,11 +39,10 @@ namespace SysML2.NET.Core.POCO.Root.Namespaces /// A Membership is a Relationship between a Namespace and an Element that indicates the Element is a /// member of (i.e., is contained in) the Namespace. Any memberNames specify how the memberElement is /// identified in the Namespace and the visibility specifies whether or not the memberElement is - /// publicly visible from outside the Namespace. If a Membership is an - /// OwningMembership, then it owns its memberElement, which becomes an ownedMember of the - /// membershipOwningNamespace. Otherwise, the memberNames of a Membership are effectively aliases within - /// the membershipOwningNamespace for an Element with a separate OwningMembership in the same or a - /// different Namespace. + /// publicly visible from outside the Namespace.If a Membership is an OwningMembership, then it owns its + /// memberElement, which becomes an ownedMember of the membershipOwningNamespace. Otherwise, the + /// memberNames of a Membership are effectively aliases within the membershipOwningNamespace for an + /// Element with a separate OwningMembership in the same or a different Namespace. /// [Class(xmiId: "_18_5_3_12e503d9_1533160651680_888716_42152", isAbstract: false, isFinalSpecialization: false, isActive: false)] [GeneratedCode("SysML2.NET", "latest")] @@ -432,8 +431,8 @@ List Root.Elements.IRelationship.Target /// an owningRelationship, then return the string constructed by appending to the path of it's /// owningRelationship the character / followed by the string representation of its position in the list /// of ownedRelatedElements of the owningRelationship (indexed starting at 1). Otherwise, return the - /// empty string. (Note that this operation is overridden for Relationships - /// to use owningRelatedElement when appropriate.) + /// empty string.(Note that this operation is overridden for Relationships to use owningRelatedElement + /// when appropriate.) /// /// /// The expected diff --git a/SysML2.NET/Core/AutoGenPoco/MembershipExpose.cs b/SysML2.NET/Core/AutoGenPoco/MembershipExpose.cs index 0d759ceea..75cc12a9c 100644 --- a/SysML2.NET/Core/AutoGenPoco/MembershipExpose.cs +++ b/SysML2.NET/Core/AutoGenPoco/MembershipExpose.cs @@ -470,8 +470,8 @@ VisibilityKind Root.Namespaces.IImport.Visibility /// an owningRelationship, then return the string constructed by appending to the path of it's /// owningRelationship the character / followed by the string representation of its position in the list /// of ownedRelatedElements of the owningRelationship (indexed starting at 1). Otherwise, return the - /// empty string. (Note that this operation is overridden for Relationships - /// to use owningRelatedElement when appropriate.) + /// empty string.(Note that this operation is overridden for Relationships to use owningRelatedElement + /// when appropriate.) /// /// /// The expected diff --git a/SysML2.NET/Core/AutoGenPoco/MembershipImport.cs b/SysML2.NET/Core/AutoGenPoco/MembershipImport.cs index 1819e17fd..36886bb9c 100644 --- a/SysML2.NET/Core/AutoGenPoco/MembershipImport.cs +++ b/SysML2.NET/Core/AutoGenPoco/MembershipImport.cs @@ -438,8 +438,8 @@ List Root.Elements.IRelationship.Target /// an owningRelationship, then return the string constructed by appending to the path of it's /// owningRelationship the character / followed by the string representation of its position in the list /// of ownedRelatedElements of the owningRelationship (indexed starting at 1). Otherwise, return the - /// empty string. (Note that this operation is overridden for Relationships - /// to use owningRelatedElement when appropriate.) + /// empty string.(Note that this operation is overridden for Relationships to use owningRelatedElement + /// when appropriate.) /// /// /// The expected diff --git a/SysML2.NET/Core/AutoGenPoco/MergeNode.cs b/SysML2.NET/Core/AutoGenPoco/MergeNode.cs index 31f83c2d3..cf10cd76a 100644 --- a/SysML2.NET/Core/AutoGenPoco/MergeNode.cs +++ b/SysML2.NET/Core/AutoGenPoco/MergeNode.cs @@ -431,11 +431,11 @@ public MergeNode() /// /// Whether all things that meet the classification conditions of this Type must be classified by the - /// Type. (A Type gives conditions that must be met by whatever it - /// classifies, but when isSufficient is false, things may meet those conditions but still not be - /// classified by the Type. For example, a Type Car that is not sufficient could require everything it - /// classifies to have four wheels, but not all four wheeled things would classify as cars. However, if - /// the Type Car were sufficient, it would classify all four-wheeled things.) + /// Type.(A Type gives conditions that must be met by whatever it classifies, but when isSufficient + /// is false, things may meet those conditions but still not be classified by the Type. For example, a + /// Type Car that is not sufficient could require everything it classifies to have four wheels, but not + /// all four wheeled things would classify as cars. However, if the Type Car were sufficient, it would + /// classify all four-wheeled things.) /// [Property(xmiId: "_18_5_3_b9102da_1564072709069_937523_30797", aggregation: AggregationKind.None, lowerValue: 1, upperValue: 1, isOrdered: false, isReadOnly: false, isDerived: false, isDerivedUnion: false, isUnique: true, defaultValue: "false")] [Implements(implementation: "IType.IsSufficient")] @@ -473,9 +473,9 @@ bool Core.Features.IFeature.IsVariable /// Whether this Usage may be time varying (that is, whether it is featured by the snapshots of its /// owningType, rather than being featured by the owningType itself). However, if isConstant is also /// true, then the value of the Usage is nevertheless constant over the entire duration of an instance - /// of its owningType (that is, it has the same value on all snapshots). The - /// property mayTimeVary redefines the KerML property Feature::isVariable, making it derived. The - /// property isConstant is inherited from Feature. + /// of its owningType (that is, it has the same value on all snapshots).The property mayTimeVary + /// redefines the KerML property Feature::isVariable, making it derived. The property isConstant is + /// inherited from Feature. /// [Property(xmiId: "_2022x_2_12e503d9_1737227200362_771035_69", aggregation: AggregationKind.None, lowerValue: 1, upperValue: 1, isOrdered: false, isReadOnly: false, isDerived: true, isDerivedUnion: false, isUnique: true, defaultValue: null)] [RedefinedProperty(propertyName: "_2022x_2_12e503d9_1725998273002_23711_212")] @@ -576,8 +576,8 @@ bool Core.Features.IFeature.IsVariable /// /// The ConnectorAsUsages that are nestedUsages of this Usage. Note that this list includes - /// BindingConnectorAsUsages, SuccessionAsUsages, and FlowConnectionUsages because these are - /// ConnectorAsUsages even though they are not ConnectionUsages. + /// BindingConnectorAsUsages, SuccessionAsUsages, and FlowUsages because these are ConnectorAsUsages + /// even though they are not ConnectionUsages. /// [Property(xmiId: "_19_0_2_12e503d9_1591479754895_422988_1242", aggregation: AggregationKind.None, lowerValue: 0, upperValue: int.MaxValue, isOrdered: true, isReadOnly: false, isDerived: true, isDerivedUnion: false, isUnique: true, defaultValue: null)] [SubsettedProperty(propertyName: "_18_5_3_12e503d9_1565472757327_162097_21259")] @@ -625,7 +625,7 @@ bool Core.Features.IFeature.IsVariable public List nestedItem => this.ComputeNestedItem(); /// - /// The MetadataUsages that are nestedUsages of this of this Usage. + /// The MetadataUsages that are ownedMembers of this of this Usage. /// [Property(xmiId: "_19_0_4_12e503d9_1661488589862_120785_2970", aggregation: AggregationKind.None, lowerValue: 0, upperValue: int.MaxValue, isOrdered: true, isReadOnly: false, isDerived: true, isDerivedUnion: false, isUnique: true, defaultValue: null)] [SubsettedProperty(propertyName: "_19_0_2_12e503d9_1591482421103_284620_2978")] @@ -1246,9 +1246,8 @@ bool Core.Features.IFeature.IsVariable public FeatureDirectionKind? DirectionOfExcluding(IFeature feature, List excluded) => this.ComputeDirectionOfExcludingOperation(feature, excluded); /// - /// If a Feature has no declaredName or declaredShortName , then its - /// effective name is given by the effective name of the Feature returned by the namingFeature() - /// operation, if any. + /// If a Feature has no declaredName or declaredShortName, then its effective name is given by the + /// effective name of the Feature returned by the namingFeature() operation, if any. /// /// /// The expected @@ -1373,11 +1372,10 @@ bool Core.Features.IFeature.IsVariable /// /// A Feature is compatible with an otherType if it either directly or indirectly specializes the - /// otherType or if the otherType is also a Feature and all of the following are true. - ///
  1. Neither this Feature or the otherType have any - /// ownedFeatures.
  2. This Feature directly or indirectly redefines a - /// Feature that is also directly or indirectly redefined by the otherType.
  3. - ///
  4. This Feature can access the otherType.
+ /// otherType or if the otherType is also a Feature and all of the following are true.
  1. Neither + /// this Feature or the otherType have any ownedFeatures.
  2. This Feature directly or indirectly + /// redefines a Feature that is also directly or indirectly redefined by the otherType.
  3. This + /// Feature can access the otherType.
///
/// /// No documentation provided @@ -1563,8 +1561,8 @@ bool Core.Features.IFeature.IsVariable /// an owningRelationship, then return the string constructed by appending to the path of it's /// owningRelationship the character / followed by the string representation of its position in the list /// of ownedRelatedElements of the owningRelationship (indexed starting at 1). Otherwise, return the - /// empty string. (Note that this operation is overridden for Relationships - /// to use owningRelatedElement when appropriate.) + /// empty string.(Note that this operation is overridden for Relationships to use owningRelatedElement + /// when appropriate.) /// /// /// The expected @@ -1618,13 +1616,12 @@ bool Core.Features.IFeature.IsVariable /// /// Return a subset of memberships, removing those Memberships whose memberElements are Features and for - /// which either of the following two conditions holds:
    - ///
  1. The memberElement of the Membership is included in redefined Features of another - /// Membership in memberships.
  2. One of the redefined Features of the - /// Membership is a directly redefinedFeature of an ownedFeature of this Type.
  3. - ///
For this purpose, the redefined Features of a Membership - /// whose memberElement is a Feature includes the memberElement and all Features directly or indirectly - /// redefined by the memberElement. + /// which either of the following two conditions holds:
  1. The memberElement of the Membership is + /// included in redefined Features of another Membership in memberships.
  2. One of the redefined + /// Features of the Membership is a directly redefinedFeature of an ownedFeature of this + /// Type.
For this purpose, the redefined Features of a Membership whose memberElement is a + /// Feature includes the memberElement and all Features directly or indirectly redefined by the + /// memberElement. ///
/// /// No documentation provided @@ -1751,11 +1748,11 @@ bool Core.Features.IFeature.IsVariable /// Return the Features used to determine the types of this Feature (other than this Feature itself). If /// this Feature is not conjugated, then the typingFeatures consist of all subsetted Features, except /// from CrossSubsetting, and the last chainingFeature (if any). If this Feature is conjugated, then the - /// typingFeatures are only its originalType (if the originalType is a Feature). - /// Note. CrossSubsetting is excluded from the determination of the type of a - /// Feature in order to avoid circularity in the construction of implied CrossSubsetting relationships. - /// The validateFeatureCrossFeatureType requires that the crossFeature of a Feature have the same type - /// as the Feature. + /// typingFeatures are only its originalType (if the originalType is a Feature).Note. + /// CrossSubsetting is excluded from the determination of the type of a Feature in order to avoid + /// circularity in the construction of implied CrossSubsetting relationships. The + /// validateFeatureCrossFeatureType requires that the crossFeature of a Feature have the same type as + /// the Feature. /// /// /// The expected collection of diff --git a/SysML2.NET/Core/AutoGenPoco/Metaclass.cs b/SysML2.NET/Core/AutoGenPoco/Metaclass.cs index 553be64c0..161cd06a8 100644 --- a/SysML2.NET/Core/AutoGenPoco/Metaclass.cs +++ b/SysML2.NET/Core/AutoGenPoco/Metaclass.cs @@ -234,11 +234,11 @@ public Metaclass() /// /// Whether all things that meet the classification conditions of this Type must be classified by the - /// Type. (A Type gives conditions that must be met by whatever it - /// classifies, but when isSufficient is false, things may meet those conditions but still not be - /// classified by the Type. For example, a Type Car that is not sufficient could require everything it - /// classifies to have four wheels, but not all four wheeled things would classify as cars. However, if - /// the Type Car were sufficient, it would classify all four-wheeled things.) + /// Type.(A Type gives conditions that must be met by whatever it classifies, but when isSufficient + /// is false, things may meet those conditions but still not be classified by the Type. For example, a + /// Type Car that is not sufficient could require everything it classifies to have four wheels, but not + /// all four wheeled things would classify as cars. However, if the Type Car were sufficient, it would + /// classify all four-wheeled things.) /// [Property(xmiId: "_18_5_3_b9102da_1564072709069_937523_30797", aggregation: AggregationKind.None, lowerValue: 1, upperValue: 1, isOrdered: false, isReadOnly: false, isDerived: false, isDerivedUnion: false, isUnique: true, defaultValue: "false")] [Implements(implementation: "IType.IsSufficient")] @@ -730,8 +730,8 @@ public Metaclass() /// an owningRelationship, then return the string constructed by appending to the path of it's /// owningRelationship the character / followed by the string representation of its position in the list /// of ownedRelatedElements of the owningRelationship (indexed starting at 1). Otherwise, return the - /// empty string. (Note that this operation is overridden for Relationships - /// to use owningRelatedElement when appropriate.) + /// empty string.(Note that this operation is overridden for Relationships to use owningRelatedElement + /// when appropriate.) /// /// /// The expected @@ -753,13 +753,12 @@ public Metaclass() /// /// Return a subset of memberships, removing those Memberships whose memberElements are Features and for - /// which either of the following two conditions holds:
    - ///
  1. The memberElement of the Membership is included in redefined Features of another - /// Membership in memberships.
  2. One of the redefined Features of the - /// Membership is a directly redefinedFeature of an ownedFeature of this Type.
  3. - ///
For this purpose, the redefined Features of a Membership - /// whose memberElement is a Feature includes the memberElement and all Features directly or indirectly - /// redefined by the memberElement. + /// which either of the following two conditions holds:
  1. The memberElement of the Membership is + /// included in redefined Features of another Membership in memberships.
  2. One of the redefined + /// Features of the Membership is a directly redefinedFeature of an ownedFeature of this + /// Type.
For this purpose, the redefined Features of a Membership whose memberElement is a + /// Feature includes the memberElement and all Features directly or indirectly redefined by the + /// memberElement. ///
/// /// No documentation provided diff --git a/SysML2.NET/Core/AutoGenPoco/MetadataAccessExpression.cs b/SysML2.NET/Core/AutoGenPoco/MetadataAccessExpression.cs index de72c42f9..127ff08d2 100644 --- a/SysML2.NET/Core/AutoGenPoco/MetadataAccessExpression.cs +++ b/SysML2.NET/Core/AutoGenPoco/MetadataAccessExpression.cs @@ -374,11 +374,11 @@ public MetadataAccessExpression() /// /// Whether all things that meet the classification conditions of this Type must be classified by the - /// Type. (A Type gives conditions that must be met by whatever it - /// classifies, but when isSufficient is false, things may meet those conditions but still not be - /// classified by the Type. For example, a Type Car that is not sufficient could require everything it - /// classifies to have four wheels, but not all four wheeled things would classify as cars. However, if - /// the Type Car were sufficient, it would classify all four-wheeled things.) + /// Type.(A Type gives conditions that must be met by whatever it classifies, but when isSufficient + /// is false, things may meet those conditions but still not be classified by the Type. For example, a + /// Type Car that is not sufficient could require everything it classifies to have four wheels, but not + /// all four wheeled things would classify as cars. However, if the Type Car were sufficient, it would + /// classify all four-wheeled things.) /// [Property(xmiId: "_18_5_3_b9102da_1564072709069_937523_30797", aggregation: AggregationKind.None, lowerValue: 1, upperValue: 1, isOrdered: false, isReadOnly: false, isDerived: false, isDerivedUnion: false, isUnique: true, defaultValue: "false")] [Implements(implementation: "IType.IsSufficient")] @@ -901,9 +901,8 @@ public MetadataAccessExpression() public FeatureDirectionKind? DirectionOfExcluding(IFeature feature, List excluded) => this.ComputeDirectionOfExcludingOperation(feature, excluded); /// - /// If a Feature has no declaredName or declaredShortName , then its - /// effective name is given by the effective name of the Feature returned by the namingFeature() - /// operation, if any. + /// If a Feature has no declaredName or declaredShortName, then its effective name is given by the + /// effective name of the Feature returned by the namingFeature() operation, if any. /// /// /// The expected @@ -1037,11 +1036,10 @@ public MetadataAccessExpression() /// /// A Feature is compatible with an otherType if it either directly or indirectly specializes the - /// otherType or if the otherType is also a Feature and all of the following are true. - ///
  1. Neither this Feature or the otherType have any - /// ownedFeatures.
  2. This Feature directly or indirectly redefines a - /// Feature that is also directly or indirectly redefined by the otherType.
  3. - ///
  4. This Feature can access the otherType.
+ /// otherType or if the otherType is also a Feature and all of the following are true.
  1. Neither + /// this Feature or the otherType have any ownedFeatures.
  2. This Feature directly or indirectly + /// redefines a Feature that is also directly or indirectly redefined by the otherType.
  3. This + /// Feature can access the otherType.
///
/// /// No documentation provided @@ -1151,11 +1149,11 @@ public MetadataAccessExpression() /// Return whether this Expression is model-level evaluable. The visited parameter is used to track /// possible circular Feature references made from FeatureReferenceExpressions (see the redefinition of /// this operation for FeatureReferenceExpression). Such circular references are not allowed in - /// model-level evaluable expressions. An Expression that is not otherwise - /// specialized is model-level evaluable if it has no (non-implied) ownedSpecializations and all its - /// ownedFeatures are either in parameters, the result parameter or a result Expression owned via a - /// ResultExpressionMembership. The parameters must not have any ownedFeatures or a FeatureValue, and - /// the result Expression must be model-level evaluable. + /// model-level evaluable expressions.An Expression that is not otherwise specialized is model-level + /// evaluable if it has no (non-implied) ownedSpecializations and all its ownedFeatures are either in + /// parameters, the result parameter or a result Expression owned via a ResultExpressionMembership. The + /// parameters must not have any ownedFeatures or a FeatureValue, and the result Expression must be + /// model-level evaluable. /// /// /// No documentation provided @@ -1229,8 +1227,8 @@ public MetadataAccessExpression() /// an owningRelationship, then return the string constructed by appending to the path of it's /// owningRelationship the character / followed by the string representation of its position in the list /// of ownedRelatedElements of the owningRelationship (indexed starting at 1). Otherwise, return the - /// empty string. (Note that this operation is overridden for Relationships - /// to use owningRelatedElement when appropriate.) + /// empty string.(Note that this operation is overridden for Relationships to use owningRelatedElement + /// when appropriate.) /// /// /// The expected @@ -1275,13 +1273,12 @@ public MetadataAccessExpression() /// /// Return a subset of memberships, removing those Memberships whose memberElements are Features and for - /// which either of the following two conditions holds:
    - ///
  1. The memberElement of the Membership is included in redefined Features of another - /// Membership in memberships.
  2. One of the redefined Features of the - /// Membership is a directly redefinedFeature of an ownedFeature of this Type.
  3. - ///
For this purpose, the redefined Features of a Membership - /// whose memberElement is a Feature includes the memberElement and all Features directly or indirectly - /// redefined by the memberElement. + /// which either of the following two conditions holds:
  1. The memberElement of the Membership is + /// included in redefined Features of another Membership in memberships.
  2. One of the redefined + /// Features of the Membership is a directly redefinedFeature of an ownedFeature of this + /// Type.
For this purpose, the redefined Features of a Membership whose memberElement is a + /// Feature includes the memberElement and all Features directly or indirectly redefined by the + /// memberElement. ///
/// /// No documentation provided @@ -1408,11 +1405,11 @@ public MetadataAccessExpression() /// Return the Features used to determine the types of this Feature (other than this Feature itself). If /// this Feature is not conjugated, then the typingFeatures consist of all subsetted Features, except /// from CrossSubsetting, and the last chainingFeature (if any). If this Feature is conjugated, then the - /// typingFeatures are only its originalType (if the originalType is a Feature). - /// Note. CrossSubsetting is excluded from the determination of the type of a - /// Feature in order to avoid circularity in the construction of implied CrossSubsetting relationships. - /// The validateFeatureCrossFeatureType requires that the crossFeature of a Feature have the same type - /// as the Feature. + /// typingFeatures are only its originalType (if the originalType is a Feature).Note. + /// CrossSubsetting is excluded from the determination of the type of a Feature in order to avoid + /// circularity in the construction of implied CrossSubsetting relationships. The + /// validateFeatureCrossFeatureType requires that the crossFeature of a Feature have the same type as + /// the Feature. /// /// /// The expected collection of diff --git a/SysML2.NET/Core/AutoGenPoco/MetadataDefinition.cs b/SysML2.NET/Core/AutoGenPoco/MetadataDefinition.cs index e71d98488..fbb20376c 100644 --- a/SysML2.NET/Core/AutoGenPoco/MetadataDefinition.cs +++ b/SysML2.NET/Core/AutoGenPoco/MetadataDefinition.cs @@ -270,11 +270,11 @@ public MetadataDefinition() /// /// Whether all things that meet the classification conditions of this Type must be classified by the - /// Type. (A Type gives conditions that must be met by whatever it - /// classifies, but when isSufficient is false, things may meet those conditions but still not be - /// classified by the Type. For example, a Type Car that is not sufficient could require everything it - /// classifies to have four wheels, but not all four wheeled things would classify as cars. However, if - /// the Type Car were sufficient, it would classify all four-wheeled things.) + /// Type.(A Type gives conditions that must be met by whatever it classifies, but when isSufficient + /// is false, things may meet those conditions but still not be classified by the Type. For example, a + /// Type Car that is not sufficient could require everything it classifies to have four wheels, but not + /// all four wheeled things would classify as cars. However, if the Type Car were sufficient, it would + /// classify all four-wheeled things.) /// [Property(xmiId: "_18_5_3_b9102da_1564072709069_937523_30797", aggregation: AggregationKind.None, lowerValue: 1, upperValue: 1, isOrdered: false, isReadOnly: false, isDerived: false, isDerivedUnion: false, isUnique: true, defaultValue: "false")] [Implements(implementation: "IType.IsSufficient")] @@ -552,7 +552,7 @@ public MetadataDefinition() public List ownedMembership => this.ComputeOwnedMembership(); /// - /// The MetadataUsages that are ownedUsages of this Definition. + /// The MetadataUsages that are ownedMembers of this Definition. /// [Property(xmiId: "_19_0_4_12e503d9_1661488358064_457109_2881", aggregation: AggregationKind.None, lowerValue: 0, upperValue: int.MaxValue, isOrdered: true, isReadOnly: false, isDerived: true, isDerivedUnion: false, isUnique: true, defaultValue: null)] [SubsettedProperty(propertyName: "_19_0_2_12e503d9_1591482567975_649284_3005")] @@ -1019,8 +1019,8 @@ public MetadataDefinition() /// an owningRelationship, then return the string constructed by appending to the path of it's /// owningRelationship the character / followed by the string representation of its position in the list /// of ownedRelatedElements of the owningRelationship (indexed starting at 1). Otherwise, return the - /// empty string. (Note that this operation is overridden for Relationships - /// to use owningRelatedElement when appropriate.) + /// empty string.(Note that this operation is overridden for Relationships to use owningRelatedElement + /// when appropriate.) /// /// /// The expected @@ -1042,13 +1042,12 @@ public MetadataDefinition() /// /// Return a subset of memberships, removing those Memberships whose memberElements are Features and for - /// which either of the following two conditions holds:
    - ///
  1. The memberElement of the Membership is included in redefined Features of another - /// Membership in memberships.
  2. One of the redefined Features of the - /// Membership is a directly redefinedFeature of an ownedFeature of this Type.
  3. - ///
For this purpose, the redefined Features of a Membership - /// whose memberElement is a Feature includes the memberElement and all Features directly or indirectly - /// redefined by the memberElement. + /// which either of the following two conditions holds:
  1. The memberElement of the Membership is + /// included in redefined Features of another Membership in memberships.
  2. One of the redefined + /// Features of the Membership is a directly redefinedFeature of an ownedFeature of this + /// Type.
For this purpose, the redefined Features of a Membership whose memberElement is a + /// Feature includes the memberElement and all Features directly or indirectly redefined by the + /// memberElement. ///
/// /// No documentation provided diff --git a/SysML2.NET/Core/AutoGenPoco/MetadataFeature.cs b/SysML2.NET/Core/AutoGenPoco/MetadataFeature.cs index 212797369..aaecf614a 100644 --- a/SysML2.NET/Core/AutoGenPoco/MetadataFeature.cs +++ b/SysML2.NET/Core/AutoGenPoco/MetadataFeature.cs @@ -362,11 +362,11 @@ public MetadataFeature() /// /// Whether all things that meet the classification conditions of this Type must be classified by the - /// Type. (A Type gives conditions that must be met by whatever it - /// classifies, but when isSufficient is false, things may meet those conditions but still not be - /// classified by the Type. For example, a Type Car that is not sufficient could require everything it - /// classifies to have four wheels, but not all four wheeled things would classify as cars. However, if - /// the Type Car were sufficient, it would classify all four-wheeled things.) + /// Type.(A Type gives conditions that must be met by whatever it classifies, but when isSufficient + /// is false, things may meet those conditions but still not be classified by the Type. For example, a + /// Type Car that is not sufficient could require everything it classifies to have four wheels, but not + /// all four wheeled things would classify as cars. However, if the Type Car were sufficient, it would + /// classify all four-wheeled things.) /// [Property(xmiId: "_18_5_3_b9102da_1564072709069_937523_30797", aggregation: AggregationKind.None, lowerValue: 1, upperValue: 1, isOrdered: false, isReadOnly: false, isDerived: false, isDerivedUnion: false, isUnique: true, defaultValue: "false")] [Implements(implementation: "IType.IsSufficient")] @@ -884,9 +884,8 @@ public MetadataFeature() string IElement.EffectiveName() => this.EffectiveName(); /// - /// If a Feature has no declaredName or declaredShortName , then its - /// effective name is given by the effective name of the Feature returned by the namingFeature() - /// operation, if any. + /// If a Feature has no declaredName or declaredShortName, then its effective name is given by the + /// effective name of the Feature returned by the namingFeature() operation, if any. /// /// /// The expected @@ -996,11 +995,10 @@ public MetadataFeature() /// /// A Feature is compatible with an otherType if it either directly or indirectly specializes the - /// otherType or if the otherType is also a Feature and all of the following are true. - ///
  1. Neither this Feature or the otherType have any - /// ownedFeatures.
  2. This Feature directly or indirectly redefines a - /// Feature that is also directly or indirectly redefined by the otherType.
  3. - ///
  4. This Feature can access the otherType.
+ /// otherType or if the otherType is also a Feature and all of the following are true.
  1. Neither + /// this Feature or the otherType have any ownedFeatures.
  2. This Feature directly or indirectly + /// redefines a Feature that is also directly or indirectly redefined by the otherType.
  3. This + /// Feature can access the otherType.
///
/// /// No documentation provided @@ -1166,8 +1164,8 @@ public MetadataFeature() /// an owningRelationship, then return the string constructed by appending to the path of it's /// owningRelationship the character / followed by the string representation of its position in the list /// of ownedRelatedElements of the owningRelationship (indexed starting at 1). Otherwise, return the - /// empty string. (Note that this operation is overridden for Relationships - /// to use owningRelatedElement when appropriate.) + /// empty string.(Note that this operation is overridden for Relationships to use owningRelatedElement + /// when appropriate.) /// /// /// The expected @@ -1212,13 +1210,12 @@ public MetadataFeature() /// /// Return a subset of memberships, removing those Memberships whose memberElements are Features and for - /// which either of the following two conditions holds:
    - ///
  1. The memberElement of the Membership is included in redefined Features of another - /// Membership in memberships.
  2. One of the redefined Features of the - /// Membership is a directly redefinedFeature of an ownedFeature of this Type.
  3. - ///
For this purpose, the redefined Features of a Membership - /// whose memberElement is a Feature includes the memberElement and all Features directly or indirectly - /// redefined by the memberElement. + /// which either of the following two conditions holds:
  1. The memberElement of the Membership is + /// included in redefined Features of another Membership in memberships.
  2. One of the redefined + /// Features of the Membership is a directly redefinedFeature of an ownedFeature of this + /// Type.
For this purpose, the redefined Features of a Membership whose memberElement is a + /// Feature includes the memberElement and all Features directly or indirectly redefined by the + /// memberElement. ///
/// /// No documentation provided @@ -1354,11 +1351,11 @@ public MetadataFeature() /// Return the Features used to determine the types of this Feature (other than this Feature itself). If /// this Feature is not conjugated, then the typingFeatures consist of all subsetted Features, except /// from CrossSubsetting, and the last chainingFeature (if any). If this Feature is conjugated, then the - /// typingFeatures are only its originalType (if the originalType is a Feature). - /// Note. CrossSubsetting is excluded from the determination of the type of a - /// Feature in order to avoid circularity in the construction of implied CrossSubsetting relationships. - /// The validateFeatureCrossFeatureType requires that the crossFeature of a Feature have the same type - /// as the Feature. + /// typingFeatures are only its originalType (if the originalType is a Feature).Note. + /// CrossSubsetting is excluded from the determination of the type of a Feature in order to avoid + /// circularity in the construction of implied CrossSubsetting relationships. The + /// validateFeatureCrossFeatureType requires that the crossFeature of a Feature have the same type as + /// the Feature. /// /// /// The expected collection of diff --git a/SysML2.NET/Core/AutoGenPoco/MetadataUsage.cs b/SysML2.NET/Core/AutoGenPoco/MetadataUsage.cs index ca59d5b95..b8b6958e8 100644 --- a/SysML2.NET/Core/AutoGenPoco/MetadataUsage.cs +++ b/SysML2.NET/Core/AutoGenPoco/MetadataUsage.cs @@ -431,11 +431,11 @@ public MetadataUsage() /// /// Whether all things that meet the classification conditions of this Type must be classified by the - /// Type. (A Type gives conditions that must be met by whatever it - /// classifies, but when isSufficient is false, things may meet those conditions but still not be - /// classified by the Type. For example, a Type Car that is not sufficient could require everything it - /// classifies to have four wheels, but not all four wheeled things would classify as cars. However, if - /// the Type Car were sufficient, it would classify all four-wheeled things.) + /// Type.(A Type gives conditions that must be met by whatever it classifies, but when isSufficient + /// is false, things may meet those conditions but still not be classified by the Type. For example, a + /// Type Car that is not sufficient could require everything it classifies to have four wheels, but not + /// all four wheeled things would classify as cars. However, if the Type Car were sufficient, it would + /// classify all four-wheeled things.) /// [Property(xmiId: "_18_5_3_b9102da_1564072709069_937523_30797", aggregation: AggregationKind.None, lowerValue: 1, upperValue: 1, isOrdered: false, isReadOnly: false, isDerived: false, isDerivedUnion: false, isUnique: true, defaultValue: "false")] [Implements(implementation: "IType.IsSufficient")] @@ -483,9 +483,9 @@ bool Core.Features.IFeature.IsVariable /// Whether this Usage may be time varying (that is, whether it is featured by the snapshots of its /// owningType, rather than being featured by the owningType itself). However, if isConstant is also /// true, then the value of the Usage is nevertheless constant over the entire duration of an instance - /// of its owningType (that is, it has the same value on all snapshots). The - /// property mayTimeVary redefines the KerML property Feature::isVariable, making it derived. The - /// property isConstant is inherited from Feature. + /// of its owningType (that is, it has the same value on all snapshots).The property mayTimeVary + /// redefines the KerML property Feature::isVariable, making it derived. The property isConstant is + /// inherited from Feature. /// [Property(xmiId: "_2022x_2_12e503d9_1737227200362_771035_69", aggregation: AggregationKind.None, lowerValue: 1, upperValue: 1, isOrdered: false, isReadOnly: false, isDerived: true, isDerivedUnion: false, isUnique: true, defaultValue: null)] [RedefinedProperty(propertyName: "_2022x_2_12e503d9_1725998273002_23711_212")] @@ -603,8 +603,8 @@ bool Core.Features.IFeature.IsVariable /// /// The ConnectorAsUsages that are nestedUsages of this Usage. Note that this list includes - /// BindingConnectorAsUsages, SuccessionAsUsages, and FlowConnectionUsages because these are - /// ConnectorAsUsages even though they are not ConnectionUsages. + /// BindingConnectorAsUsages, SuccessionAsUsages, and FlowUsages because these are ConnectorAsUsages + /// even though they are not ConnectionUsages. /// [Property(xmiId: "_19_0_2_12e503d9_1591479754895_422988_1242", aggregation: AggregationKind.None, lowerValue: 0, upperValue: int.MaxValue, isOrdered: true, isReadOnly: false, isDerived: true, isDerivedUnion: false, isUnique: true, defaultValue: null)] [SubsettedProperty(propertyName: "_18_5_3_12e503d9_1565472757327_162097_21259")] @@ -652,7 +652,7 @@ bool Core.Features.IFeature.IsVariable public List nestedItem => this.ComputeNestedItem(); /// - /// The MetadataUsages that are nestedUsages of this of this Usage. + /// The MetadataUsages that are ownedMembers of this of this Usage. /// [Property(xmiId: "_19_0_4_12e503d9_1661488589862_120785_2970", aggregation: AggregationKind.None, lowerValue: 0, upperValue: int.MaxValue, isOrdered: true, isReadOnly: false, isDerived: true, isDerivedUnion: false, isUnique: true, defaultValue: null)] [SubsettedProperty(propertyName: "_19_0_2_12e503d9_1591482421103_284620_2978")] @@ -1270,9 +1270,8 @@ bool Core.Features.IFeature.IsVariable public FeatureDirectionKind? DirectionOfExcluding(IFeature feature, List excluded) => this.ComputeDirectionOfExcludingOperation(feature, excluded); /// - /// If a Feature has no declaredName or declaredShortName , then its - /// effective name is given by the effective name of the Feature returned by the namingFeature() - /// operation, if any. + /// If a Feature has no declaredName or declaredShortName, then its effective name is given by the + /// effective name of the Feature returned by the namingFeature() operation, if any. /// /// /// The expected @@ -1390,11 +1389,10 @@ bool Core.Features.IFeature.IsVariable /// /// A Feature is compatible with an otherType if it either directly or indirectly specializes the - /// otherType or if the otherType is also a Feature and all of the following are true. - ///
  1. Neither this Feature or the otherType have any - /// ownedFeatures.
  2. This Feature directly or indirectly redefines a - /// Feature that is also directly or indirectly redefined by the otherType.
  3. - ///
  4. This Feature can access the otherType.
+ /// otherType or if the otherType is also a Feature and all of the following are true.
  1. Neither + /// this Feature or the otherType have any ownedFeatures.
  2. This Feature directly or indirectly + /// redefines a Feature that is also directly or indirectly redefined by the otherType.
  3. This + /// Feature can access the otherType.
///
/// /// No documentation provided @@ -1569,8 +1567,8 @@ bool Core.Features.IFeature.IsVariable /// an owningRelationship, then return the string constructed by appending to the path of it's /// owningRelationship the character / followed by the string representation of its position in the list /// of ownedRelatedElements of the owningRelationship (indexed starting at 1). Otherwise, return the - /// empty string. (Note that this operation is overridden for Relationships - /// to use owningRelatedElement when appropriate.) + /// empty string.(Note that this operation is overridden for Relationships to use owningRelatedElement + /// when appropriate.) /// /// /// The expected @@ -1624,13 +1622,12 @@ bool Core.Features.IFeature.IsVariable /// /// Return a subset of memberships, removing those Memberships whose memberElements are Features and for - /// which either of the following two conditions holds:
    - ///
  1. The memberElement of the Membership is included in redefined Features of another - /// Membership in memberships.
  2. One of the redefined Features of the - /// Membership is a directly redefinedFeature of an ownedFeature of this Type.
  3. - ///
For this purpose, the redefined Features of a Membership - /// whose memberElement is a Feature includes the memberElement and all Features directly or indirectly - /// redefined by the memberElement. + /// which either of the following two conditions holds:
  1. The memberElement of the Membership is + /// included in redefined Features of another Membership in memberships.
  2. One of the redefined + /// Features of the Membership is a directly redefinedFeature of an ownedFeature of this + /// Type.
For this purpose, the redefined Features of a Membership whose memberElement is a + /// Feature includes the memberElement and all Features directly or indirectly redefined by the + /// memberElement. ///
/// /// No documentation provided @@ -1766,11 +1763,11 @@ bool Core.Features.IFeature.IsVariable /// Return the Features used to determine the types of this Feature (other than this Feature itself). If /// this Feature is not conjugated, then the typingFeatures consist of all subsetted Features, except /// from CrossSubsetting, and the last chainingFeature (if any). If this Feature is conjugated, then the - /// typingFeatures are only its originalType (if the originalType is a Feature). - /// Note. CrossSubsetting is excluded from the determination of the type of a - /// Feature in order to avoid circularity in the construction of implied CrossSubsetting relationships. - /// The validateFeatureCrossFeatureType requires that the crossFeature of a Feature have the same type - /// as the Feature. + /// typingFeatures are only its originalType (if the originalType is a Feature).Note. + /// CrossSubsetting is excluded from the determination of the type of a Feature in order to avoid + /// circularity in the construction of implied CrossSubsetting relationships. The + /// validateFeatureCrossFeatureType requires that the crossFeature of a Feature have the same type as + /// the Feature. /// /// /// The expected collection of diff --git a/SysML2.NET/Core/AutoGenPoco/Multiplicity.cs b/SysML2.NET/Core/AutoGenPoco/Multiplicity.cs index 6512176ba..7a644fff7 100644 --- a/SysML2.NET/Core/AutoGenPoco/Multiplicity.cs +++ b/SysML2.NET/Core/AutoGenPoco/Multiplicity.cs @@ -41,16 +41,15 @@ namespace SysML2.NET.Core.POCO.Core.Types /// /// A Multiplicity is a Feature whose co-domain is a set of natural numbers giving the allowed /// cardinalities of each typeWithMultiplicity. The cardinality of a Type is defined as follows, - /// depending on whether the Type is a Classifier or Feature.
    - ///
  • Classifier – The number of basic instances of the Classifier, that is, those instances - /// representing things, which are not instances of any subtypes of the Classifier that are Features. - ///
  • Features – The number of instances with the same featuring instances. In the - /// case of a Feature with a Classifier as its featuringType, this is the number of values of Feature - /// for each basic instance of the Classifier. Note that, for non-unique Features, all duplicate values - /// are included in this count.
Multiplicity - /// co-domains (in models) can be specified by Expression that might vary in their results. If the - /// typeWithMultiplicity is a Classifier, the domain of the Multiplicity shall be Base::Anything. If - /// the typeWithMultiplicity is a Feature, the Multiplicity shall have the same domain as the + /// depending on whether the Type is a Classifier or Feature.
  • Classifier – The number of basic + /// instances of the Classifier, that is, those instances representing things, which are not instances + /// of any subtypes of the Classifier that are Features.
  • Features – The number of instances with the + /// same featuring instances. In the case of a Feature with a Classifier as its featuringType, this is + /// the number of values of Feature for each basic instance of the Classifier. Note that, for non-unique + /// Features, all duplicate values are included in this count.
Multiplicity co-domains (in + /// models) can be specified by Expression that might vary in their results. If the typeWithMultiplicity + /// is a Classifier, the domain of the Multiplicity shall be Base::Anything. If the + /// typeWithMultiplicity is a Feature, the Multiplicity shall have the same domain as the /// typeWithMultiplicity. ///
[Class(xmiId: "_19_0_2_12e503d9_1573083797505_495205_3879", isAbstract: false, isFinalSpecialization: false, isActive: false)] @@ -353,11 +352,11 @@ public Multiplicity() /// /// Whether all things that meet the classification conditions of this Type must be classified by the - /// Type. (A Type gives conditions that must be met by whatever it - /// classifies, but when isSufficient is false, things may meet those conditions but still not be - /// classified by the Type. For example, a Type Car that is not sufficient could require everything it - /// classifies to have four wheels, but not all four wheeled things would classify as cars. However, if - /// the Type Car were sufficient, it would classify all four-wheeled things.) + /// Type.(A Type gives conditions that must be met by whatever it classifies, but when isSufficient + /// is false, things may meet those conditions but still not be classified by the Type. For example, a + /// Type Car that is not sufficient could require everything it classifies to have four wheels, but not + /// all four wheeled things would classify as cars. However, if the Type Car were sufficient, it would + /// classify all four-wheeled things.) /// [Property(xmiId: "_18_5_3_b9102da_1564072709069_937523_30797", aggregation: AggregationKind.None, lowerValue: 1, upperValue: 1, isOrdered: false, isReadOnly: false, isDerived: false, isDerivedUnion: false, isUnique: true, defaultValue: "false")] [Implements(implementation: "IType.IsSufficient")] @@ -840,9 +839,8 @@ public Multiplicity() public FeatureDirectionKind? DirectionOfExcluding(IFeature feature, List excluded) => this.ComputeDirectionOfExcludingOperation(feature, excluded); /// - /// If a Feature has no declaredName or declaredShortName , then its - /// effective name is given by the effective name of the Feature returned by the namingFeature() - /// operation, if any. + /// If a Feature has no declaredName or declaredShortName, then its effective name is given by the + /// effective name of the Feature returned by the namingFeature() operation, if any. /// /// /// The expected @@ -947,11 +945,10 @@ public Multiplicity() /// /// A Feature is compatible with an otherType if it either directly or indirectly specializes the - /// otherType or if the otherType is also a Feature and all of the following are true. - ///
  1. Neither this Feature or the otherType have any - /// ownedFeatures.
  2. This Feature directly or indirectly redefines a - /// Feature that is also directly or indirectly redefined by the otherType.
  3. - ///
  4. This Feature can access the otherType.
+ /// otherType or if the otherType is also a Feature and all of the following are true.
  1. Neither + /// this Feature or the otherType have any ownedFeatures.
  2. This Feature directly or indirectly + /// redefines a Feature that is also directly or indirectly redefined by the otherType.
  3. This + /// Feature can access the otherType.
///
/// /// No documentation provided @@ -1100,8 +1097,8 @@ public Multiplicity() /// an owningRelationship, then return the string constructed by appending to the path of it's /// owningRelationship the character / followed by the string representation of its position in the list /// of ownedRelatedElements of the owningRelationship (indexed starting at 1). Otherwise, return the - /// empty string. (Note that this operation is overridden for Relationships - /// to use owningRelatedElement when appropriate.) + /// empty string.(Note that this operation is overridden for Relationships to use owningRelatedElement + /// when appropriate.) /// /// /// The expected @@ -1146,13 +1143,12 @@ public Multiplicity() /// /// Return a subset of memberships, removing those Memberships whose memberElements are Features and for - /// which either of the following two conditions holds:
    - ///
  1. The memberElement of the Membership is included in redefined Features of another - /// Membership in memberships.
  2. One of the redefined Features of the - /// Membership is a directly redefinedFeature of an ownedFeature of this Type.
  3. - ///
For this purpose, the redefined Features of a Membership - /// whose memberElement is a Feature includes the memberElement and all Features directly or indirectly - /// redefined by the memberElement. + /// which either of the following two conditions holds:
  1. The memberElement of the Membership is + /// included in redefined Features of another Membership in memberships.
  2. One of the redefined + /// Features of the Membership is a directly redefinedFeature of an ownedFeature of this + /// Type.
For this purpose, the redefined Features of a Membership whose memberElement is a + /// Feature includes the memberElement and all Features directly or indirectly redefined by the + /// memberElement. ///
/// /// No documentation provided @@ -1279,11 +1275,11 @@ public Multiplicity() /// Return the Features used to determine the types of this Feature (other than this Feature itself). If /// this Feature is not conjugated, then the typingFeatures consist of all subsetted Features, except /// from CrossSubsetting, and the last chainingFeature (if any). If this Feature is conjugated, then the - /// typingFeatures are only its originalType (if the originalType is a Feature). - /// Note. CrossSubsetting is excluded from the determination of the type of a - /// Feature in order to avoid circularity in the construction of implied CrossSubsetting relationships. - /// The validateFeatureCrossFeatureType requires that the crossFeature of a Feature have the same type - /// as the Feature. + /// typingFeatures are only its originalType (if the originalType is a Feature).Note. + /// CrossSubsetting is excluded from the determination of the type of a Feature in order to avoid + /// circularity in the construction of implied CrossSubsetting relationships. The + /// validateFeatureCrossFeatureType requires that the crossFeature of a Feature have the same type as + /// the Feature. /// /// /// The expected collection of diff --git a/SysML2.NET/Core/AutoGenPoco/MultiplicityRange.cs b/SysML2.NET/Core/AutoGenPoco/MultiplicityRange.cs index b96157d2c..602115449 100644 --- a/SysML2.NET/Core/AutoGenPoco/MultiplicityRange.cs +++ b/SysML2.NET/Core/AutoGenPoco/MultiplicityRange.cs @@ -358,11 +358,11 @@ public MultiplicityRange() /// /// Whether all things that meet the classification conditions of this Type must be classified by the - /// Type. (A Type gives conditions that must be met by whatever it - /// classifies, but when isSufficient is false, things may meet those conditions but still not be - /// classified by the Type. For example, a Type Car that is not sufficient could require everything it - /// classifies to have four wheels, but not all four wheeled things would classify as cars. However, if - /// the Type Car were sufficient, it would classify all four-wheeled things.) + /// Type.(A Type gives conditions that must be met by whatever it classifies, but when isSufficient + /// is false, things may meet those conditions but still not be classified by the Type. For example, a + /// Type Car that is not sufficient could require everything it classifies to have four wheels, but not + /// all four wheeled things would classify as cars. However, if the Type Car were sufficient, it would + /// classify all four-wheeled things.) /// [Property(xmiId: "_18_5_3_b9102da_1564072709069_937523_30797", aggregation: AggregationKind.None, lowerValue: 1, upperValue: 1, isOrdered: false, isReadOnly: false, isDerived: false, isDerivedUnion: false, isUnique: true, defaultValue: "false")] [Implements(implementation: "IType.IsSufficient")] @@ -863,9 +863,8 @@ public MultiplicityRange() public FeatureDirectionKind? DirectionOfExcluding(IFeature feature, List excluded) => this.ComputeDirectionOfExcludingOperation(feature, excluded); /// - /// If a Feature has no declaredName or declaredShortName , then its - /// effective name is given by the effective name of the Feature returned by the namingFeature() - /// operation, if any. + /// If a Feature has no declaredName or declaredShortName, then its effective name is given by the + /// effective name of the Feature returned by the namingFeature() operation, if any. /// /// /// The expected @@ -985,11 +984,10 @@ public MultiplicityRange() /// /// A Feature is compatible with an otherType if it either directly or indirectly specializes the - /// otherType or if the otherType is also a Feature and all of the following are true. - ///
  1. Neither this Feature or the otherType have any - /// ownedFeatures.
  2. This Feature directly or indirectly redefines a - /// Feature that is also directly or indirectly redefined by the otherType.
  3. - ///
  4. This Feature can access the otherType.
+ /// otherType or if the otherType is also a Feature and all of the following are true.
  1. Neither + /// this Feature or the otherType have any ownedFeatures.
  2. This Feature directly or indirectly + /// redefines a Feature that is also directly or indirectly redefined by the otherType.
  3. This + /// Feature can access the otherType.
///
/// /// No documentation provided @@ -1138,8 +1136,8 @@ public MultiplicityRange() /// an owningRelationship, then return the string constructed by appending to the path of it's /// owningRelationship the character / followed by the string representation of its position in the list /// of ownedRelatedElements of the owningRelationship (indexed starting at 1). Otherwise, return the - /// empty string. (Note that this operation is overridden for Relationships - /// to use owningRelatedElement when appropriate.) + /// empty string.(Note that this operation is overridden for Relationships to use owningRelatedElement + /// when appropriate.) /// /// /// The expected @@ -1184,13 +1182,12 @@ public MultiplicityRange() /// /// Return a subset of memberships, removing those Memberships whose memberElements are Features and for - /// which either of the following two conditions holds:
    - ///
  1. The memberElement of the Membership is included in redefined Features of another - /// Membership in memberships.
  2. One of the redefined Features of the - /// Membership is a directly redefinedFeature of an ownedFeature of this Type.
  3. - ///
For this purpose, the redefined Features of a Membership - /// whose memberElement is a Feature includes the memberElement and all Features directly or indirectly - /// redefined by the memberElement. + /// which either of the following two conditions holds:
  1. The memberElement of the Membership is + /// included in redefined Features of another Membership in memberships.
  2. One of the redefined + /// Features of the Membership is a directly redefinedFeature of an ownedFeature of this + /// Type.
For this purpose, the redefined Features of a Membership whose memberElement is a + /// Feature includes the memberElement and all Features directly or indirectly redefined by the + /// memberElement. ///
/// /// No documentation provided @@ -1317,11 +1314,11 @@ public MultiplicityRange() /// Return the Features used to determine the types of this Feature (other than this Feature itself). If /// this Feature is not conjugated, then the typingFeatures consist of all subsetted Features, except /// from CrossSubsetting, and the last chainingFeature (if any). If this Feature is conjugated, then the - /// typingFeatures are only its originalType (if the originalType is a Feature). - /// Note. CrossSubsetting is excluded from the determination of the type of a - /// Feature in order to avoid circularity in the construction of implied CrossSubsetting relationships. - /// The validateFeatureCrossFeatureType requires that the crossFeature of a Feature have the same type - /// as the Feature. + /// typingFeatures are only its originalType (if the originalType is a Feature).Note. + /// CrossSubsetting is excluded from the determination of the type of a Feature in order to avoid + /// circularity in the construction of implied CrossSubsetting relationships. The + /// validateFeatureCrossFeatureType requires that the crossFeature of a Feature have the same type as + /// the Feature. /// /// /// The expected collection of diff --git a/SysML2.NET/Core/AutoGenPoco/Namespace.cs b/SysML2.NET/Core/AutoGenPoco/Namespace.cs index 0af4a275b..839041552 100644 --- a/SysML2.NET/Core/AutoGenPoco/Namespace.cs +++ b/SysML2.NET/Core/AutoGenPoco/Namespace.cs @@ -38,14 +38,13 @@ namespace SysML2.NET.Core.POCO.Root.Namespaces /// /// A Namespace is an Element that contains other Elements, known as its members, via Membership /// Relationships with those Elements. The members of a Namespace may be owned by the Namespace, aliased - /// in the Namespace, or imported into the Namespace via Import Relationships. A - /// Namespace can provide names for its members via the memberNames and memberShortNames specified by - /// the Memberships in the Namespace. If a Membership specifies a memberName and/or memberShortName, - /// then those are names of the corresponding memberElement relative to the Namespace. For an - /// OwningMembership, the ownedMemberName and ownedMemberShortName are given by the Element name and - /// shortName. Note that the same Element may be the memberElement of multiple Memberships in a - /// Namespace (though it may be owned at most once), each of which may define a separate alias for the - /// Element relative to the Namespace. + /// in the Namespace, or imported into the Namespace via Import Relationships.A Namespace can provide + /// names for its members via the memberNames and memberShortNames specified by the Memberships in the + /// Namespace. If a Membership specifies a memberName and/or memberShortName, then those are names of + /// the corresponding memberElement relative to the Namespace. For an OwningMembership, the + /// ownedMemberName and ownedMemberShortName are given by the Element name and shortName. Note that the + /// same Element may be the memberElement of multiple Memberships in a Namespace (though it may be owned + /// at most once), each of which may define a separate alias for the Element relative to the Namespace. /// [Class(xmiId: "_18_5_3_12e503d9_1533160651694_110063_42176", isAbstract: false, isFinalSpecialization: false, isActive: false)] [GeneratedCode("SysML2.NET", "latest")] @@ -374,8 +373,8 @@ public Namespace() /// an owningRelationship, then return the string constructed by appending to the path of it's /// owningRelationship the character / followed by the string representation of its position in the list /// of ownedRelatedElements of the owningRelationship (indexed starting at 1). Otherwise, return the - /// empty string. (Note that this operation is overridden for Relationships - /// to use owningRelatedElement when appropriate.) + /// empty string.(Note that this operation is overridden for Relationships to use owningRelatedElement + /// when appropriate.) /// /// /// The expected diff --git a/SysML2.NET/Core/AutoGenPoco/NamespaceExpose.cs b/SysML2.NET/Core/AutoGenPoco/NamespaceExpose.cs index 372e231fb..4d844f87a 100644 --- a/SysML2.NET/Core/AutoGenPoco/NamespaceExpose.cs +++ b/SysML2.NET/Core/AutoGenPoco/NamespaceExpose.cs @@ -470,8 +470,8 @@ VisibilityKind Root.Namespaces.IImport.Visibility /// an owningRelationship, then return the string constructed by appending to the path of it's /// owningRelationship the character / followed by the string representation of its position in the list /// of ownedRelatedElements of the owningRelationship (indexed starting at 1). Otherwise, return the - /// empty string. (Note that this operation is overridden for Relationships - /// to use owningRelatedElement when appropriate.) + /// empty string.(Note that this operation is overridden for Relationships to use owningRelatedElement + /// when appropriate.) /// /// /// The expected diff --git a/SysML2.NET/Core/AutoGenPoco/NamespaceImport.cs b/SysML2.NET/Core/AutoGenPoco/NamespaceImport.cs index 4414b8751..be338355d 100644 --- a/SysML2.NET/Core/AutoGenPoco/NamespaceImport.cs +++ b/SysML2.NET/Core/AutoGenPoco/NamespaceImport.cs @@ -439,8 +439,8 @@ List Root.Elements.IRelationship.Target /// an owningRelationship, then return the string constructed by appending to the path of it's /// owningRelationship the character / followed by the string representation of its position in the list /// of ownedRelatedElements of the owningRelationship (indexed starting at 1). Otherwise, return the - /// empty string. (Note that this operation is overridden for Relationships - /// to use owningRelatedElement when appropriate.) + /// empty string.(Note that this operation is overridden for Relationships to use owningRelatedElement + /// when appropriate.) /// /// /// The expected diff --git a/SysML2.NET/Core/AutoGenPoco/NullExpression.cs b/SysML2.NET/Core/AutoGenPoco/NullExpression.cs index 3bed8a22a..99ab82978 100644 --- a/SysML2.NET/Core/AutoGenPoco/NullExpression.cs +++ b/SysML2.NET/Core/AutoGenPoco/NullExpression.cs @@ -370,11 +370,11 @@ public NullExpression() /// /// Whether all things that meet the classification conditions of this Type must be classified by the - /// Type. (A Type gives conditions that must be met by whatever it - /// classifies, but when isSufficient is false, things may meet those conditions but still not be - /// classified by the Type. For example, a Type Car that is not sufficient could require everything it - /// classifies to have four wheels, but not all four wheeled things would classify as cars. However, if - /// the Type Car were sufficient, it would classify all four-wheeled things.) + /// Type.(A Type gives conditions that must be met by whatever it classifies, but when isSufficient + /// is false, things may meet those conditions but still not be classified by the Type. For example, a + /// Type Car that is not sufficient could require everything it classifies to have four wheels, but not + /// all four wheeled things would classify as cars. However, if the Type Car were sufficient, it would + /// classify all four-wheeled things.) /// [Property(xmiId: "_18_5_3_b9102da_1564072709069_937523_30797", aggregation: AggregationKind.None, lowerValue: 1, upperValue: 1, isOrdered: false, isReadOnly: false, isDerived: false, isDerivedUnion: false, isUnique: true, defaultValue: "false")] [Implements(implementation: "IType.IsSufficient")] @@ -889,9 +889,8 @@ public NullExpression() public FeatureDirectionKind? DirectionOfExcluding(IFeature feature, List excluded) => this.ComputeDirectionOfExcludingOperation(feature, excluded); /// - /// If a Feature has no declaredName or declaredShortName , then its - /// effective name is given by the effective name of the Feature returned by the namingFeature() - /// operation, if any. + /// If a Feature has no declaredName or declaredShortName, then its effective name is given by the + /// effective name of the Feature returned by the namingFeature() operation, if any. /// /// /// The expected @@ -1021,11 +1020,10 @@ public NullExpression() /// /// A Feature is compatible with an otherType if it either directly or indirectly specializes the - /// otherType or if the otherType is also a Feature and all of the following are true. - ///
  1. Neither this Feature or the otherType have any - /// ownedFeatures.
  2. This Feature directly or indirectly redefines a - /// Feature that is also directly or indirectly redefined by the otherType.
  3. - ///
  4. This Feature can access the otherType.
+ /// otherType or if the otherType is also a Feature and all of the following are true.
  1. Neither + /// this Feature or the otherType have any ownedFeatures.
  2. This Feature directly or indirectly + /// redefines a Feature that is also directly or indirectly redefined by the otherType.
  3. This + /// Feature can access the otherType.
///
/// /// No documentation provided @@ -1125,11 +1123,11 @@ public NullExpression() /// Return whether this Expression is model-level evaluable. The visited parameter is used to track /// possible circular Feature references made from FeatureReferenceExpressions (see the redefinition of /// this operation for FeatureReferenceExpression). Such circular references are not allowed in - /// model-level evaluable expressions. An Expression that is not otherwise - /// specialized is model-level evaluable if it has no (non-implied) ownedSpecializations and all its - /// ownedFeatures are either in parameters, the result parameter or a result Expression owned via a - /// ResultExpressionMembership. The parameters must not have any ownedFeatures or a FeatureValue, and - /// the result Expression must be model-level evaluable. + /// model-level evaluable expressions.An Expression that is not otherwise specialized is model-level + /// evaluable if it has no (non-implied) ownedSpecializations and all its ownedFeatures are either in + /// parameters, the result parameter or a result Expression owned via a ResultExpressionMembership. The + /// parameters must not have any ownedFeatures or a FeatureValue, and the result Expression must be + /// model-level evaluable. /// /// /// No documentation provided @@ -1203,8 +1201,8 @@ public NullExpression() /// an owningRelationship, then return the string constructed by appending to the path of it's /// owningRelationship the character / followed by the string representation of its position in the list /// of ownedRelatedElements of the owningRelationship (indexed starting at 1). Otherwise, return the - /// empty string. (Note that this operation is overridden for Relationships - /// to use owningRelatedElement when appropriate.) + /// empty string.(Note that this operation is overridden for Relationships to use owningRelatedElement + /// when appropriate.) /// /// /// The expected @@ -1249,13 +1247,12 @@ public NullExpression() /// /// Return a subset of memberships, removing those Memberships whose memberElements are Features and for - /// which either of the following two conditions holds:
    - ///
  1. The memberElement of the Membership is included in redefined Features of another - /// Membership in memberships.
  2. One of the redefined Features of the - /// Membership is a directly redefinedFeature of an ownedFeature of this Type.
  3. - ///
For this purpose, the redefined Features of a Membership - /// whose memberElement is a Feature includes the memberElement and all Features directly or indirectly - /// redefined by the memberElement. + /// which either of the following two conditions holds:
  1. The memberElement of the Membership is + /// included in redefined Features of another Membership in memberships.
  2. One of the redefined + /// Features of the Membership is a directly redefinedFeature of an ownedFeature of this + /// Type.
For this purpose, the redefined Features of a Membership whose memberElement is a + /// Feature includes the memberElement and all Features directly or indirectly redefined by the + /// memberElement. ///
/// /// No documentation provided @@ -1382,11 +1379,11 @@ public NullExpression() /// Return the Features used to determine the types of this Feature (other than this Feature itself). If /// this Feature is not conjugated, then the typingFeatures consist of all subsetted Features, except /// from CrossSubsetting, and the last chainingFeature (if any). If this Feature is conjugated, then the - /// typingFeatures are only its originalType (if the originalType is a Feature). - /// Note. CrossSubsetting is excluded from the determination of the type of a - /// Feature in order to avoid circularity in the construction of implied CrossSubsetting relationships. - /// The validateFeatureCrossFeatureType requires that the crossFeature of a Feature have the same type - /// as the Feature. + /// typingFeatures are only its originalType (if the originalType is a Feature).Note. + /// CrossSubsetting is excluded from the determination of the type of a Feature in order to avoid + /// circularity in the construction of implied CrossSubsetting relationships. The + /// validateFeatureCrossFeatureType requires that the crossFeature of a Feature have the same type as + /// the Feature. /// /// /// The expected collection of diff --git a/SysML2.NET/Core/AutoGenPoco/ObjectiveMembership.cs b/SysML2.NET/Core/AutoGenPoco/ObjectiveMembership.cs index ea41ba248..673843e73 100644 --- a/SysML2.NET/Core/AutoGenPoco/ObjectiveMembership.cs +++ b/SysML2.NET/Core/AutoGenPoco/ObjectiveMembership.cs @@ -519,8 +519,8 @@ List Root.Elements.IRelationship.Target /// an owningRelationship, then return the string constructed by appending to the path of it's /// owningRelationship the character / followed by the string representation of its position in the list /// of ownedRelatedElements of the owningRelationship (indexed starting at 1). Otherwise, return the - /// empty string. (Note that this operation is overridden for Relationships - /// to use owningRelatedElement when appropriate.) + /// empty string.(Note that this operation is overridden for Relationships to use owningRelatedElement + /// when appropriate.) /// /// /// The expected diff --git a/SysML2.NET/Core/AutoGenPoco/OccurrenceDefinition.cs b/SysML2.NET/Core/AutoGenPoco/OccurrenceDefinition.cs index 977b0ac42..1652a99b3 100644 --- a/SysML2.NET/Core/AutoGenPoco/OccurrenceDefinition.cs +++ b/SysML2.NET/Core/AutoGenPoco/OccurrenceDefinition.cs @@ -273,11 +273,11 @@ public OccurrenceDefinition() /// /// Whether all things that meet the classification conditions of this Type must be classified by the - /// Type. (A Type gives conditions that must be met by whatever it - /// classifies, but when isSufficient is false, things may meet those conditions but still not be - /// classified by the Type. For example, a Type Car that is not sufficient could require everything it - /// classifies to have four wheels, but not all four wheeled things would classify as cars. However, if - /// the Type Car were sufficient, it would classify all four-wheeled things.) + /// Type.(A Type gives conditions that must be met by whatever it classifies, but when isSufficient + /// is false, things may meet those conditions but still not be classified by the Type. For example, a + /// Type Car that is not sufficient could require everything it classifies to have four wheels, but not + /// all four wheeled things would classify as cars. However, if the Type Car were sufficient, it would + /// classify all four-wheeled things.) /// [Property(xmiId: "_18_5_3_b9102da_1564072709069_937523_30797", aggregation: AggregationKind.None, lowerValue: 1, upperValue: 1, isOrdered: false, isReadOnly: false, isDerived: false, isDerivedUnion: false, isUnique: true, defaultValue: "false")] [Implements(implementation: "IType.IsSufficient")] @@ -555,7 +555,7 @@ public OccurrenceDefinition() public List ownedMembership => this.ComputeOwnedMembership(); /// - /// The MetadataUsages that are ownedUsages of this Definition. + /// The MetadataUsages that are ownedMembers of this Definition. /// [Property(xmiId: "_19_0_4_12e503d9_1661488358064_457109_2881", aggregation: AggregationKind.None, lowerValue: 0, upperValue: int.MaxValue, isOrdered: true, isReadOnly: false, isDerived: true, isDerivedUnion: false, isUnique: true, defaultValue: null)] [SubsettedProperty(propertyName: "_19_0_2_12e503d9_1591482567975_649284_3005")] @@ -1022,8 +1022,8 @@ public OccurrenceDefinition() /// an owningRelationship, then return the string constructed by appending to the path of it's /// owningRelationship the character / followed by the string representation of its position in the list /// of ownedRelatedElements of the owningRelationship (indexed starting at 1). Otherwise, return the - /// empty string. (Note that this operation is overridden for Relationships - /// to use owningRelatedElement when appropriate.) + /// empty string.(Note that this operation is overridden for Relationships to use owningRelatedElement + /// when appropriate.) /// /// /// The expected @@ -1045,13 +1045,12 @@ public OccurrenceDefinition() /// /// Return a subset of memberships, removing those Memberships whose memberElements are Features and for - /// which either of the following two conditions holds:
    - ///
  1. The memberElement of the Membership is included in redefined Features of another - /// Membership in memberships.
  2. One of the redefined Features of the - /// Membership is a directly redefinedFeature of an ownedFeature of this Type.
  3. - ///
For this purpose, the redefined Features of a Membership - /// whose memberElement is a Feature includes the memberElement and all Features directly or indirectly - /// redefined by the memberElement. + /// which either of the following two conditions holds:
  1. The memberElement of the Membership is + /// included in redefined Features of another Membership in memberships.
  2. One of the redefined + /// Features of the Membership is a directly redefinedFeature of an ownedFeature of this + /// Type.
For this purpose, the redefined Features of a Membership whose memberElement is a + /// Feature includes the memberElement and all Features directly or indirectly redefined by the + /// memberElement. ///
/// /// No documentation provided diff --git a/SysML2.NET/Core/AutoGenPoco/OccurrenceUsage.cs b/SysML2.NET/Core/AutoGenPoco/OccurrenceUsage.cs index 36e75a706..b85c328fb 100644 --- a/SysML2.NET/Core/AutoGenPoco/OccurrenceUsage.cs +++ b/SysML2.NET/Core/AutoGenPoco/OccurrenceUsage.cs @@ -411,11 +411,11 @@ public OccurrenceUsage() /// /// Whether all things that meet the classification conditions of this Type must be classified by the - /// Type. (A Type gives conditions that must be met by whatever it - /// classifies, but when isSufficient is false, things may meet those conditions but still not be - /// classified by the Type. For example, a Type Car that is not sufficient could require everything it - /// classifies to have four wheels, but not all four wheeled things would classify as cars. However, if - /// the Type Car were sufficient, it would classify all four-wheeled things.) + /// Type.(A Type gives conditions that must be met by whatever it classifies, but when isSufficient + /// is false, things may meet those conditions but still not be classified by the Type. For example, a + /// Type Car that is not sufficient could require everything it classifies to have four wheels, but not + /// all four wheeled things would classify as cars. However, if the Type Car were sufficient, it would + /// classify all four-wheeled things.) /// [Property(xmiId: "_18_5_3_b9102da_1564072709069_937523_30797", aggregation: AggregationKind.None, lowerValue: 1, upperValue: 1, isOrdered: false, isReadOnly: false, isDerived: false, isDerivedUnion: false, isUnique: true, defaultValue: "false")] [Implements(implementation: "IType.IsSufficient")] @@ -453,9 +453,9 @@ bool Core.Features.IFeature.IsVariable /// Whether this Usage may be time varying (that is, whether it is featured by the snapshots of its /// owningType, rather than being featured by the owningType itself). However, if isConstant is also /// true, then the value of the Usage is nevertheless constant over the entire duration of an instance - /// of its owningType (that is, it has the same value on all snapshots). The - /// property mayTimeVary redefines the KerML property Feature::isVariable, making it derived. The - /// property isConstant is inherited from Feature. + /// of its owningType (that is, it has the same value on all snapshots).The property mayTimeVary + /// redefines the KerML property Feature::isVariable, making it derived. The property isConstant is + /// inherited from Feature. /// [Property(xmiId: "_2022x_2_12e503d9_1737227200362_771035_69", aggregation: AggregationKind.None, lowerValue: 1, upperValue: 1, isOrdered: false, isReadOnly: false, isDerived: true, isDerivedUnion: false, isUnique: true, defaultValue: null)] [RedefinedProperty(propertyName: "_2022x_2_12e503d9_1725998273002_23711_212")] @@ -556,8 +556,8 @@ bool Core.Features.IFeature.IsVariable /// /// The ConnectorAsUsages that are nestedUsages of this Usage. Note that this list includes - /// BindingConnectorAsUsages, SuccessionAsUsages, and FlowConnectionUsages because these are - /// ConnectorAsUsages even though they are not ConnectionUsages. + /// BindingConnectorAsUsages, SuccessionAsUsages, and FlowUsages because these are ConnectorAsUsages + /// even though they are not ConnectionUsages. /// [Property(xmiId: "_19_0_2_12e503d9_1591479754895_422988_1242", aggregation: AggregationKind.None, lowerValue: 0, upperValue: int.MaxValue, isOrdered: true, isReadOnly: false, isDerived: true, isDerivedUnion: false, isUnique: true, defaultValue: null)] [SubsettedProperty(propertyName: "_18_5_3_12e503d9_1565472757327_162097_21259")] @@ -605,7 +605,7 @@ bool Core.Features.IFeature.IsVariable public List nestedItem => this.ComputeNestedItem(); /// - /// The MetadataUsages that are nestedUsages of this of this Usage. + /// The MetadataUsages that are ownedMembers of this of this Usage. /// [Property(xmiId: "_19_0_4_12e503d9_1661488589862_120785_2970", aggregation: AggregationKind.None, lowerValue: 0, upperValue: int.MaxValue, isOrdered: true, isReadOnly: false, isDerived: true, isDerivedUnion: false, isUnique: true, defaultValue: null)] [SubsettedProperty(propertyName: "_19_0_2_12e503d9_1591482421103_284620_2978")] @@ -1204,9 +1204,8 @@ bool Core.Features.IFeature.IsVariable public FeatureDirectionKind? DirectionOfExcluding(IFeature feature, List excluded) => this.ComputeDirectionOfExcludingOperation(feature, excluded); /// - /// If a Feature has no declaredName or declaredShortName , then its - /// effective name is given by the effective name of the Feature returned by the namingFeature() - /// operation, if any. + /// If a Feature has no declaredName or declaredShortName, then its effective name is given by the + /// effective name of the Feature returned by the namingFeature() operation, if any. /// /// /// The expected @@ -1311,11 +1310,10 @@ bool Core.Features.IFeature.IsVariable /// /// A Feature is compatible with an otherType if it either directly or indirectly specializes the - /// otherType or if the otherType is also a Feature and all of the following are true. - ///
  1. Neither this Feature or the otherType have any - /// ownedFeatures.
  2. This Feature directly or indirectly redefines a - /// Feature that is also directly or indirectly redefined by the otherType.
  3. - ///
  4. This Feature can access the otherType.
+ /// otherType or if the otherType is also a Feature and all of the following are true.
  1. Neither + /// this Feature or the otherType have any ownedFeatures.
  2. This Feature directly or indirectly + /// redefines a Feature that is also directly or indirectly redefined by the otherType.
  3. This + /// Feature can access the otherType.
///
/// /// No documentation provided @@ -1473,8 +1471,8 @@ bool Core.Features.IFeature.IsVariable /// an owningRelationship, then return the string constructed by appending to the path of it's /// owningRelationship the character / followed by the string representation of its position in the list /// of ownedRelatedElements of the owningRelationship (indexed starting at 1). Otherwise, return the - /// empty string. (Note that this operation is overridden for Relationships - /// to use owningRelatedElement when appropriate.) + /// empty string.(Note that this operation is overridden for Relationships to use owningRelatedElement + /// when appropriate.) /// /// /// The expected @@ -1528,13 +1526,12 @@ bool Core.Features.IFeature.IsVariable /// /// Return a subset of memberships, removing those Memberships whose memberElements are Features and for - /// which either of the following two conditions holds:
    - ///
  1. The memberElement of the Membership is included in redefined Features of another - /// Membership in memberships.
  2. One of the redefined Features of the - /// Membership is a directly redefinedFeature of an ownedFeature of this Type.
  3. - ///
For this purpose, the redefined Features of a Membership - /// whose memberElement is a Feature includes the memberElement and all Features directly or indirectly - /// redefined by the memberElement. + /// which either of the following two conditions holds:
  1. The memberElement of the Membership is + /// included in redefined Features of another Membership in memberships.
  2. One of the redefined + /// Features of the Membership is a directly redefinedFeature of an ownedFeature of this + /// Type.
For this purpose, the redefined Features of a Membership whose memberElement is a + /// Feature includes the memberElement and all Features directly or indirectly redefined by the + /// memberElement. ///
/// /// No documentation provided @@ -1661,11 +1658,11 @@ bool Core.Features.IFeature.IsVariable /// Return the Features used to determine the types of this Feature (other than this Feature itself). If /// this Feature is not conjugated, then the typingFeatures consist of all subsetted Features, except /// from CrossSubsetting, and the last chainingFeature (if any). If this Feature is conjugated, then the - /// typingFeatures are only its originalType (if the originalType is a Feature). - /// Note. CrossSubsetting is excluded from the determination of the type of a - /// Feature in order to avoid circularity in the construction of implied CrossSubsetting relationships. - /// The validateFeatureCrossFeatureType requires that the crossFeature of a Feature have the same type - /// as the Feature. + /// typingFeatures are only its originalType (if the originalType is a Feature).Note. + /// CrossSubsetting is excluded from the determination of the type of a Feature in order to avoid + /// circularity in the construction of implied CrossSubsetting relationships. The + /// validateFeatureCrossFeatureType requires that the crossFeature of a Feature have the same type as + /// the Feature. /// /// /// The expected collection of diff --git a/SysML2.NET/Core/AutoGenPoco/OperatorExpression.cs b/SysML2.NET/Core/AutoGenPoco/OperatorExpression.cs index 509c408f4..5a1d26166 100644 --- a/SysML2.NET/Core/AutoGenPoco/OperatorExpression.cs +++ b/SysML2.NET/Core/AutoGenPoco/OperatorExpression.cs @@ -77,8 +77,8 @@ public OperatorExpression() /// /// The Expressions whose results are bound to features of the instantiatedType. The arguments are /// ordered consistent with the order of the features, though they may not be one-to-one with all the - /// features. Note. The derivation of argument is given in - /// the concrete subclasses of InstantiationExpression. + /// features.Note. The derivation of argument is given in the concrete subclasses of + /// InstantiationExpression. /// [Property(xmiId: "_2022x_2_12e503d9_1739134437590_328753_108", aggregation: AggregationKind.None, lowerValue: 0, upperValue: int.MaxValue, isOrdered: true, isReadOnly: false, isDerived: true, isDerivedUnion: false, isUnique: true, defaultValue: null)] [Implements(implementation: "IInstantiationExpression.Argument")] @@ -389,11 +389,11 @@ public OperatorExpression() /// /// Whether all things that meet the classification conditions of this Type must be classified by the - /// Type. (A Type gives conditions that must be met by whatever it - /// classifies, but when isSufficient is false, things may meet those conditions but still not be - /// classified by the Type. For example, a Type Car that is not sufficient could require everything it - /// classifies to have four wheels, but not all four wheeled things would classify as cars. However, if - /// the Type Car were sufficient, it would classify all four-wheeled things.) + /// Type.(A Type gives conditions that must be met by whatever it classifies, but when isSufficient + /// is false, things may meet those conditions but still not be classified by the Type. For example, a + /// Type Car that is not sufficient could require everything it classifies to have four wheels, but not + /// all four wheeled things would classify as cars. However, if the Type Car were sufficient, it would + /// classify all four-wheeled things.) /// [Property(xmiId: "_18_5_3_b9102da_1564072709069_937523_30797", aggregation: AggregationKind.None, lowerValue: 1, upperValue: 1, isOrdered: false, isReadOnly: false, isDerived: false, isDerivedUnion: false, isUnique: true, defaultValue: "false")] [Implements(implementation: "IType.IsSufficient")] @@ -916,9 +916,8 @@ public OperatorExpression() public FeatureDirectionKind? DirectionOfExcluding(IFeature feature, List excluded) => this.ComputeDirectionOfExcludingOperation(feature, excluded); /// - /// If a Feature has no declaredName or declaredShortName , then its - /// effective name is given by the effective name of the Feature returned by the namingFeature() - /// operation, if any. + /// If a Feature has no declaredName or declaredShortName, then its effective name is given by the + /// effective name of the Feature returned by the namingFeature() operation, if any. /// /// /// The expected @@ -1052,8 +1051,7 @@ public OperatorExpression() /// /// Return the Type to act as the instantiatedType for this InstantiationExpression. By default, this is /// the memberElement of the first ownedMembership that is not a FeatureMembership, which must be a - /// Type. Note. This operation is overridden in the subclass - /// OperatorExpression. + /// Type.Note. This operation is overridden in the subclass OperatorExpression. /// /// /// The expected @@ -1070,11 +1068,10 @@ public OperatorExpression() /// /// A Feature is compatible with an otherType if it either directly or indirectly specializes the - /// otherType or if the otherType is also a Feature and all of the following are true. - ///
  1. Neither this Feature or the otherType have any - /// ownedFeatures.
  2. This Feature directly or indirectly redefines a - /// Feature that is also directly or indirectly redefined by the otherType.
  3. - ///
  4. This Feature can access the otherType.
+ /// otherType or if the otherType is also a Feature and all of the following are true.
  1. Neither + /// this Feature or the otherType have any ownedFeatures.
  2. This Feature directly or indirectly + /// redefines a Feature that is also directly or indirectly redefined by the otherType.
  3. This + /// Feature can access the otherType.
///
/// /// No documentation provided @@ -1175,11 +1172,11 @@ public OperatorExpression() /// Return whether this Expression is model-level evaluable. The visited parameter is used to track /// possible circular Feature references made from FeatureReferenceExpressions (see the redefinition of /// this operation for FeatureReferenceExpression). Such circular references are not allowed in - /// model-level evaluable expressions. An Expression that is not otherwise - /// specialized is model-level evaluable if it has no (non-implied) ownedSpecializations and all its - /// ownedFeatures are either in parameters, the result parameter or a result Expression owned via a - /// ResultExpressionMembership. The parameters must not have any ownedFeatures or a FeatureValue, and - /// the result Expression must be model-level evaluable. + /// model-level evaluable expressions.An Expression that is not otherwise specialized is model-level + /// evaluable if it has no (non-implied) ownedSpecializations and all its ownedFeatures are either in + /// parameters, the result parameter or a result Expression owned via a ResultExpressionMembership. The + /// parameters must not have any ownedFeatures or a FeatureValue, and the result Expression must be + /// model-level evaluable. /// /// /// No documentation provided @@ -1253,8 +1250,8 @@ public OperatorExpression() /// an owningRelationship, then return the string constructed by appending to the path of it's /// owningRelationship the character / followed by the string representation of its position in the list /// of ownedRelatedElements of the owningRelationship (indexed starting at 1). Otherwise, return the - /// empty string. (Note that this operation is overridden for Relationships - /// to use owningRelatedElement when appropriate.) + /// empty string.(Note that this operation is overridden for Relationships to use owningRelatedElement + /// when appropriate.) /// /// /// The expected @@ -1299,13 +1296,12 @@ public OperatorExpression() /// /// Return a subset of memberships, removing those Memberships whose memberElements are Features and for - /// which either of the following two conditions holds:
    - ///
  1. The memberElement of the Membership is included in redefined Features of another - /// Membership in memberships.
  2. One of the redefined Features of the - /// Membership is a directly redefinedFeature of an ownedFeature of this Type.
  3. - ///
For this purpose, the redefined Features of a Membership - /// whose memberElement is a Feature includes the memberElement and all Features directly or indirectly - /// redefined by the memberElement. + /// which either of the following two conditions holds:
  1. The memberElement of the Membership is + /// included in redefined Features of another Membership in memberships.
  2. One of the redefined + /// Features of the Membership is a directly redefinedFeature of an ownedFeature of this + /// Type.
For this purpose, the redefined Features of a Membership whose memberElement is a + /// Feature includes the memberElement and all Features directly or indirectly redefined by the + /// memberElement. ///
/// /// No documentation provided @@ -1432,11 +1428,11 @@ public OperatorExpression() /// Return the Features used to determine the types of this Feature (other than this Feature itself). If /// this Feature is not conjugated, then the typingFeatures consist of all subsetted Features, except /// from CrossSubsetting, and the last chainingFeature (if any). If this Feature is conjugated, then the - /// typingFeatures are only its originalType (if the originalType is a Feature). - /// Note. CrossSubsetting is excluded from the determination of the type of a - /// Feature in order to avoid circularity in the construction of implied CrossSubsetting relationships. - /// The validateFeatureCrossFeatureType requires that the crossFeature of a Feature have the same type - /// as the Feature. + /// typingFeatures are only its originalType (if the originalType is a Feature).Note. + /// CrossSubsetting is excluded from the determination of the type of a Feature in order to avoid + /// circularity in the construction of implied CrossSubsetting relationships. The + /// validateFeatureCrossFeatureType requires that the crossFeature of a Feature have the same type as + /// the Feature. /// /// /// The expected collection of diff --git a/SysML2.NET/Core/AutoGenPoco/OwningMembership.cs b/SysML2.NET/Core/AutoGenPoco/OwningMembership.cs index 3561ae836..91067aea3 100644 --- a/SysML2.NET/Core/AutoGenPoco/OwningMembership.cs +++ b/SysML2.NET/Core/AutoGenPoco/OwningMembership.cs @@ -486,8 +486,8 @@ List Root.Elements.IRelationship.Target /// an owningRelationship, then return the string constructed by appending to the path of it's /// owningRelationship the character / followed by the string representation of its position in the list /// of ownedRelatedElements of the owningRelationship (indexed starting at 1). Otherwise, return the - /// empty string. (Note that this operation is overridden for Relationships - /// to use owningRelatedElement when appropriate.) + /// empty string.(Note that this operation is overridden for Relationships to use owningRelatedElement + /// when appropriate.) /// /// /// The expected diff --git a/SysML2.NET/Core/AutoGenPoco/Package.cs b/SysML2.NET/Core/AutoGenPoco/Package.cs index a8748c07d..f73dcb8ea 100644 --- a/SysML2.NET/Core/AutoGenPoco/Package.cs +++ b/SysML2.NET/Core/AutoGenPoco/Package.cs @@ -400,8 +400,8 @@ public Package() /// an owningRelationship, then return the string constructed by appending to the path of it's /// owningRelationship the character / followed by the string representation of its position in the list /// of ownedRelatedElements of the owningRelationship (indexed starting at 1). Otherwise, return the - /// empty string. (Note that this operation is overridden for Relationships - /// to use owningRelatedElement when appropriate.) + /// empty string.(Note that this operation is overridden for Relationships to use owningRelatedElement + /// when appropriate.) /// /// /// The expected diff --git a/SysML2.NET/Core/AutoGenPoco/ParameterMembership.cs b/SysML2.NET/Core/AutoGenPoco/ParameterMembership.cs index 458564b3d..3b20b8622 100644 --- a/SysML2.NET/Core/AutoGenPoco/ParameterMembership.cs +++ b/SysML2.NET/Core/AutoGenPoco/ParameterMembership.cs @@ -528,8 +528,8 @@ List Root.Elements.IRelationship.Target /// an owningRelationship, then return the string constructed by appending to the path of it's /// owningRelationship the character / followed by the string representation of its position in the list /// of ownedRelatedElements of the owningRelationship (indexed starting at 1). Otherwise, return the - /// empty string. (Note that this operation is overridden for Relationships - /// to use owningRelatedElement when appropriate.) + /// empty string.(Note that this operation is overridden for Relationships to use owningRelatedElement + /// when appropriate.) /// /// /// The expected diff --git a/SysML2.NET/Core/AutoGenPoco/PartDefinition.cs b/SysML2.NET/Core/AutoGenPoco/PartDefinition.cs index 33cbdb4b2..8bde288ce 100644 --- a/SysML2.NET/Core/AutoGenPoco/PartDefinition.cs +++ b/SysML2.NET/Core/AutoGenPoco/PartDefinition.cs @@ -271,11 +271,11 @@ public PartDefinition() /// /// Whether all things that meet the classification conditions of this Type must be classified by the - /// Type. (A Type gives conditions that must be met by whatever it - /// classifies, but when isSufficient is false, things may meet those conditions but still not be - /// classified by the Type. For example, a Type Car that is not sufficient could require everything it - /// classifies to have four wheels, but not all four wheeled things would classify as cars. However, if - /// the Type Car were sufficient, it would classify all four-wheeled things.) + /// Type.(A Type gives conditions that must be met by whatever it classifies, but when isSufficient + /// is false, things may meet those conditions but still not be classified by the Type. For example, a + /// Type Car that is not sufficient could require everything it classifies to have four wheels, but not + /// all four wheeled things would classify as cars. However, if the Type Car were sufficient, it would + /// classify all four-wheeled things.) /// [Property(xmiId: "_18_5_3_b9102da_1564072709069_937523_30797", aggregation: AggregationKind.None, lowerValue: 1, upperValue: 1, isOrdered: false, isReadOnly: false, isDerived: false, isDerivedUnion: false, isUnique: true, defaultValue: "false")] [Implements(implementation: "IType.IsSufficient")] @@ -553,7 +553,7 @@ public PartDefinition() public List ownedMembership => this.ComputeOwnedMembership(); /// - /// The MetadataUsages that are ownedUsages of this Definition. + /// The MetadataUsages that are ownedMembers of this Definition. /// [Property(xmiId: "_19_0_4_12e503d9_1661488358064_457109_2881", aggregation: AggregationKind.None, lowerValue: 0, upperValue: int.MaxValue, isOrdered: true, isReadOnly: false, isDerived: true, isDerivedUnion: false, isUnique: true, defaultValue: null)] [SubsettedProperty(propertyName: "_19_0_2_12e503d9_1591482567975_649284_3005")] @@ -1020,8 +1020,8 @@ public PartDefinition() /// an owningRelationship, then return the string constructed by appending to the path of it's /// owningRelationship the character / followed by the string representation of its position in the list /// of ownedRelatedElements of the owningRelationship (indexed starting at 1). Otherwise, return the - /// empty string. (Note that this operation is overridden for Relationships - /// to use owningRelatedElement when appropriate.) + /// empty string.(Note that this operation is overridden for Relationships to use owningRelatedElement + /// when appropriate.) /// /// /// The expected @@ -1043,13 +1043,12 @@ public PartDefinition() /// /// Return a subset of memberships, removing those Memberships whose memberElements are Features and for - /// which either of the following two conditions holds:
    - ///
  1. The memberElement of the Membership is included in redefined Features of another - /// Membership in memberships.
  2. One of the redefined Features of the - /// Membership is a directly redefinedFeature of an ownedFeature of this Type.
  3. - ///
For this purpose, the redefined Features of a Membership - /// whose memberElement is a Feature includes the memberElement and all Features directly or indirectly - /// redefined by the memberElement. + /// which either of the following two conditions holds:
  1. The memberElement of the Membership is + /// included in redefined Features of another Membership in memberships.
  2. One of the redefined + /// Features of the Membership is a directly redefinedFeature of an ownedFeature of this + /// Type.
For this purpose, the redefined Features of a Membership whose memberElement is a + /// Feature includes the memberElement and all Features directly or indirectly redefined by the + /// memberElement. ///
/// /// No documentation provided diff --git a/SysML2.NET/Core/AutoGenPoco/PartUsage.cs b/SysML2.NET/Core/AutoGenPoco/PartUsage.cs index ce561ccd2..fd1e02ab0 100644 --- a/SysML2.NET/Core/AutoGenPoco/PartUsage.cs +++ b/SysML2.NET/Core/AutoGenPoco/PartUsage.cs @@ -66,8 +66,8 @@ namespace SysML2.NET.Core.POCO.Systems.Parts /// /// A PartUsage is a usage of a PartDefinition to represent a system or a part of a system. At least one - /// of the itemDefinitions of the PartUsage must be a PartDefinition. A PartUsage - /// must subset, directly or indirectly, the base PartUsage parts from the Systems Model Library. + /// of the itemDefinitions of the PartUsage must be a PartDefinition.A PartUsage must subset, directly + /// or indirectly, the base PartUsage parts from the Systems Model Library. /// [Class(xmiId: "_18_5_3_12e503d9_1565471239590_312157_20701", isAbstract: false, isFinalSpecialization: false, isActive: false)] [GeneratedCode("SysML2.NET", "latest")] @@ -411,11 +411,11 @@ public PartUsage() /// /// Whether all things that meet the classification conditions of this Type must be classified by the - /// Type. (A Type gives conditions that must be met by whatever it - /// classifies, but when isSufficient is false, things may meet those conditions but still not be - /// classified by the Type. For example, a Type Car that is not sufficient could require everything it - /// classifies to have four wheels, but not all four wheeled things would classify as cars. However, if - /// the Type Car were sufficient, it would classify all four-wheeled things.) + /// Type.(A Type gives conditions that must be met by whatever it classifies, but when isSufficient + /// is false, things may meet those conditions but still not be classified by the Type. For example, a + /// Type Car that is not sufficient could require everything it classifies to have four wheels, but not + /// all four wheeled things would classify as cars. However, if the Type Car were sufficient, it would + /// classify all four-wheeled things.) /// [Property(xmiId: "_18_5_3_b9102da_1564072709069_937523_30797", aggregation: AggregationKind.None, lowerValue: 1, upperValue: 1, isOrdered: false, isReadOnly: false, isDerived: false, isDerivedUnion: false, isUnique: true, defaultValue: "false")] [Implements(implementation: "IType.IsSufficient")] @@ -463,9 +463,9 @@ bool Core.Features.IFeature.IsVariable /// Whether this Usage may be time varying (that is, whether it is featured by the snapshots of its /// owningType, rather than being featured by the owningType itself). However, if isConstant is also /// true, then the value of the Usage is nevertheless constant over the entire duration of an instance - /// of its owningType (that is, it has the same value on all snapshots). The - /// property mayTimeVary redefines the KerML property Feature::isVariable, making it derived. The - /// property isConstant is inherited from Feature. + /// of its owningType (that is, it has the same value on all snapshots).The property mayTimeVary + /// redefines the KerML property Feature::isVariable, making it derived. The property isConstant is + /// inherited from Feature. /// [Property(xmiId: "_2022x_2_12e503d9_1737227200362_771035_69", aggregation: AggregationKind.None, lowerValue: 1, upperValue: 1, isOrdered: false, isReadOnly: false, isDerived: true, isDerivedUnion: false, isUnique: true, defaultValue: null)] [RedefinedProperty(propertyName: "_2022x_2_12e503d9_1725998273002_23711_212")] @@ -566,8 +566,8 @@ bool Core.Features.IFeature.IsVariable /// /// The ConnectorAsUsages that are nestedUsages of this Usage. Note that this list includes - /// BindingConnectorAsUsages, SuccessionAsUsages, and FlowConnectionUsages because these are - /// ConnectorAsUsages even though they are not ConnectionUsages. + /// BindingConnectorAsUsages, SuccessionAsUsages, and FlowUsages because these are ConnectorAsUsages + /// even though they are not ConnectionUsages. /// [Property(xmiId: "_19_0_2_12e503d9_1591479754895_422988_1242", aggregation: AggregationKind.None, lowerValue: 0, upperValue: int.MaxValue, isOrdered: true, isReadOnly: false, isDerived: true, isDerivedUnion: false, isUnique: true, defaultValue: null)] [SubsettedProperty(propertyName: "_18_5_3_12e503d9_1565472757327_162097_21259")] @@ -615,7 +615,7 @@ bool Core.Features.IFeature.IsVariable public List nestedItem => this.ComputeNestedItem(); /// - /// The MetadataUsages that are nestedUsages of this of this Usage. + /// The MetadataUsages that are ownedMembers of this of this Usage. /// [Property(xmiId: "_19_0_4_12e503d9_1661488589862_120785_2970", aggregation: AggregationKind.None, lowerValue: 0, upperValue: int.MaxValue, isOrdered: true, isReadOnly: false, isDerived: true, isDerivedUnion: false, isUnique: true, defaultValue: null)] [SubsettedProperty(propertyName: "_19_0_2_12e503d9_1591482421103_284620_2978")] @@ -1222,9 +1222,8 @@ bool Core.Features.IFeature.IsVariable public FeatureDirectionKind? DirectionOfExcluding(IFeature feature, List excluded) => this.ComputeDirectionOfExcludingOperation(feature, excluded); /// - /// If a Feature has no declaredName or declaredShortName , then its - /// effective name is given by the effective name of the Feature returned by the namingFeature() - /// operation, if any. + /// If a Feature has no declaredName or declaredShortName, then its effective name is given by the + /// effective name of the Feature returned by the namingFeature() operation, if any. /// /// /// The expected @@ -1329,11 +1328,10 @@ bool Core.Features.IFeature.IsVariable /// /// A Feature is compatible with an otherType if it either directly or indirectly specializes the - /// otherType or if the otherType is also a Feature and all of the following are true. - ///
  1. Neither this Feature or the otherType have any - /// ownedFeatures.
  2. This Feature directly or indirectly redefines a - /// Feature that is also directly or indirectly redefined by the otherType.
  3. - ///
  4. This Feature can access the otherType.
+ /// otherType or if the otherType is also a Feature and all of the following are true.
  1. Neither + /// this Feature or the otherType have any ownedFeatures.
  2. This Feature directly or indirectly + /// redefines a Feature that is also directly or indirectly redefined by the otherType.
  3. This + /// Feature can access the otherType.
///
/// /// No documentation provided @@ -1491,8 +1489,8 @@ bool Core.Features.IFeature.IsVariable /// an owningRelationship, then return the string constructed by appending to the path of it's /// owningRelationship the character / followed by the string representation of its position in the list /// of ownedRelatedElements of the owningRelationship (indexed starting at 1). Otherwise, return the - /// empty string. (Note that this operation is overridden for Relationships - /// to use owningRelatedElement when appropriate.) + /// empty string.(Note that this operation is overridden for Relationships to use owningRelatedElement + /// when appropriate.) /// /// /// The expected @@ -1546,13 +1544,12 @@ bool Core.Features.IFeature.IsVariable /// /// Return a subset of memberships, removing those Memberships whose memberElements are Features and for - /// which either of the following two conditions holds:
    - ///
  1. The memberElement of the Membership is included in redefined Features of another - /// Membership in memberships.
  2. One of the redefined Features of the - /// Membership is a directly redefinedFeature of an ownedFeature of this Type.
  3. - ///
For this purpose, the redefined Features of a Membership - /// whose memberElement is a Feature includes the memberElement and all Features directly or indirectly - /// redefined by the memberElement. + /// which either of the following two conditions holds:
  1. The memberElement of the Membership is + /// included in redefined Features of another Membership in memberships.
  2. One of the redefined + /// Features of the Membership is a directly redefinedFeature of an ownedFeature of this + /// Type.
For this purpose, the redefined Features of a Membership whose memberElement is a + /// Feature includes the memberElement and all Features directly or indirectly redefined by the + /// memberElement. ///
/// /// No documentation provided @@ -1679,11 +1676,11 @@ bool Core.Features.IFeature.IsVariable /// Return the Features used to determine the types of this Feature (other than this Feature itself). If /// this Feature is not conjugated, then the typingFeatures consist of all subsetted Features, except /// from CrossSubsetting, and the last chainingFeature (if any). If this Feature is conjugated, then the - /// typingFeatures are only its originalType (if the originalType is a Feature). - /// Note. CrossSubsetting is excluded from the determination of the type of a - /// Feature in order to avoid circularity in the construction of implied CrossSubsetting relationships. - /// The validateFeatureCrossFeatureType requires that the crossFeature of a Feature have the same type - /// as the Feature. + /// typingFeatures are only its originalType (if the originalType is a Feature).Note. + /// CrossSubsetting is excluded from the determination of the type of a Feature in order to avoid + /// circularity in the construction of implied CrossSubsetting relationships. The + /// validateFeatureCrossFeatureType requires that the crossFeature of a Feature have the same type as + /// the Feature. /// /// /// The expected collection of diff --git a/SysML2.NET/Core/AutoGenPoco/PayloadFeature.cs b/SysML2.NET/Core/AutoGenPoco/PayloadFeature.cs index 6556cc1ea..53af554a4 100644 --- a/SysML2.NET/Core/AutoGenPoco/PayloadFeature.cs +++ b/SysML2.NET/Core/AutoGenPoco/PayloadFeature.cs @@ -343,11 +343,11 @@ public PayloadFeature() /// /// Whether all things that meet the classification conditions of this Type must be classified by the - /// Type. (A Type gives conditions that must be met by whatever it - /// classifies, but when isSufficient is false, things may meet those conditions but still not be - /// classified by the Type. For example, a Type Car that is not sufficient could require everything it - /// classifies to have four wheels, but not all four wheeled things would classify as cars. However, if - /// the Type Car were sufficient, it would classify all four-wheeled things.) + /// Type.(A Type gives conditions that must be met by whatever it classifies, but when isSufficient + /// is false, things may meet those conditions but still not be classified by the Type. For example, a + /// Type Car that is not sufficient could require everything it classifies to have four wheels, but not + /// all four wheeled things would classify as cars. However, if the Type Car were sufficient, it would + /// classify all four-wheeled things.) /// [Property(xmiId: "_18_5_3_b9102da_1564072709069_937523_30797", aggregation: AggregationKind.None, lowerValue: 1, upperValue: 1, isOrdered: false, isReadOnly: false, isDerived: false, isDerivedUnion: false, isUnique: true, defaultValue: "false")] [Implements(implementation: "IType.IsSufficient")] @@ -830,9 +830,8 @@ public PayloadFeature() public FeatureDirectionKind? DirectionOfExcluding(IFeature feature, List excluded) => this.ComputeDirectionOfExcludingOperation(feature, excluded); /// - /// If a Feature has no declaredName or declaredShortName , then its - /// effective name is given by the effective name of the Feature returned by the namingFeature() - /// operation, if any. + /// If a Feature has no declaredName or declaredShortName, then its effective name is given by the + /// effective name of the Feature returned by the namingFeature() operation, if any. /// /// /// The expected @@ -937,11 +936,10 @@ public PayloadFeature() /// /// A Feature is compatible with an otherType if it either directly or indirectly specializes the - /// otherType or if the otherType is also a Feature and all of the following are true. - ///
  1. Neither this Feature or the otherType have any - /// ownedFeatures.
  2. This Feature directly or indirectly redefines a - /// Feature that is also directly or indirectly redefined by the otherType.
  3. - ///
  4. This Feature can access the otherType.
+ /// otherType or if the otherType is also a Feature and all of the following are true.
  1. Neither + /// this Feature or the otherType have any ownedFeatures.
  2. This Feature directly or indirectly + /// redefines a Feature that is also directly or indirectly redefined by the otherType.
  3. This + /// Feature can access the otherType.
///
/// /// No documentation provided @@ -1090,8 +1088,8 @@ public PayloadFeature() /// an owningRelationship, then return the string constructed by appending to the path of it's /// owningRelationship the character / followed by the string representation of its position in the list /// of ownedRelatedElements of the owningRelationship (indexed starting at 1). Otherwise, return the - /// empty string. (Note that this operation is overridden for Relationships - /// to use owningRelatedElement when appropriate.) + /// empty string.(Note that this operation is overridden for Relationships to use owningRelatedElement + /// when appropriate.) /// /// /// The expected @@ -1136,13 +1134,12 @@ public PayloadFeature() /// /// Return a subset of memberships, removing those Memberships whose memberElements are Features and for - /// which either of the following two conditions holds:
    - ///
  1. The memberElement of the Membership is included in redefined Features of another - /// Membership in memberships.
  2. One of the redefined Features of the - /// Membership is a directly redefinedFeature of an ownedFeature of this Type.
  3. - ///
For this purpose, the redefined Features of a Membership - /// whose memberElement is a Feature includes the memberElement and all Features directly or indirectly - /// redefined by the memberElement. + /// which either of the following two conditions holds:
  1. The memberElement of the Membership is + /// included in redefined Features of another Membership in memberships.
  2. One of the redefined + /// Features of the Membership is a directly redefinedFeature of an ownedFeature of this + /// Type.
For this purpose, the redefined Features of a Membership whose memberElement is a + /// Feature includes the memberElement and all Features directly or indirectly redefined by the + /// memberElement. ///
/// /// No documentation provided @@ -1269,11 +1266,11 @@ public PayloadFeature() /// Return the Features used to determine the types of this Feature (other than this Feature itself). If /// this Feature is not conjugated, then the typingFeatures consist of all subsetted Features, except /// from CrossSubsetting, and the last chainingFeature (if any). If this Feature is conjugated, then the - /// typingFeatures are only its originalType (if the originalType is a Feature). - /// Note. CrossSubsetting is excluded from the determination of the type of a - /// Feature in order to avoid circularity in the construction of implied CrossSubsetting relationships. - /// The validateFeatureCrossFeatureType requires that the crossFeature of a Feature have the same type - /// as the Feature. + /// typingFeatures are only its originalType (if the originalType is a Feature).Note. + /// CrossSubsetting is excluded from the determination of the type of a Feature in order to avoid + /// circularity in the construction of implied CrossSubsetting relationships. The + /// validateFeatureCrossFeatureType requires that the crossFeature of a Feature have the same type as + /// the Feature. /// /// /// The expected collection of diff --git a/SysML2.NET/Core/AutoGenPoco/PerformActionUsage.cs b/SysML2.NET/Core/AutoGenPoco/PerformActionUsage.cs index 19735de03..bead4436b 100644 --- a/SysML2.NET/Core/AutoGenPoco/PerformActionUsage.cs +++ b/SysML2.NET/Core/AutoGenPoco/PerformActionUsage.cs @@ -452,11 +452,11 @@ public PerformActionUsage() /// /// Whether all things that meet the classification conditions of this Type must be classified by the - /// Type. (A Type gives conditions that must be met by whatever it - /// classifies, but when isSufficient is false, things may meet those conditions but still not be - /// classified by the Type. For example, a Type Car that is not sufficient could require everything it - /// classifies to have four wheels, but not all four wheeled things would classify as cars. However, if - /// the Type Car were sufficient, it would classify all four-wheeled things.) + /// Type.(A Type gives conditions that must be met by whatever it classifies, but when isSufficient + /// is false, things may meet those conditions but still not be classified by the Type. For example, a + /// Type Car that is not sufficient could require everything it classifies to have four wheels, but not + /// all four wheeled things would classify as cars. However, if the Type Car were sufficient, it would + /// classify all four-wheeled things.) /// [Property(xmiId: "_18_5_3_b9102da_1564072709069_937523_30797", aggregation: AggregationKind.None, lowerValue: 1, upperValue: 1, isOrdered: false, isReadOnly: false, isDerived: false, isDerivedUnion: false, isUnique: true, defaultValue: "false")] [Implements(implementation: "IType.IsSufficient")] @@ -494,9 +494,9 @@ bool Core.Features.IFeature.IsVariable /// Whether this Usage may be time varying (that is, whether it is featured by the snapshots of its /// owningType, rather than being featured by the owningType itself). However, if isConstant is also /// true, then the value of the Usage is nevertheless constant over the entire duration of an instance - /// of its owningType (that is, it has the same value on all snapshots). The - /// property mayTimeVary redefines the KerML property Feature::isVariable, making it derived. The - /// property isConstant is inherited from Feature. + /// of its owningType (that is, it has the same value on all snapshots).The property mayTimeVary + /// redefines the KerML property Feature::isVariable, making it derived. The property isConstant is + /// inherited from Feature. /// [Property(xmiId: "_2022x_2_12e503d9_1737227200362_771035_69", aggregation: AggregationKind.None, lowerValue: 1, upperValue: 1, isOrdered: false, isReadOnly: false, isDerived: true, isDerivedUnion: false, isUnique: true, defaultValue: null)] [RedefinedProperty(propertyName: "_2022x_2_12e503d9_1725998273002_23711_212")] @@ -597,8 +597,8 @@ bool Core.Features.IFeature.IsVariable /// /// The ConnectorAsUsages that are nestedUsages of this Usage. Note that this list includes - /// BindingConnectorAsUsages, SuccessionAsUsages, and FlowConnectionUsages because these are - /// ConnectorAsUsages even though they are not ConnectionUsages. + /// BindingConnectorAsUsages, SuccessionAsUsages, and FlowUsages because these are ConnectorAsUsages + /// even though they are not ConnectionUsages. /// [Property(xmiId: "_19_0_2_12e503d9_1591479754895_422988_1242", aggregation: AggregationKind.None, lowerValue: 0, upperValue: int.MaxValue, isOrdered: true, isReadOnly: false, isDerived: true, isDerivedUnion: false, isUnique: true, defaultValue: null)] [SubsettedProperty(propertyName: "_18_5_3_12e503d9_1565472757327_162097_21259")] @@ -646,7 +646,7 @@ bool Core.Features.IFeature.IsVariable public List nestedItem => this.ComputeNestedItem(); /// - /// The MetadataUsages that are nestedUsages of this of this Usage. + /// The MetadataUsages that are ownedMembers of this of this Usage. /// [Property(xmiId: "_19_0_4_12e503d9_1661488589862_120785_2970", aggregation: AggregationKind.None, lowerValue: 0, upperValue: int.MaxValue, isOrdered: true, isReadOnly: false, isDerived: true, isDerivedUnion: false, isUnique: true, defaultValue: null)] [SubsettedProperty(propertyName: "_19_0_2_12e503d9_1591482421103_284620_2978")] @@ -1276,9 +1276,8 @@ bool Core.Features.IFeature.IsVariable public FeatureDirectionKind? DirectionOfExcluding(IFeature feature, List excluded) => this.ComputeDirectionOfExcludingOperation(feature, excluded); /// - /// If a Feature has no declaredName or declaredShortName , then its - /// effective name is given by the effective name of the Feature returned by the namingFeature() - /// operation, if any. + /// If a Feature has no declaredName or declaredShortName, then its effective name is given by the + /// effective name of the Feature returned by the namingFeature() operation, if any. /// /// /// The expected @@ -1403,11 +1402,10 @@ bool Core.Features.IFeature.IsVariable /// /// A Feature is compatible with an otherType if it either directly or indirectly specializes the - /// otherType or if the otherType is also a Feature and all of the following are true. - ///
  1. Neither this Feature or the otherType have any - /// ownedFeatures.
  2. This Feature directly or indirectly redefines a - /// Feature that is also directly or indirectly redefined by the otherType.
  3. - ///
  4. This Feature can access the otherType.
+ /// otherType or if the otherType is also a Feature and all of the following are true.
  1. Neither + /// this Feature or the otherType have any ownedFeatures.
  2. This Feature directly or indirectly + /// redefines a Feature that is also directly or indirectly redefined by the otherType.
  3. This + /// Feature can access the otherType.
///
/// /// No documentation provided @@ -1585,8 +1583,8 @@ bool Core.Features.IFeature.IsVariable /// an owningRelationship, then return the string constructed by appending to the path of it's /// owningRelationship the character / followed by the string representation of its position in the list /// of ownedRelatedElements of the owningRelationship (indexed starting at 1). Otherwise, return the - /// empty string. (Note that this operation is overridden for Relationships - /// to use owningRelatedElement when appropriate.) + /// empty string.(Note that this operation is overridden for Relationships to use owningRelatedElement + /// when appropriate.) /// /// /// The expected @@ -1640,13 +1638,12 @@ bool Core.Features.IFeature.IsVariable /// /// Return a subset of memberships, removing those Memberships whose memberElements are Features and for - /// which either of the following two conditions holds:
    - ///
  1. The memberElement of the Membership is included in redefined Features of another - /// Membership in memberships.
  2. One of the redefined Features of the - /// Membership is a directly redefinedFeature of an ownedFeature of this Type.
  3. - ///
For this purpose, the redefined Features of a Membership - /// whose memberElement is a Feature includes the memberElement and all Features directly or indirectly - /// redefined by the memberElement. + /// which either of the following two conditions holds:
  1. The memberElement of the Membership is + /// included in redefined Features of another Membership in memberships.
  2. One of the redefined + /// Features of the Membership is a directly redefinedFeature of an ownedFeature of this + /// Type.
For this purpose, the redefined Features of a Membership whose memberElement is a + /// Feature includes the memberElement and all Features directly or indirectly redefined by the + /// memberElement. ///
/// /// No documentation provided @@ -1773,11 +1770,11 @@ bool Core.Features.IFeature.IsVariable /// Return the Features used to determine the types of this Feature (other than this Feature itself). If /// this Feature is not conjugated, then the typingFeatures consist of all subsetted Features, except /// from CrossSubsetting, and the last chainingFeature (if any). If this Feature is conjugated, then the - /// typingFeatures are only its originalType (if the originalType is a Feature). - /// Note. CrossSubsetting is excluded from the determination of the type of a - /// Feature in order to avoid circularity in the construction of implied CrossSubsetting relationships. - /// The validateFeatureCrossFeatureType requires that the crossFeature of a Feature have the same type - /// as the Feature. + /// typingFeatures are only its originalType (if the originalType is a Feature).Note. + /// CrossSubsetting is excluded from the determination of the type of a Feature in order to avoid + /// circularity in the construction of implied CrossSubsetting relationships. The + /// validateFeatureCrossFeatureType requires that the crossFeature of a Feature have the same type as + /// the Feature. /// /// /// The expected collection of diff --git a/SysML2.NET/Core/AutoGenPoco/PortConjugation.cs b/SysML2.NET/Core/AutoGenPoco/PortConjugation.cs index 68e758f3e..8a3819f5e 100644 --- a/SysML2.NET/Core/AutoGenPoco/PortConjugation.cs +++ b/SysML2.NET/Core/AutoGenPoco/PortConjugation.cs @@ -427,8 +427,8 @@ List Root.Elements.IRelationship.Target /// an owningRelationship, then return the string constructed by appending to the path of it's /// owningRelationship the character / followed by the string representation of its position in the list /// of ownedRelatedElements of the owningRelationship (indexed starting at 1). Otherwise, return the - /// empty string. (Note that this operation is overridden for Relationships - /// to use owningRelatedElement when appropriate.) + /// empty string.(Note that this operation is overridden for Relationships to use owningRelatedElement + /// when appropriate.) /// /// /// The expected diff --git a/SysML2.NET/Core/AutoGenPoco/PortDefinition.cs b/SysML2.NET/Core/AutoGenPoco/PortDefinition.cs index 15b65f5bf..9fb5c2c59 100644 --- a/SysML2.NET/Core/AutoGenPoco/PortDefinition.cs +++ b/SysML2.NET/Core/AutoGenPoco/PortDefinition.cs @@ -97,7 +97,7 @@ public PortDefinition() public List AliasIds { get; set; } = []; /// - /// The <> that is conjugate to this PortDefinition. + /// The ConjugatedPortDefinition that is conjugate to this PortDefinition. /// [Property(xmiId: "_19_0_2_12e503d9_1575484364015_206236_989", aggregation: AggregationKind.None, lowerValue: 0, upperValue: 1, isOrdered: false, isReadOnly: false, isDerived: true, isDerivedUnion: false, isUnique: true, defaultValue: null)] [SubsettedProperty(propertyName: "_18_5_3_12e503d9_1533160674979_259543_43268")] @@ -280,11 +280,11 @@ public PortDefinition() /// /// Whether all things that meet the classification conditions of this Type must be classified by the - /// Type. (A Type gives conditions that must be met by whatever it - /// classifies, but when isSufficient is false, things may meet those conditions but still not be - /// classified by the Type. For example, a Type Car that is not sufficient could require everything it - /// classifies to have four wheels, but not all four wheeled things would classify as cars. However, if - /// the Type Car were sufficient, it would classify all four-wheeled things.) + /// Type.(A Type gives conditions that must be met by whatever it classifies, but when isSufficient + /// is false, things may meet those conditions but still not be classified by the Type. For example, a + /// Type Car that is not sufficient could require everything it classifies to have four wheels, but not + /// all four wheeled things would classify as cars. However, if the Type Car were sufficient, it would + /// classify all four-wheeled things.) /// [Property(xmiId: "_18_5_3_b9102da_1564072709069_937523_30797", aggregation: AggregationKind.None, lowerValue: 1, upperValue: 1, isOrdered: false, isReadOnly: false, isDerived: false, isDerivedUnion: false, isUnique: true, defaultValue: "false")] [Implements(implementation: "IType.IsSufficient")] @@ -562,7 +562,7 @@ public PortDefinition() public List ownedMembership => this.ComputeOwnedMembership(); /// - /// The MetadataUsages that are ownedUsages of this Definition. + /// The MetadataUsages that are ownedMembers of this Definition. /// [Property(xmiId: "_19_0_4_12e503d9_1661488358064_457109_2881", aggregation: AggregationKind.None, lowerValue: 0, upperValue: int.MaxValue, isOrdered: true, isReadOnly: false, isDerived: true, isDerivedUnion: false, isUnique: true, defaultValue: null)] [SubsettedProperty(propertyName: "_19_0_2_12e503d9_1591482567975_649284_3005")] @@ -1029,8 +1029,8 @@ public PortDefinition() /// an owningRelationship, then return the string constructed by appending to the path of it's /// owningRelationship the character / followed by the string representation of its position in the list /// of ownedRelatedElements of the owningRelationship (indexed starting at 1). Otherwise, return the - /// empty string. (Note that this operation is overridden for Relationships - /// to use owningRelatedElement when appropriate.) + /// empty string.(Note that this operation is overridden for Relationships to use owningRelatedElement + /// when appropriate.) /// /// /// The expected @@ -1052,13 +1052,12 @@ public PortDefinition() /// /// Return a subset of memberships, removing those Memberships whose memberElements are Features and for - /// which either of the following two conditions holds:
    - ///
  1. The memberElement of the Membership is included in redefined Features of another - /// Membership in memberships.
  2. One of the redefined Features of the - /// Membership is a directly redefinedFeature of an ownedFeature of this Type.
  3. - ///
For this purpose, the redefined Features of a Membership - /// whose memberElement is a Feature includes the memberElement and all Features directly or indirectly - /// redefined by the memberElement. + /// which either of the following two conditions holds:
  1. The memberElement of the Membership is + /// included in redefined Features of another Membership in memberships.
  2. One of the redefined + /// Features of the Membership is a directly redefinedFeature of an ownedFeature of this + /// Type.
For this purpose, the redefined Features of a Membership whose memberElement is a + /// Feature includes the memberElement and all Features directly or indirectly redefined by the + /// memberElement. ///
/// /// No documentation provided diff --git a/SysML2.NET/Core/AutoGenPoco/PortUsage.cs b/SysML2.NET/Core/AutoGenPoco/PortUsage.cs index 956927b18..5df3b23e6 100644 --- a/SysML2.NET/Core/AutoGenPoco/PortUsage.cs +++ b/SysML2.NET/Core/AutoGenPoco/PortUsage.cs @@ -409,11 +409,11 @@ public PortUsage() /// /// Whether all things that meet the classification conditions of this Type must be classified by the - /// Type. (A Type gives conditions that must be met by whatever it - /// classifies, but when isSufficient is false, things may meet those conditions but still not be - /// classified by the Type. For example, a Type Car that is not sufficient could require everything it - /// classifies to have four wheels, but not all four wheeled things would classify as cars. However, if - /// the Type Car were sufficient, it would classify all four-wheeled things.) + /// Type.(A Type gives conditions that must be met by whatever it classifies, but when isSufficient + /// is false, things may meet those conditions but still not be classified by the Type. For example, a + /// Type Car that is not sufficient could require everything it classifies to have four wheels, but not + /// all four wheeled things would classify as cars. However, if the Type Car were sufficient, it would + /// classify all four-wheeled things.) /// [Property(xmiId: "_18_5_3_b9102da_1564072709069_937523_30797", aggregation: AggregationKind.None, lowerValue: 1, upperValue: 1, isOrdered: false, isReadOnly: false, isDerived: false, isDerivedUnion: false, isUnique: true, defaultValue: "false")] [Implements(implementation: "IType.IsSufficient")] @@ -451,9 +451,9 @@ bool Core.Features.IFeature.IsVariable /// Whether this Usage may be time varying (that is, whether it is featured by the snapshots of its /// owningType, rather than being featured by the owningType itself). However, if isConstant is also /// true, then the value of the Usage is nevertheless constant over the entire duration of an instance - /// of its owningType (that is, it has the same value on all snapshots). The - /// property mayTimeVary redefines the KerML property Feature::isVariable, making it derived. The - /// property isConstant is inherited from Feature. + /// of its owningType (that is, it has the same value on all snapshots).The property mayTimeVary + /// redefines the KerML property Feature::isVariable, making it derived. The property isConstant is + /// inherited from Feature. /// [Property(xmiId: "_2022x_2_12e503d9_1737227200362_771035_69", aggregation: AggregationKind.None, lowerValue: 1, upperValue: 1, isOrdered: false, isReadOnly: false, isDerived: true, isDerivedUnion: false, isUnique: true, defaultValue: null)] [RedefinedProperty(propertyName: "_2022x_2_12e503d9_1725998273002_23711_212")] @@ -554,8 +554,8 @@ bool Core.Features.IFeature.IsVariable /// /// The ConnectorAsUsages that are nestedUsages of this Usage. Note that this list includes - /// BindingConnectorAsUsages, SuccessionAsUsages, and FlowConnectionUsages because these are - /// ConnectorAsUsages even though they are not ConnectionUsages. + /// BindingConnectorAsUsages, SuccessionAsUsages, and FlowUsages because these are ConnectorAsUsages + /// even though they are not ConnectionUsages. /// [Property(xmiId: "_19_0_2_12e503d9_1591479754895_422988_1242", aggregation: AggregationKind.None, lowerValue: 0, upperValue: int.MaxValue, isOrdered: true, isReadOnly: false, isDerived: true, isDerivedUnion: false, isUnique: true, defaultValue: null)] [SubsettedProperty(propertyName: "_18_5_3_12e503d9_1565472757327_162097_21259")] @@ -603,7 +603,7 @@ bool Core.Features.IFeature.IsVariable public List nestedItem => this.ComputeNestedItem(); /// - /// The MetadataUsages that are nestedUsages of this of this Usage. + /// The MetadataUsages that are ownedMembers of this of this Usage. /// [Property(xmiId: "_19_0_4_12e503d9_1661488589862_120785_2970", aggregation: AggregationKind.None, lowerValue: 0, upperValue: int.MaxValue, isOrdered: true, isReadOnly: false, isDerived: true, isDerivedUnion: false, isUnique: true, defaultValue: null)] [SubsettedProperty(propertyName: "_19_0_2_12e503d9_1591482421103_284620_2978")] @@ -1211,9 +1211,8 @@ bool Core.Features.IFeature.IsVariable public FeatureDirectionKind? DirectionOfExcluding(IFeature feature, List excluded) => this.ComputeDirectionOfExcludingOperation(feature, excluded); /// - /// If a Feature has no declaredName or declaredShortName , then its - /// effective name is given by the effective name of the Feature returned by the namingFeature() - /// operation, if any. + /// If a Feature has no declaredName or declaredShortName, then its effective name is given by the + /// effective name of the Feature returned by the namingFeature() operation, if any. /// /// /// The expected @@ -1318,11 +1317,10 @@ bool Core.Features.IFeature.IsVariable /// /// A Feature is compatible with an otherType if it either directly or indirectly specializes the - /// otherType or if the otherType is also a Feature and all of the following are true. - ///
  1. Neither this Feature or the otherType have any - /// ownedFeatures.
  2. This Feature directly or indirectly redefines a - /// Feature that is also directly or indirectly redefined by the otherType.
  3. - ///
  4. This Feature can access the otherType.
+ /// otherType or if the otherType is also a Feature and all of the following are true.
  1. Neither + /// this Feature or the otherType have any ownedFeatures.
  2. This Feature directly or indirectly + /// redefines a Feature that is also directly or indirectly redefined by the otherType.
  3. This + /// Feature can access the otherType.
///
/// /// No documentation provided @@ -1480,8 +1478,8 @@ bool Core.Features.IFeature.IsVariable /// an owningRelationship, then return the string constructed by appending to the path of it's /// owningRelationship the character / followed by the string representation of its position in the list /// of ownedRelatedElements of the owningRelationship (indexed starting at 1). Otherwise, return the - /// empty string. (Note that this operation is overridden for Relationships - /// to use owningRelatedElement when appropriate.) + /// empty string.(Note that this operation is overridden for Relationships to use owningRelatedElement + /// when appropriate.) /// /// /// The expected @@ -1535,13 +1533,12 @@ bool Core.Features.IFeature.IsVariable /// /// Return a subset of memberships, removing those Memberships whose memberElements are Features and for - /// which either of the following two conditions holds:
    - ///
  1. The memberElement of the Membership is included in redefined Features of another - /// Membership in memberships.
  2. One of the redefined Features of the - /// Membership is a directly redefinedFeature of an ownedFeature of this Type.
  3. - ///
For this purpose, the redefined Features of a Membership - /// whose memberElement is a Feature includes the memberElement and all Features directly or indirectly - /// redefined by the memberElement. + /// which either of the following two conditions holds:
  1. The memberElement of the Membership is + /// included in redefined Features of another Membership in memberships.
  2. One of the redefined + /// Features of the Membership is a directly redefinedFeature of an ownedFeature of this + /// Type.
For this purpose, the redefined Features of a Membership whose memberElement is a + /// Feature includes the memberElement and all Features directly or indirectly redefined by the + /// memberElement. ///
/// /// No documentation provided @@ -1668,11 +1665,11 @@ bool Core.Features.IFeature.IsVariable /// Return the Features used to determine the types of this Feature (other than this Feature itself). If /// this Feature is not conjugated, then the typingFeatures consist of all subsetted Features, except /// from CrossSubsetting, and the last chainingFeature (if any). If this Feature is conjugated, then the - /// typingFeatures are only its originalType (if the originalType is a Feature). - /// Note. CrossSubsetting is excluded from the determination of the type of a - /// Feature in order to avoid circularity in the construction of implied CrossSubsetting relationships. - /// The validateFeatureCrossFeatureType requires that the crossFeature of a Feature have the same type - /// as the Feature. + /// typingFeatures are only its originalType (if the originalType is a Feature).Note. + /// CrossSubsetting is excluded from the determination of the type of a Feature in order to avoid + /// circularity in the construction of implied CrossSubsetting relationships. The + /// validateFeatureCrossFeatureType requires that the crossFeature of a Feature have the same type as + /// the Feature. /// /// /// The expected collection of diff --git a/SysML2.NET/Core/AutoGenPoco/Predicate.cs b/SysML2.NET/Core/AutoGenPoco/Predicate.cs index 928a73fe6..cd1428391 100644 --- a/SysML2.NET/Core/AutoGenPoco/Predicate.cs +++ b/SysML2.NET/Core/AutoGenPoco/Predicate.cs @@ -244,9 +244,9 @@ public Predicate() /// /// Whether this Function can be used as the function of a model-level evaluable InvocationExpression. /// Certain Functions from the Kernel Functions Library are considered to have isModelLevelEvaluable = - /// true. For all other Functions it is false. Note: See the - /// specification of the KerML concrete syntax notation for Expressions for an identification of which - /// library Functions are model-level evaluable. + /// true. For all other Functions it is false.Note: See the specification of the KerML + /// concrete syntax notation for Expressions for an identification of which library Functions are + /// model-level evaluable. /// [Property(xmiId: "_19_0_4_12e503d9_1617395221463_139517_26381", aggregation: AggregationKind.None, lowerValue: 1, upperValue: 1, isOrdered: false, isReadOnly: false, isDerived: true, isDerivedUnion: false, isUnique: true, defaultValue: null)] [Implements(implementation: "IFunction.IsModelLevelEvaluable")] @@ -254,11 +254,11 @@ public Predicate() /// /// Whether all things that meet the classification conditions of this Type must be classified by the - /// Type. (A Type gives conditions that must be met by whatever it - /// classifies, but when isSufficient is false, things may meet those conditions but still not be - /// classified by the Type. For example, a Type Car that is not sufficient could require everything it - /// classifies to have four wheels, but not all four wheeled things would classify as cars. However, if - /// the Type Car were sufficient, it would classify all four-wheeled things.) + /// Type.(A Type gives conditions that must be met by whatever it classifies, but when isSufficient + /// is false, things may meet those conditions but still not be classified by the Type. For example, a + /// Type Car that is not sufficient could require everything it classifies to have four wheels, but not + /// all four wheeled things would classify as cars. However, if the Type Car were sufficient, it would + /// classify all four-wheeled things.) /// [Property(xmiId: "_18_5_3_b9102da_1564072709069_937523_30797", aggregation: AggregationKind.None, lowerValue: 1, upperValue: 1, isOrdered: false, isReadOnly: false, isDerived: false, isDerivedUnion: false, isUnique: true, defaultValue: "false")] [Implements(implementation: "IType.IsSufficient")] @@ -776,8 +776,8 @@ public Predicate() /// an owningRelationship, then return the string constructed by appending to the path of it's /// owningRelationship the character / followed by the string representation of its position in the list /// of ownedRelatedElements of the owningRelationship (indexed starting at 1). Otherwise, return the - /// empty string. (Note that this operation is overridden for Relationships - /// to use owningRelatedElement when appropriate.) + /// empty string.(Note that this operation is overridden for Relationships to use owningRelatedElement + /// when appropriate.) /// /// /// The expected @@ -799,13 +799,12 @@ public Predicate() /// /// Return a subset of memberships, removing those Memberships whose memberElements are Features and for - /// which either of the following two conditions holds:
    - ///
  1. The memberElement of the Membership is included in redefined Features of another - /// Membership in memberships.
  2. One of the redefined Features of the - /// Membership is a directly redefinedFeature of an ownedFeature of this Type.
  3. - ///
For this purpose, the redefined Features of a Membership - /// whose memberElement is a Feature includes the memberElement and all Features directly or indirectly - /// redefined by the memberElement. + /// which either of the following two conditions holds:
  1. The memberElement of the Membership is + /// included in redefined Features of another Membership in memberships.
  2. One of the redefined + /// Features of the Membership is a directly redefinedFeature of an ownedFeature of this + /// Type.
For this purpose, the redefined Features of a Membership whose memberElement is a + /// Feature includes the memberElement and all Features directly or indirectly redefined by the + /// memberElement. ///
/// /// No documentation provided diff --git a/SysML2.NET/Core/AutoGenPoco/Redefinition.cs b/SysML2.NET/Core/AutoGenPoco/Redefinition.cs index fb7ae91f7..5fbb27b94 100644 --- a/SysML2.NET/Core/AutoGenPoco/Redefinition.cs +++ b/SysML2.NET/Core/AutoGenPoco/Redefinition.cs @@ -486,8 +486,8 @@ List Root.Elements.IRelationship.Target /// an owningRelationship, then return the string constructed by appending to the path of it's /// owningRelationship the character / followed by the string representation of its position in the list /// of ownedRelatedElements of the owningRelationship (indexed starting at 1). Otherwise, return the - /// empty string. (Note that this operation is overridden for Relationships - /// to use owningRelatedElement when appropriate.) + /// empty string.(Note that this operation is overridden for Relationships to use owningRelatedElement + /// when appropriate.) /// /// /// The expected diff --git a/SysML2.NET/Core/AutoGenPoco/ReferenceSubsetting.cs b/SysML2.NET/Core/AutoGenPoco/ReferenceSubsetting.cs index 1f1301bd8..91b5688b8 100644 --- a/SysML2.NET/Core/AutoGenPoco/ReferenceSubsetting.cs +++ b/SysML2.NET/Core/AutoGenPoco/ReferenceSubsetting.cs @@ -41,8 +41,8 @@ namespace SysML2.NET.Core.POCO.Core.Features /// distinguished from other Features subsetted by the referencingFeature. ReferenceSubsetting has the /// same semantics as Subsetting, but the referencedFeature may have a special purpose relative to the /// referencingFeature. For instance, ReferenceSubsetting is used to identify the relatedFeatures of a - /// Connector. ReferenceSubsetting is always an ownedRelationship of its - /// referencingFeature. A Feature can have at most one ownedReferenceSubsetting. + /// Connector.ReferenceSubsetting is always an ownedRelationship of its referencingFeature. A Feature + /// can have at most one ownedReferenceSubsetting. /// [Class(xmiId: "_19_0_4_12e503d9_1661554793960_500657_60", isAbstract: false, isFinalSpecialization: false, isActive: false)] [GeneratedCode("SysML2.NET", "latest")] @@ -479,8 +479,8 @@ List Root.Elements.IRelationship.Target /// an owningRelationship, then return the string constructed by appending to the path of it's /// owningRelationship the character / followed by the string representation of its position in the list /// of ownedRelatedElements of the owningRelationship (indexed starting at 1). Otherwise, return the - /// empty string. (Note that this operation is overridden for Relationships - /// to use owningRelatedElement when appropriate.) + /// empty string.(Note that this operation is overridden for Relationships to use owningRelatedElement + /// when appropriate.) /// /// /// The expected diff --git a/SysML2.NET/Core/AutoGenPoco/ReferenceUsage.cs b/SysML2.NET/Core/AutoGenPoco/ReferenceUsage.cs index 1e6837cc1..0d7f2a498 100644 --- a/SysML2.NET/Core/AutoGenPoco/ReferenceUsage.cs +++ b/SysML2.NET/Core/AutoGenPoco/ReferenceUsage.cs @@ -402,11 +402,11 @@ public ReferenceUsage() /// /// Whether all things that meet the classification conditions of this Type must be classified by the - /// Type. (A Type gives conditions that must be met by whatever it - /// classifies, but when isSufficient is false, things may meet those conditions but still not be - /// classified by the Type. For example, a Type Car that is not sufficient could require everything it - /// classifies to have four wheels, but not all four wheeled things would classify as cars. However, if - /// the Type Car were sufficient, it would classify all four-wheeled things.) + /// Type.(A Type gives conditions that must be met by whatever it classifies, but when isSufficient + /// is false, things may meet those conditions but still not be classified by the Type. For example, a + /// Type Car that is not sufficient could require everything it classifies to have four wheels, but not + /// all four wheeled things would classify as cars. However, if the Type Car were sufficient, it would + /// classify all four-wheeled things.) /// [Property(xmiId: "_18_5_3_b9102da_1564072709069_937523_30797", aggregation: AggregationKind.None, lowerValue: 1, upperValue: 1, isOrdered: false, isReadOnly: false, isDerived: false, isDerivedUnion: false, isUnique: true, defaultValue: "false")] [Implements(implementation: "IType.IsSufficient")] @@ -444,9 +444,9 @@ bool Core.Features.IFeature.IsVariable /// Whether this Usage may be time varying (that is, whether it is featured by the snapshots of its /// owningType, rather than being featured by the owningType itself). However, if isConstant is also /// true, then the value of the Usage is nevertheless constant over the entire duration of an instance - /// of its owningType (that is, it has the same value on all snapshots). The - /// property mayTimeVary redefines the KerML property Feature::isVariable, making it derived. The - /// property isConstant is inherited from Feature. + /// of its owningType (that is, it has the same value on all snapshots).The property mayTimeVary + /// redefines the KerML property Feature::isVariable, making it derived. The property isConstant is + /// inherited from Feature. /// [Property(xmiId: "_2022x_2_12e503d9_1737227200362_771035_69", aggregation: AggregationKind.None, lowerValue: 1, upperValue: 1, isOrdered: false, isReadOnly: false, isDerived: true, isDerivedUnion: false, isUnique: true, defaultValue: null)] [RedefinedProperty(propertyName: "_2022x_2_12e503d9_1725998273002_23711_212")] @@ -547,8 +547,8 @@ bool Core.Features.IFeature.IsVariable /// /// The ConnectorAsUsages that are nestedUsages of this Usage. Note that this list includes - /// BindingConnectorAsUsages, SuccessionAsUsages, and FlowConnectionUsages because these are - /// ConnectorAsUsages even though they are not ConnectionUsages. + /// BindingConnectorAsUsages, SuccessionAsUsages, and FlowUsages because these are ConnectorAsUsages + /// even though they are not ConnectionUsages. /// [Property(xmiId: "_19_0_2_12e503d9_1591479754895_422988_1242", aggregation: AggregationKind.None, lowerValue: 0, upperValue: int.MaxValue, isOrdered: true, isReadOnly: false, isDerived: true, isDerivedUnion: false, isUnique: true, defaultValue: null)] [SubsettedProperty(propertyName: "_18_5_3_12e503d9_1565472757327_162097_21259")] @@ -596,7 +596,7 @@ bool Core.Features.IFeature.IsVariable public List nestedItem => this.ComputeNestedItem(); /// - /// The MetadataUsages that are nestedUsages of this of this Usage. + /// The MetadataUsages that are ownedMembers of this of this Usage. /// [Property(xmiId: "_19_0_4_12e503d9_1661488589862_120785_2970", aggregation: AggregationKind.None, lowerValue: 0, upperValue: int.MaxValue, isOrdered: true, isReadOnly: false, isDerived: true, isDerivedUnion: false, isUnique: true, defaultValue: null)] [SubsettedProperty(propertyName: "_19_0_2_12e503d9_1591482421103_284620_2978")] @@ -1176,9 +1176,8 @@ bool Core.Features.IFeature.IsVariable public FeatureDirectionKind? DirectionOfExcluding(IFeature feature, List excluded) => this.ComputeDirectionOfExcludingOperation(feature, excluded); /// - /// If a Feature has no declaredName or declaredShortName , then its - /// effective name is given by the effective name of the Feature returned by the namingFeature() - /// operation, if any. + /// If a Feature has no declaredName or declaredShortName, then its effective name is given by the + /// effective name of the Feature returned by the namingFeature() operation, if any. /// /// /// The expected @@ -1283,11 +1282,10 @@ bool Core.Features.IFeature.IsVariable /// /// A Feature is compatible with an otherType if it either directly or indirectly specializes the - /// otherType or if the otherType is also a Feature and all of the following are true. - ///
  1. Neither this Feature or the otherType have any - /// ownedFeatures.
  2. This Feature directly or indirectly redefines a - /// Feature that is also directly or indirectly redefined by the otherType.
  3. - ///
  4. This Feature can access the otherType.
+ /// otherType or if the otherType is also a Feature and all of the following are true.
  1. Neither + /// this Feature or the otherType have any ownedFeatures.
  2. This Feature directly or indirectly + /// redefines a Feature that is also directly or indirectly redefined by the otherType.
  3. This + /// Feature can access the otherType.
///
/// /// No documentation provided @@ -1454,8 +1452,8 @@ bool Core.Features.IFeature.IsVariable /// an owningRelationship, then return the string constructed by appending to the path of it's /// owningRelationship the character / followed by the string representation of its position in the list /// of ownedRelatedElements of the owningRelationship (indexed starting at 1). Otherwise, return the - /// empty string. (Note that this operation is overridden for Relationships - /// to use owningRelatedElement when appropriate.) + /// empty string.(Note that this operation is overridden for Relationships to use owningRelatedElement + /// when appropriate.) /// /// /// The expected @@ -1509,13 +1507,12 @@ bool Core.Features.IFeature.IsVariable /// /// Return a subset of memberships, removing those Memberships whose memberElements are Features and for - /// which either of the following two conditions holds:
    - ///
  1. The memberElement of the Membership is included in redefined Features of another - /// Membership in memberships.
  2. One of the redefined Features of the - /// Membership is a directly redefinedFeature of an ownedFeature of this Type.
  3. - ///
For this purpose, the redefined Features of a Membership - /// whose memberElement is a Feature includes the memberElement and all Features directly or indirectly - /// redefined by the memberElement. + /// which either of the following two conditions holds:
  1. The memberElement of the Membership is + /// included in redefined Features of another Membership in memberships.
  2. One of the redefined + /// Features of the Membership is a directly redefinedFeature of an ownedFeature of this + /// Type.
For this purpose, the redefined Features of a Membership whose memberElement is a + /// Feature includes the memberElement and all Features directly or indirectly redefined by the + /// memberElement. ///
/// /// No documentation provided @@ -1642,11 +1639,11 @@ bool Core.Features.IFeature.IsVariable /// Return the Features used to determine the types of this Feature (other than this Feature itself). If /// this Feature is not conjugated, then the typingFeatures consist of all subsetted Features, except /// from CrossSubsetting, and the last chainingFeature (if any). If this Feature is conjugated, then the - /// typingFeatures are only its originalType (if the originalType is a Feature). - /// Note. CrossSubsetting is excluded from the determination of the type of a - /// Feature in order to avoid circularity in the construction of implied CrossSubsetting relationships. - /// The validateFeatureCrossFeatureType requires that the crossFeature of a Feature have the same type - /// as the Feature. + /// typingFeatures are only its originalType (if the originalType is a Feature).Note. + /// CrossSubsetting is excluded from the determination of the type of a Feature in order to avoid + /// circularity in the construction of implied CrossSubsetting relationships. The + /// validateFeatureCrossFeatureType requires that the crossFeature of a Feature have the same type as + /// the Feature. /// /// /// The expected collection of diff --git a/SysML2.NET/Core/AutoGenPoco/RenderingDefinition.cs b/SysML2.NET/Core/AutoGenPoco/RenderingDefinition.cs index a1e13563d..739ad9e7d 100644 --- a/SysML2.NET/Core/AutoGenPoco/RenderingDefinition.cs +++ b/SysML2.NET/Core/AutoGenPoco/RenderingDefinition.cs @@ -270,11 +270,11 @@ public RenderingDefinition() /// /// Whether all things that meet the classification conditions of this Type must be classified by the - /// Type. (A Type gives conditions that must be met by whatever it - /// classifies, but when isSufficient is false, things may meet those conditions but still not be - /// classified by the Type. For example, a Type Car that is not sufficient could require everything it - /// classifies to have four wheels, but not all four wheeled things would classify as cars. However, if - /// the Type Car were sufficient, it would classify all four-wheeled things.) + /// Type.(A Type gives conditions that must be met by whatever it classifies, but when isSufficient + /// is false, things may meet those conditions but still not be classified by the Type. For example, a + /// Type Car that is not sufficient could require everything it classifies to have four wheels, but not + /// all four wheeled things would classify as cars. However, if the Type Car were sufficient, it would + /// classify all four-wheeled things.) /// [Property(xmiId: "_18_5_3_b9102da_1564072709069_937523_30797", aggregation: AggregationKind.None, lowerValue: 1, upperValue: 1, isOrdered: false, isReadOnly: false, isDerived: false, isDerivedUnion: false, isUnique: true, defaultValue: "false")] [Implements(implementation: "IType.IsSufficient")] @@ -552,7 +552,7 @@ public RenderingDefinition() public List ownedMembership => this.ComputeOwnedMembership(); /// - /// The MetadataUsages that are ownedUsages of this Definition. + /// The MetadataUsages that are ownedMembers of this Definition. /// [Property(xmiId: "_19_0_4_12e503d9_1661488358064_457109_2881", aggregation: AggregationKind.None, lowerValue: 0, upperValue: int.MaxValue, isOrdered: true, isReadOnly: false, isDerived: true, isDerivedUnion: false, isUnique: true, defaultValue: null)] [SubsettedProperty(propertyName: "_19_0_2_12e503d9_1591482567975_649284_3005")] @@ -1027,8 +1027,8 @@ public RenderingDefinition() /// an owningRelationship, then return the string constructed by appending to the path of it's /// owningRelationship the character / followed by the string representation of its position in the list /// of ownedRelatedElements of the owningRelationship (indexed starting at 1). Otherwise, return the - /// empty string. (Note that this operation is overridden for Relationships - /// to use owningRelatedElement when appropriate.) + /// empty string.(Note that this operation is overridden for Relationships to use owningRelatedElement + /// when appropriate.) /// /// /// The expected @@ -1050,13 +1050,12 @@ public RenderingDefinition() /// /// Return a subset of memberships, removing those Memberships whose memberElements are Features and for - /// which either of the following two conditions holds:
    - ///
  1. The memberElement of the Membership is included in redefined Features of another - /// Membership in memberships.
  2. One of the redefined Features of the - /// Membership is a directly redefinedFeature of an ownedFeature of this Type.
  3. - ///
For this purpose, the redefined Features of a Membership - /// whose memberElement is a Feature includes the memberElement and all Features directly or indirectly - /// redefined by the memberElement. + /// which either of the following two conditions holds:
  1. The memberElement of the Membership is + /// included in redefined Features of another Membership in memberships.
  2. One of the redefined + /// Features of the Membership is a directly redefinedFeature of an ownedFeature of this + /// Type.
For this purpose, the redefined Features of a Membership whose memberElement is a + /// Feature includes the memberElement and all Features directly or indirectly redefined by the + /// memberElement. ///
/// /// No documentation provided diff --git a/SysML2.NET/Core/AutoGenPoco/RenderingUsage.cs b/SysML2.NET/Core/AutoGenPoco/RenderingUsage.cs index e57eea5b8..010ac4251 100644 --- a/SysML2.NET/Core/AutoGenPoco/RenderingUsage.cs +++ b/SysML2.NET/Core/AutoGenPoco/RenderingUsage.cs @@ -410,11 +410,11 @@ public RenderingUsage() /// /// Whether all things that meet the classification conditions of this Type must be classified by the - /// Type. (A Type gives conditions that must be met by whatever it - /// classifies, but when isSufficient is false, things may meet those conditions but still not be - /// classified by the Type. For example, a Type Car that is not sufficient could require everything it - /// classifies to have four wheels, but not all four wheeled things would classify as cars. However, if - /// the Type Car were sufficient, it would classify all four-wheeled things.) + /// Type.(A Type gives conditions that must be met by whatever it classifies, but when isSufficient + /// is false, things may meet those conditions but still not be classified by the Type. For example, a + /// Type Car that is not sufficient could require everything it classifies to have four wheels, but not + /// all four wheeled things would classify as cars. However, if the Type Car were sufficient, it would + /// classify all four-wheeled things.) /// [Property(xmiId: "_18_5_3_b9102da_1564072709069_937523_30797", aggregation: AggregationKind.None, lowerValue: 1, upperValue: 1, isOrdered: false, isReadOnly: false, isDerived: false, isDerivedUnion: false, isUnique: true, defaultValue: "false")] [Implements(implementation: "IType.IsSufficient")] @@ -462,9 +462,9 @@ bool Core.Features.IFeature.IsVariable /// Whether this Usage may be time varying (that is, whether it is featured by the snapshots of its /// owningType, rather than being featured by the owningType itself). However, if isConstant is also /// true, then the value of the Usage is nevertheless constant over the entire duration of an instance - /// of its owningType (that is, it has the same value on all snapshots). The - /// property mayTimeVary redefines the KerML property Feature::isVariable, making it derived. The - /// property isConstant is inherited from Feature. + /// of its owningType (that is, it has the same value on all snapshots).The property mayTimeVary + /// redefines the KerML property Feature::isVariable, making it derived. The property isConstant is + /// inherited from Feature. /// [Property(xmiId: "_2022x_2_12e503d9_1737227200362_771035_69", aggregation: AggregationKind.None, lowerValue: 1, upperValue: 1, isOrdered: false, isReadOnly: false, isDerived: true, isDerivedUnion: false, isUnique: true, defaultValue: null)] [RedefinedProperty(propertyName: "_2022x_2_12e503d9_1725998273002_23711_212")] @@ -565,8 +565,8 @@ bool Core.Features.IFeature.IsVariable /// /// The ConnectorAsUsages that are nestedUsages of this Usage. Note that this list includes - /// BindingConnectorAsUsages, SuccessionAsUsages, and FlowConnectionUsages because these are - /// ConnectorAsUsages even though they are not ConnectionUsages. + /// BindingConnectorAsUsages, SuccessionAsUsages, and FlowUsages because these are ConnectorAsUsages + /// even though they are not ConnectionUsages. /// [Property(xmiId: "_19_0_2_12e503d9_1591479754895_422988_1242", aggregation: AggregationKind.None, lowerValue: 0, upperValue: int.MaxValue, isOrdered: true, isReadOnly: false, isDerived: true, isDerivedUnion: false, isUnique: true, defaultValue: null)] [SubsettedProperty(propertyName: "_18_5_3_12e503d9_1565472757327_162097_21259")] @@ -614,7 +614,7 @@ bool Core.Features.IFeature.IsVariable public List nestedItem => this.ComputeNestedItem(); /// - /// The MetadataUsages that are nestedUsages of this of this Usage. + /// The MetadataUsages that are ownedMembers of this of this Usage. /// [Property(xmiId: "_19_0_4_12e503d9_1661488589862_120785_2970", aggregation: AggregationKind.None, lowerValue: 0, upperValue: int.MaxValue, isOrdered: true, isReadOnly: false, isDerived: true, isDerivedUnion: false, isUnique: true, defaultValue: null)] [SubsettedProperty(propertyName: "_19_0_2_12e503d9_1591482421103_284620_2978")] @@ -1230,9 +1230,8 @@ bool Core.Features.IFeature.IsVariable public FeatureDirectionKind? DirectionOfExcluding(IFeature feature, List excluded) => this.ComputeDirectionOfExcludingOperation(feature, excluded); /// - /// If a Feature has no declaredName or declaredShortName , then its - /// effective name is given by the effective name of the Feature returned by the namingFeature() - /// operation, if any. + /// If a Feature has no declaredName or declaredShortName, then its effective name is given by the + /// effective name of the Feature returned by the namingFeature() operation, if any. /// /// /// The expected @@ -1337,11 +1336,10 @@ bool Core.Features.IFeature.IsVariable /// /// A Feature is compatible with an otherType if it either directly or indirectly specializes the - /// otherType or if the otherType is also a Feature and all of the following are true. - ///
  1. Neither this Feature or the otherType have any - /// ownedFeatures.
  2. This Feature directly or indirectly redefines a - /// Feature that is also directly or indirectly redefined by the otherType.
  3. - ///
  4. This Feature can access the otherType.
+ /// otherType or if the otherType is also a Feature and all of the following are true.
  1. Neither + /// this Feature or the otherType have any ownedFeatures.
  2. This Feature directly or indirectly + /// redefines a Feature that is also directly or indirectly redefined by the otherType.
  3. This + /// Feature can access the otherType.
///
/// /// No documentation provided @@ -1499,8 +1497,8 @@ bool Core.Features.IFeature.IsVariable /// an owningRelationship, then return the string constructed by appending to the path of it's /// owningRelationship the character / followed by the string representation of its position in the list /// of ownedRelatedElements of the owningRelationship (indexed starting at 1). Otherwise, return the - /// empty string. (Note that this operation is overridden for Relationships - /// to use owningRelatedElement when appropriate.) + /// empty string.(Note that this operation is overridden for Relationships to use owningRelatedElement + /// when appropriate.) /// /// /// The expected @@ -1554,13 +1552,12 @@ bool Core.Features.IFeature.IsVariable /// /// Return a subset of memberships, removing those Memberships whose memberElements are Features and for - /// which either of the following two conditions holds:
    - ///
  1. The memberElement of the Membership is included in redefined Features of another - /// Membership in memberships.
  2. One of the redefined Features of the - /// Membership is a directly redefinedFeature of an ownedFeature of this Type.
  3. - ///
For this purpose, the redefined Features of a Membership - /// whose memberElement is a Feature includes the memberElement and all Features directly or indirectly - /// redefined by the memberElement. + /// which either of the following two conditions holds:
  1. The memberElement of the Membership is + /// included in redefined Features of another Membership in memberships.
  2. One of the redefined + /// Features of the Membership is a directly redefinedFeature of an ownedFeature of this + /// Type.
For this purpose, the redefined Features of a Membership whose memberElement is a + /// Feature includes the memberElement and all Features directly or indirectly redefined by the + /// memberElement. ///
/// /// No documentation provided @@ -1687,11 +1684,11 @@ bool Core.Features.IFeature.IsVariable /// Return the Features used to determine the types of this Feature (other than this Feature itself). If /// this Feature is not conjugated, then the typingFeatures consist of all subsetted Features, except /// from CrossSubsetting, and the last chainingFeature (if any). If this Feature is conjugated, then the - /// typingFeatures are only its originalType (if the originalType is a Feature). - /// Note. CrossSubsetting is excluded from the determination of the type of a - /// Feature in order to avoid circularity in the construction of implied CrossSubsetting relationships. - /// The validateFeatureCrossFeatureType requires that the crossFeature of a Feature have the same type - /// as the Feature. + /// typingFeatures are only its originalType (if the originalType is a Feature).Note. + /// CrossSubsetting is excluded from the determination of the type of a Feature in order to avoid + /// circularity in the construction of implied CrossSubsetting relationships. The + /// validateFeatureCrossFeatureType requires that the crossFeature of a Feature have the same type as + /// the Feature. /// /// /// The expected collection of diff --git a/SysML2.NET/Core/AutoGenPoco/RequirementConstraintMembership.cs b/SysML2.NET/Core/AutoGenPoco/RequirementConstraintMembership.cs index 8c3345406..6b93624bc 100644 --- a/SysML2.NET/Core/AutoGenPoco/RequirementConstraintMembership.cs +++ b/SysML2.NET/Core/AutoGenPoco/RequirementConstraintMembership.cs @@ -536,8 +536,8 @@ List Root.Elements.IRelationship.Target /// an owningRelationship, then return the string constructed by appending to the path of it's /// owningRelationship the character / followed by the string representation of its position in the list /// of ownedRelatedElements of the owningRelationship (indexed starting at 1). Otherwise, return the - /// empty string. (Note that this operation is overridden for Relationships - /// to use owningRelatedElement when appropriate.) + /// empty string.(Note that this operation is overridden for Relationships to use owningRelatedElement + /// when appropriate.) /// /// /// The expected diff --git a/SysML2.NET/Core/AutoGenPoco/RequirementDefinition.cs b/SysML2.NET/Core/AutoGenPoco/RequirementDefinition.cs index 773862dd6..623d2df50 100644 --- a/SysML2.NET/Core/AutoGenPoco/RequirementDefinition.cs +++ b/SysML2.NET/Core/AutoGenPoco/RequirementDefinition.cs @@ -318,9 +318,9 @@ string Root.Elements.IElement.DeclaredShortName /// /// Whether this Function can be used as the function of a model-level evaluable InvocationExpression. /// Certain Functions from the Kernel Functions Library are considered to have isModelLevelEvaluable = - /// true. For all other Functions it is false. Note: See the - /// specification of the KerML concrete syntax notation for Expressions for an identification of which - /// library Functions are model-level evaluable. + /// true. For all other Functions it is false.Note: See the specification of the KerML + /// concrete syntax notation for Expressions for an identification of which library Functions are + /// model-level evaluable. /// [Property(xmiId: "_19_0_4_12e503d9_1617395221463_139517_26381", aggregation: AggregationKind.None, lowerValue: 1, upperValue: 1, isOrdered: false, isReadOnly: false, isDerived: true, isDerivedUnion: false, isUnique: true, defaultValue: null)] [Implements(implementation: "IFunction.IsModelLevelEvaluable")] @@ -328,11 +328,11 @@ string Root.Elements.IElement.DeclaredShortName /// /// Whether all things that meet the classification conditions of this Type must be classified by the - /// Type. (A Type gives conditions that must be met by whatever it - /// classifies, but when isSufficient is false, things may meet those conditions but still not be - /// classified by the Type. For example, a Type Car that is not sufficient could require everything it - /// classifies to have four wheels, but not all four wheeled things would classify as cars. However, if - /// the Type Car were sufficient, it would classify all four-wheeled things.) + /// Type.(A Type gives conditions that must be met by whatever it classifies, but when isSufficient + /// is false, things may meet those conditions but still not be classified by the Type. For example, a + /// Type Car that is not sufficient could require everything it classifies to have four wheels, but not + /// all four wheeled things would classify as cars. However, if the Type Car were sufficient, it would + /// classify all four-wheeled things.) /// [Property(xmiId: "_18_5_3_b9102da_1564072709069_937523_30797", aggregation: AggregationKind.None, lowerValue: 1, upperValue: 1, isOrdered: false, isReadOnly: false, isDerived: false, isDerivedUnion: false, isUnique: true, defaultValue: "false")] [Implements(implementation: "IType.IsSufficient")] @@ -610,7 +610,7 @@ string Root.Elements.IElement.DeclaredShortName public List ownedMembership => this.ComputeOwnedMembership(); /// - /// The MetadataUsages that are ownedUsages of this Definition. + /// The MetadataUsages that are ownedMembers of this Definition. /// [Property(xmiId: "_19_0_4_12e503d9_1661488358064_457109_2881", aggregation: AggregationKind.None, lowerValue: 0, upperValue: int.MaxValue, isOrdered: true, isReadOnly: false, isDerived: true, isDerivedUnion: false, isUnique: true, defaultValue: null)] [SubsettedProperty(propertyName: "_19_0_2_12e503d9_1591482567975_649284_3005")] @@ -858,7 +858,7 @@ string Root.Elements.IElement.DeclaredShortName public string shortName => this.ComputeShortName(); /// - /// The parameters of this RequirementDefinition that represent stakeholders for th requirement. + /// The parameters of this RequirementDefinition that represent stakeholders for the requirement. /// [Property(xmiId: "_19_0_4_12e503d9_1624033010374_29375_40166", aggregation: AggregationKind.None, lowerValue: 0, upperValue: int.MaxValue, isOrdered: true, isReadOnly: false, isDerived: true, isDerivedUnion: false, isUnique: true, defaultValue: null)] [SubsettedProperty(propertyName: "_18_5_3_12e503d9_1543948010065_362066_20413")] @@ -1147,8 +1147,8 @@ string Root.Elements.IElement.DeclaredShortName /// an owningRelationship, then return the string constructed by appending to the path of it's /// owningRelationship the character / followed by the string representation of its position in the list /// of ownedRelatedElements of the owningRelationship (indexed starting at 1). Otherwise, return the - /// empty string. (Note that this operation is overridden for Relationships - /// to use owningRelatedElement when appropriate.) + /// empty string.(Note that this operation is overridden for Relationships to use owningRelatedElement + /// when appropriate.) /// /// /// The expected @@ -1170,13 +1170,12 @@ string Root.Elements.IElement.DeclaredShortName /// /// Return a subset of memberships, removing those Memberships whose memberElements are Features and for - /// which either of the following two conditions holds:
    - ///
  1. The memberElement of the Membership is included in redefined Features of another - /// Membership in memberships.
  2. One of the redefined Features of the - /// Membership is a directly redefinedFeature of an ownedFeature of this Type.
  3. - ///
For this purpose, the redefined Features of a Membership - /// whose memberElement is a Feature includes the memberElement and all Features directly or indirectly - /// redefined by the memberElement. + /// which either of the following two conditions holds:
  1. The memberElement of the Membership is + /// included in redefined Features of another Membership in memberships.
  2. One of the redefined + /// Features of the Membership is a directly redefinedFeature of an ownedFeature of this + /// Type.
For this purpose, the redefined Features of a Membership whose memberElement is a + /// Feature includes the memberElement and all Features directly or indirectly redefined by the + /// memberElement. ///
/// /// No documentation provided diff --git a/SysML2.NET/Core/AutoGenPoco/RequirementUsage.cs b/SysML2.NET/Core/AutoGenPoco/RequirementUsage.cs index 07ff44eaa..e31051b53 100644 --- a/SysML2.NET/Core/AutoGenPoco/RequirementUsage.cs +++ b/SysML2.NET/Core/AutoGenPoco/RequirementUsage.cs @@ -483,11 +483,11 @@ string Root.Elements.IElement.DeclaredShortName /// /// Whether all things that meet the classification conditions of this Type must be classified by the - /// Type. (A Type gives conditions that must be met by whatever it - /// classifies, but when isSufficient is false, things may meet those conditions but still not be - /// classified by the Type. For example, a Type Car that is not sufficient could require everything it - /// classifies to have four wheels, but not all four wheeled things would classify as cars. However, if - /// the Type Car were sufficient, it would classify all four-wheeled things.) + /// Type.(A Type gives conditions that must be met by whatever it classifies, but when isSufficient + /// is false, things may meet those conditions but still not be classified by the Type. For example, a + /// Type Car that is not sufficient could require everything it classifies to have four wheels, but not + /// all four wheeled things would classify as cars. However, if the Type Car were sufficient, it would + /// classify all four-wheeled things.) /// [Property(xmiId: "_18_5_3_b9102da_1564072709069_937523_30797", aggregation: AggregationKind.None, lowerValue: 1, upperValue: 1, isOrdered: false, isReadOnly: false, isDerived: false, isDerivedUnion: false, isUnique: true, defaultValue: "false")] [Implements(implementation: "IType.IsSufficient")] @@ -525,9 +525,9 @@ bool Core.Features.IFeature.IsVariable /// Whether this Usage may be time varying (that is, whether it is featured by the snapshots of its /// owningType, rather than being featured by the owningType itself). However, if isConstant is also /// true, then the value of the Usage is nevertheless constant over the entire duration of an instance - /// of its owningType (that is, it has the same value on all snapshots). The - /// property mayTimeVary redefines the KerML property Feature::isVariable, making it derived. The - /// property isConstant is inherited from Feature. + /// of its owningType (that is, it has the same value on all snapshots).The property mayTimeVary + /// redefines the KerML property Feature::isVariable, making it derived. The property isConstant is + /// inherited from Feature. /// [Property(xmiId: "_2022x_2_12e503d9_1737227200362_771035_69", aggregation: AggregationKind.None, lowerValue: 1, upperValue: 1, isOrdered: false, isReadOnly: false, isDerived: true, isDerivedUnion: false, isUnique: true, defaultValue: null)] [RedefinedProperty(propertyName: "_2022x_2_12e503d9_1725998273002_23711_212")] @@ -628,8 +628,8 @@ bool Core.Features.IFeature.IsVariable /// /// The ConnectorAsUsages that are nestedUsages of this Usage. Note that this list includes - /// BindingConnectorAsUsages, SuccessionAsUsages, and FlowConnectionUsages because these are - /// ConnectorAsUsages even though they are not ConnectionUsages. + /// BindingConnectorAsUsages, SuccessionAsUsages, and FlowUsages because these are ConnectorAsUsages + /// even though they are not ConnectionUsages. /// [Property(xmiId: "_19_0_2_12e503d9_1591479754895_422988_1242", aggregation: AggregationKind.None, lowerValue: 0, upperValue: int.MaxValue, isOrdered: true, isReadOnly: false, isDerived: true, isDerivedUnion: false, isUnique: true, defaultValue: null)] [SubsettedProperty(propertyName: "_18_5_3_12e503d9_1565472757327_162097_21259")] @@ -677,7 +677,7 @@ bool Core.Features.IFeature.IsVariable public List nestedItem => this.ComputeNestedItem(); /// - /// The MetadataUsages that are nestedUsages of this of this Usage. + /// The MetadataUsages that are ownedMembers of this of this Usage. /// [Property(xmiId: "_19_0_4_12e503d9_1661488589862_120785_2970", aggregation: AggregationKind.None, lowerValue: 0, upperValue: int.MaxValue, isOrdered: true, isReadOnly: false, isDerived: true, isDerivedUnion: false, isUnique: true, defaultValue: null)] [SubsettedProperty(propertyName: "_19_0_2_12e503d9_1591482421103_284620_2978")] @@ -1369,9 +1369,8 @@ bool Core.Features.IFeature.IsVariable public FeatureDirectionKind? DirectionOfExcluding(IFeature feature, List excluded) => this.ComputeDirectionOfExcludingOperation(feature, excluded); /// - /// If a Feature has no declaredName or declaredShortName , then its - /// effective name is given by the effective name of the Feature returned by the namingFeature() - /// operation, if any. + /// If a Feature has no declaredName or declaredShortName, then its effective name is given by the + /// effective name of the Feature returned by the namingFeature() operation, if any. /// /// /// The expected @@ -1490,11 +1489,10 @@ bool Core.Features.IFeature.IsVariable /// /// A Feature is compatible with an otherType if it either directly or indirectly specializes the - /// otherType or if the otherType is also a Feature and all of the following are true. - ///
  1. Neither this Feature or the otherType have any - /// ownedFeatures.
  2. This Feature directly or indirectly redefines a - /// Feature that is also directly or indirectly redefined by the otherType.
  3. - ///
  4. This Feature can access the otherType.
+ /// otherType or if the otherType is also a Feature and all of the following are true.
  1. Neither + /// this Feature or the otherType have any ownedFeatures.
  2. This Feature directly or indirectly + /// redefines a Feature that is also directly or indirectly redefined by the otherType.
  3. This + /// Feature can access the otherType.
///
/// /// No documentation provided @@ -1594,11 +1592,11 @@ bool Core.Features.IFeature.IsVariable /// Return whether this Expression is model-level evaluable. The visited parameter is used to track /// possible circular Feature references made from FeatureReferenceExpressions (see the redefinition of /// this operation for FeatureReferenceExpression). Such circular references are not allowed in - /// model-level evaluable expressions. An Expression that is not otherwise - /// specialized is model-level evaluable if it has no (non-implied) ownedSpecializations and all its - /// ownedFeatures are either in parameters, the result parameter or a result Expression owned via a - /// ResultExpressionMembership. The parameters must not have any ownedFeatures or a FeatureValue, and - /// the result Expression must be model-level evaluable. + /// model-level evaluable expressions.An Expression that is not otherwise specialized is model-level + /// evaluable if it has no (non-implied) ownedSpecializations and all its ownedFeatures are either in + /// parameters, the result parameter or a result Expression owned via a ResultExpressionMembership. The + /// parameters must not have any ownedFeatures or a FeatureValue, and the result Expression must be + /// model-level evaluable. /// /// /// No documentation provided @@ -1691,8 +1689,8 @@ bool Core.Features.IFeature.IsVariable /// an owningRelationship, then return the string constructed by appending to the path of it's /// owningRelationship the character / followed by the string representation of its position in the list /// of ownedRelatedElements of the owningRelationship (indexed starting at 1). Otherwise, return the - /// empty string. (Note that this operation is overridden for Relationships - /// to use owningRelatedElement when appropriate.) + /// empty string.(Note that this operation is overridden for Relationships to use owningRelatedElement + /// when appropriate.) /// /// /// The expected @@ -1746,13 +1744,12 @@ bool Core.Features.IFeature.IsVariable /// /// Return a subset of memberships, removing those Memberships whose memberElements are Features and for - /// which either of the following two conditions holds:
    - ///
  1. The memberElement of the Membership is included in redefined Features of another - /// Membership in memberships.
  2. One of the redefined Features of the - /// Membership is a directly redefinedFeature of an ownedFeature of this Type.
  3. - ///
For this purpose, the redefined Features of a Membership - /// whose memberElement is a Feature includes the memberElement and all Features directly or indirectly - /// redefined by the memberElement. + /// which either of the following two conditions holds:
  1. The memberElement of the Membership is + /// included in redefined Features of another Membership in memberships.
  2. One of the redefined + /// Features of the Membership is a directly redefinedFeature of an ownedFeature of this + /// Type.
For this purpose, the redefined Features of a Membership whose memberElement is a + /// Feature includes the memberElement and all Features directly or indirectly redefined by the + /// memberElement. ///
/// /// No documentation provided @@ -1879,11 +1876,11 @@ bool Core.Features.IFeature.IsVariable /// Return the Features used to determine the types of this Feature (other than this Feature itself). If /// this Feature is not conjugated, then the typingFeatures consist of all subsetted Features, except /// from CrossSubsetting, and the last chainingFeature (if any). If this Feature is conjugated, then the - /// typingFeatures are only its originalType (if the originalType is a Feature). - /// Note. CrossSubsetting is excluded from the determination of the type of a - /// Feature in order to avoid circularity in the construction of implied CrossSubsetting relationships. - /// The validateFeatureCrossFeatureType requires that the crossFeature of a Feature have the same type - /// as the Feature. + /// typingFeatures are only its originalType (if the originalType is a Feature).Note. + /// CrossSubsetting is excluded from the determination of the type of a Feature in order to avoid + /// circularity in the construction of implied CrossSubsetting relationships. The + /// validateFeatureCrossFeatureType requires that the crossFeature of a Feature have the same type as + /// the Feature. /// /// /// The expected collection of diff --git a/SysML2.NET/Core/AutoGenPoco/RequirementVerificationMembership.cs b/SysML2.NET/Core/AutoGenPoco/RequirementVerificationMembership.cs index 15491aad7..762f797f6 100644 --- a/SysML2.NET/Core/AutoGenPoco/RequirementVerificationMembership.cs +++ b/SysML2.NET/Core/AutoGenPoco/RequirementVerificationMembership.cs @@ -575,8 +575,8 @@ List Root.Elements.IRelationship.Target /// an owningRelationship, then return the string constructed by appending to the path of it's /// owningRelationship the character / followed by the string representation of its position in the list /// of ownedRelatedElements of the owningRelationship (indexed starting at 1). Otherwise, return the - /// empty string. (Note that this operation is overridden for Relationships - /// to use owningRelatedElement when appropriate.) + /// empty string.(Note that this operation is overridden for Relationships to use owningRelatedElement + /// when appropriate.) /// /// /// The expected diff --git a/SysML2.NET/Core/AutoGenPoco/ResultExpressionMembership.cs b/SysML2.NET/Core/AutoGenPoco/ResultExpressionMembership.cs index 3ae7ec088..742c5460c 100644 --- a/SysML2.NET/Core/AutoGenPoco/ResultExpressionMembership.cs +++ b/SysML2.NET/Core/AutoGenPoco/ResultExpressionMembership.cs @@ -520,8 +520,8 @@ List Root.Elements.IRelationship.Target /// an owningRelationship, then return the string constructed by appending to the path of it's /// owningRelationship the character / followed by the string representation of its position in the list /// of ownedRelatedElements of the owningRelationship (indexed starting at 1). Otherwise, return the - /// empty string. (Note that this operation is overridden for Relationships - /// to use owningRelatedElement when appropriate.) + /// empty string.(Note that this operation is overridden for Relationships to use owningRelatedElement + /// when appropriate.) /// /// /// The expected diff --git a/SysML2.NET/Core/AutoGenPoco/ReturnParameterMembership.cs b/SysML2.NET/Core/AutoGenPoco/ReturnParameterMembership.cs index 6c2e75e17..89c45be7e 100644 --- a/SysML2.NET/Core/AutoGenPoco/ReturnParameterMembership.cs +++ b/SysML2.NET/Core/AutoGenPoco/ReturnParameterMembership.cs @@ -538,8 +538,8 @@ List Root.Elements.IRelationship.Target /// an owningRelationship, then return the string constructed by appending to the path of it's /// owningRelationship the character / followed by the string representation of its position in the list /// of ownedRelatedElements of the owningRelationship (indexed starting at 1). Otherwise, return the - /// empty string. (Note that this operation is overridden for Relationships - /// to use owningRelatedElement when appropriate.) + /// empty string.(Note that this operation is overridden for Relationships to use owningRelatedElement + /// when appropriate.) /// /// /// The expected diff --git a/SysML2.NET/Core/AutoGenPoco/SatisfyRequirementUsage.cs b/SysML2.NET/Core/AutoGenPoco/SatisfyRequirementUsage.cs index cef4b5608..9505fb555 100644 --- a/SysML2.NET/Core/AutoGenPoco/SatisfyRequirementUsage.cs +++ b/SysML2.NET/Core/AutoGenPoco/SatisfyRequirementUsage.cs @@ -503,11 +503,11 @@ string Root.Elements.IElement.DeclaredShortName /// /// Whether all things that meet the classification conditions of this Type must be classified by the - /// Type. (A Type gives conditions that must be met by whatever it - /// classifies, but when isSufficient is false, things may meet those conditions but still not be - /// classified by the Type. For example, a Type Car that is not sufficient could require everything it - /// classifies to have four wheels, but not all four wheeled things would classify as cars. However, if - /// the Type Car were sufficient, it would classify all four-wheeled things.) + /// Type.(A Type gives conditions that must be met by whatever it classifies, but when isSufficient + /// is false, things may meet those conditions but still not be classified by the Type. For example, a + /// Type Car that is not sufficient could require everything it classifies to have four wheels, but not + /// all four wheeled things would classify as cars. However, if the Type Car were sufficient, it would + /// classify all four-wheeled things.) /// [Property(xmiId: "_18_5_3_b9102da_1564072709069_937523_30797", aggregation: AggregationKind.None, lowerValue: 1, upperValue: 1, isOrdered: false, isReadOnly: false, isDerived: false, isDerivedUnion: false, isUnique: true, defaultValue: "false")] [Implements(implementation: "IType.IsSufficient")] @@ -545,9 +545,9 @@ bool Core.Features.IFeature.IsVariable /// Whether this Usage may be time varying (that is, whether it is featured by the snapshots of its /// owningType, rather than being featured by the owningType itself). However, if isConstant is also /// true, then the value of the Usage is nevertheless constant over the entire duration of an instance - /// of its owningType (that is, it has the same value on all snapshots). The - /// property mayTimeVary redefines the KerML property Feature::isVariable, making it derived. The - /// property isConstant is inherited from Feature. + /// of its owningType (that is, it has the same value on all snapshots).The property mayTimeVary + /// redefines the KerML property Feature::isVariable, making it derived. The property isConstant is + /// inherited from Feature. /// [Property(xmiId: "_2022x_2_12e503d9_1737227200362_771035_69", aggregation: AggregationKind.None, lowerValue: 1, upperValue: 1, isOrdered: false, isReadOnly: false, isDerived: true, isDerivedUnion: false, isUnique: true, defaultValue: null)] [RedefinedProperty(propertyName: "_2022x_2_12e503d9_1725998273002_23711_212")] @@ -648,8 +648,8 @@ bool Core.Features.IFeature.IsVariable /// /// The ConnectorAsUsages that are nestedUsages of this Usage. Note that this list includes - /// BindingConnectorAsUsages, SuccessionAsUsages, and FlowConnectionUsages because these are - /// ConnectorAsUsages even though they are not ConnectionUsages. + /// BindingConnectorAsUsages, SuccessionAsUsages, and FlowUsages because these are ConnectorAsUsages + /// even though they are not ConnectionUsages. /// [Property(xmiId: "_19_0_2_12e503d9_1591479754895_422988_1242", aggregation: AggregationKind.None, lowerValue: 0, upperValue: int.MaxValue, isOrdered: true, isReadOnly: false, isDerived: true, isDerivedUnion: false, isUnique: true, defaultValue: null)] [SubsettedProperty(propertyName: "_18_5_3_12e503d9_1565472757327_162097_21259")] @@ -697,7 +697,7 @@ bool Core.Features.IFeature.IsVariable public List nestedItem => this.ComputeNestedItem(); /// - /// The MetadataUsages that are nestedUsages of this of this Usage. + /// The MetadataUsages that are ownedMembers of this of this Usage. /// [Property(xmiId: "_19_0_4_12e503d9_1661488589862_120785_2970", aggregation: AggregationKind.None, lowerValue: 0, upperValue: int.MaxValue, isOrdered: true, isReadOnly: false, isDerived: true, isDerivedUnion: false, isUnique: true, defaultValue: null)] [SubsettedProperty(propertyName: "_19_0_2_12e503d9_1591482421103_284620_2978")] @@ -1407,9 +1407,8 @@ bool Core.Features.IFeature.IsVariable public FeatureDirectionKind? DirectionOfExcluding(IFeature feature, List excluded) => this.ComputeDirectionOfExcludingOperation(feature, excluded); /// - /// If a Feature has no declaredName or declaredShortName , then its - /// effective name is given by the effective name of the Feature returned by the namingFeature() - /// operation, if any. + /// If a Feature has no declaredName or declaredShortName, then its effective name is given by the + /// effective name of the Feature returned by the namingFeature() operation, if any. /// /// /// The expected @@ -1528,11 +1527,10 @@ bool Core.Features.IFeature.IsVariable /// /// A Feature is compatible with an otherType if it either directly or indirectly specializes the - /// otherType or if the otherType is also a Feature and all of the following are true. - ///
  1. Neither this Feature or the otherType have any - /// ownedFeatures.
  2. This Feature directly or indirectly redefines a - /// Feature that is also directly or indirectly redefined by the otherType.
  3. - ///
  4. This Feature can access the otherType.
+ /// otherType or if the otherType is also a Feature and all of the following are true.
  1. Neither + /// this Feature or the otherType have any ownedFeatures.
  2. This Feature directly or indirectly + /// redefines a Feature that is also directly or indirectly redefined by the otherType.
  3. This + /// Feature can access the otherType.
///
/// /// No documentation provided @@ -1632,11 +1630,11 @@ bool Core.Features.IFeature.IsVariable /// Return whether this Expression is model-level evaluable. The visited parameter is used to track /// possible circular Feature references made from FeatureReferenceExpressions (see the redefinition of /// this operation for FeatureReferenceExpression). Such circular references are not allowed in - /// model-level evaluable expressions. An Expression that is not otherwise - /// specialized is model-level evaluable if it has no (non-implied) ownedSpecializations and all its - /// ownedFeatures are either in parameters, the result parameter or a result Expression owned via a - /// ResultExpressionMembership. The parameters must not have any ownedFeatures or a FeatureValue, and - /// the result Expression must be model-level evaluable. + /// model-level evaluable expressions.An Expression that is not otherwise specialized is model-level + /// evaluable if it has no (non-implied) ownedSpecializations and all its ownedFeatures are either in + /// parameters, the result parameter or a result Expression owned via a ResultExpressionMembership. The + /// parameters must not have any ownedFeatures or a FeatureValue, and the result Expression must be + /// model-level evaluable. /// /// /// No documentation provided @@ -1729,8 +1727,8 @@ bool Core.Features.IFeature.IsVariable /// an owningRelationship, then return the string constructed by appending to the path of it's /// owningRelationship the character / followed by the string representation of its position in the list /// of ownedRelatedElements of the owningRelationship (indexed starting at 1). Otherwise, return the - /// empty string. (Note that this operation is overridden for Relationships - /// to use owningRelatedElement when appropriate.) + /// empty string.(Note that this operation is overridden for Relationships to use owningRelatedElement + /// when appropriate.) /// /// /// The expected @@ -1784,13 +1782,12 @@ bool Core.Features.IFeature.IsVariable /// /// Return a subset of memberships, removing those Memberships whose memberElements are Features and for - /// which either of the following two conditions holds:
    - ///
  1. The memberElement of the Membership is included in redefined Features of another - /// Membership in memberships.
  2. One of the redefined Features of the - /// Membership is a directly redefinedFeature of an ownedFeature of this Type.
  3. - ///
For this purpose, the redefined Features of a Membership - /// whose memberElement is a Feature includes the memberElement and all Features directly or indirectly - /// redefined by the memberElement. + /// which either of the following two conditions holds:
  1. The memberElement of the Membership is + /// included in redefined Features of another Membership in memberships.
  2. One of the redefined + /// Features of the Membership is a directly redefinedFeature of an ownedFeature of this + /// Type.
For this purpose, the redefined Features of a Membership whose memberElement is a + /// Feature includes the memberElement and all Features directly or indirectly redefined by the + /// memberElement. ///
/// /// No documentation provided @@ -1917,11 +1914,11 @@ bool Core.Features.IFeature.IsVariable /// Return the Features used to determine the types of this Feature (other than this Feature itself). If /// this Feature is not conjugated, then the typingFeatures consist of all subsetted Features, except /// from CrossSubsetting, and the last chainingFeature (if any). If this Feature is conjugated, then the - /// typingFeatures are only its originalType (if the originalType is a Feature). - /// Note. CrossSubsetting is excluded from the determination of the type of a - /// Feature in order to avoid circularity in the construction of implied CrossSubsetting relationships. - /// The validateFeatureCrossFeatureType requires that the crossFeature of a Feature have the same type - /// as the Feature. + /// typingFeatures are only its originalType (if the originalType is a Feature).Note. + /// CrossSubsetting is excluded from the determination of the type of a Feature in order to avoid + /// circularity in the construction of implied CrossSubsetting relationships. The + /// validateFeatureCrossFeatureType requires that the crossFeature of a Feature have the same type as + /// the Feature. /// /// /// The expected collection of diff --git a/SysML2.NET/Core/AutoGenPoco/SelectExpression.cs b/SysML2.NET/Core/AutoGenPoco/SelectExpression.cs index add2116aa..13d6c3342 100644 --- a/SysML2.NET/Core/AutoGenPoco/SelectExpression.cs +++ b/SysML2.NET/Core/AutoGenPoco/SelectExpression.cs @@ -77,8 +77,8 @@ public SelectExpression() /// /// The Expressions whose results are bound to features of the instantiatedType. The arguments are /// ordered consistent with the order of the features, though they may not be one-to-one with all the - /// features. Note. The derivation of argument is given in - /// the concrete subclasses of InstantiationExpression. + /// features.Note. The derivation of argument is given in the concrete subclasses of + /// InstantiationExpression. /// [Property(xmiId: "_2022x_2_12e503d9_1739134437590_328753_108", aggregation: AggregationKind.None, lowerValue: 0, upperValue: int.MaxValue, isOrdered: true, isReadOnly: false, isDerived: true, isDerivedUnion: false, isUnique: true, defaultValue: null)] [Implements(implementation: "IInstantiationExpression.Argument")] @@ -389,11 +389,11 @@ public SelectExpression() /// /// Whether all things that meet the classification conditions of this Type must be classified by the - /// Type. (A Type gives conditions that must be met by whatever it - /// classifies, but when isSufficient is false, things may meet those conditions but still not be - /// classified by the Type. For example, a Type Car that is not sufficient could require everything it - /// classifies to have four wheels, but not all four wheeled things would classify as cars. However, if - /// the Type Car were sufficient, it would classify all four-wheeled things.) + /// Type.(A Type gives conditions that must be met by whatever it classifies, but when isSufficient + /// is false, things may meet those conditions but still not be classified by the Type. For example, a + /// Type Car that is not sufficient could require everything it classifies to have four wheels, but not + /// all four wheeled things would classify as cars. However, if the Type Car were sufficient, it would + /// classify all four-wheeled things.) /// [Property(xmiId: "_18_5_3_b9102da_1564072709069_937523_30797", aggregation: AggregationKind.None, lowerValue: 1, upperValue: 1, isOrdered: false, isReadOnly: false, isDerived: false, isDerivedUnion: false, isUnique: true, defaultValue: "false")] [Implements(implementation: "IType.IsSufficient")] @@ -931,9 +931,8 @@ string IOperatorExpression.Operator public FeatureDirectionKind? DirectionOfExcluding(IFeature feature, List excluded) => this.ComputeDirectionOfExcludingOperation(feature, excluded); /// - /// If a Feature has no declaredName or declaredShortName , then its - /// effective name is given by the effective name of the Feature returned by the namingFeature() - /// operation, if any. + /// If a Feature has no declaredName or declaredShortName, then its effective name is given by the + /// effective name of the Feature returned by the namingFeature() operation, if any. /// /// /// The expected @@ -1067,8 +1066,7 @@ string IOperatorExpression.Operator /// /// Return the Type to act as the instantiatedType for this InstantiationExpression. By default, this is /// the memberElement of the first ownedMembership that is not a FeatureMembership, which must be a - /// Type. Note. This operation is overridden in the subclass - /// OperatorExpression. + /// Type.Note. This operation is overridden in the subclass OperatorExpression. /// /// /// The expected @@ -1085,11 +1083,10 @@ string IOperatorExpression.Operator /// /// A Feature is compatible with an otherType if it either directly or indirectly specializes the - /// otherType or if the otherType is also a Feature and all of the following are true. - ///
  1. Neither this Feature or the otherType have any - /// ownedFeatures.
  2. This Feature directly or indirectly redefines a - /// Feature that is also directly or indirectly redefined by the otherType.
  3. - ///
  4. This Feature can access the otherType.
+ /// otherType or if the otherType is also a Feature and all of the following are true.
  1. Neither + /// this Feature or the otherType have any ownedFeatures.
  2. This Feature directly or indirectly + /// redefines a Feature that is also directly or indirectly redefined by the otherType.
  3. This + /// Feature can access the otherType.
///
/// /// No documentation provided @@ -1190,11 +1187,11 @@ string IOperatorExpression.Operator /// Return whether this Expression is model-level evaluable. The visited parameter is used to track /// possible circular Feature references made from FeatureReferenceExpressions (see the redefinition of /// this operation for FeatureReferenceExpression). Such circular references are not allowed in - /// model-level evaluable expressions. An Expression that is not otherwise - /// specialized is model-level evaluable if it has no (non-implied) ownedSpecializations and all its - /// ownedFeatures are either in parameters, the result parameter or a result Expression owned via a - /// ResultExpressionMembership. The parameters must not have any ownedFeatures or a FeatureValue, and - /// the result Expression must be model-level evaluable. + /// model-level evaluable expressions.An Expression that is not otherwise specialized is model-level + /// evaluable if it has no (non-implied) ownedSpecializations and all its ownedFeatures are either in + /// parameters, the result parameter or a result Expression owned via a ResultExpressionMembership. The + /// parameters must not have any ownedFeatures or a FeatureValue, and the result Expression must be + /// model-level evaluable. /// /// /// No documentation provided @@ -1268,8 +1265,8 @@ string IOperatorExpression.Operator /// an owningRelationship, then return the string constructed by appending to the path of it's /// owningRelationship the character / followed by the string representation of its position in the list /// of ownedRelatedElements of the owningRelationship (indexed starting at 1). Otherwise, return the - /// empty string. (Note that this operation is overridden for Relationships - /// to use owningRelatedElement when appropriate.) + /// empty string.(Note that this operation is overridden for Relationships to use owningRelatedElement + /// when appropriate.) /// /// /// The expected @@ -1314,13 +1311,12 @@ string IOperatorExpression.Operator /// /// Return a subset of memberships, removing those Memberships whose memberElements are Features and for - /// which either of the following two conditions holds:
    - ///
  1. The memberElement of the Membership is included in redefined Features of another - /// Membership in memberships.
  2. One of the redefined Features of the - /// Membership is a directly redefinedFeature of an ownedFeature of this Type.
  3. - ///
For this purpose, the redefined Features of a Membership - /// whose memberElement is a Feature includes the memberElement and all Features directly or indirectly - /// redefined by the memberElement. + /// which either of the following two conditions holds:
  1. The memberElement of the Membership is + /// included in redefined Features of another Membership in memberships.
  2. One of the redefined + /// Features of the Membership is a directly redefinedFeature of an ownedFeature of this + /// Type.
For this purpose, the redefined Features of a Membership whose memberElement is a + /// Feature includes the memberElement and all Features directly or indirectly redefined by the + /// memberElement. ///
/// /// No documentation provided @@ -1447,11 +1443,11 @@ string IOperatorExpression.Operator /// Return the Features used to determine the types of this Feature (other than this Feature itself). If /// this Feature is not conjugated, then the typingFeatures consist of all subsetted Features, except /// from CrossSubsetting, and the last chainingFeature (if any). If this Feature is conjugated, then the - /// typingFeatures are only its originalType (if the originalType is a Feature). - /// Note. CrossSubsetting is excluded from the determination of the type of a - /// Feature in order to avoid circularity in the construction of implied CrossSubsetting relationships. - /// The validateFeatureCrossFeatureType requires that the crossFeature of a Feature have the same type - /// as the Feature. + /// typingFeatures are only its originalType (if the originalType is a Feature).Note. + /// CrossSubsetting is excluded from the determination of the type of a Feature in order to avoid + /// circularity in the construction of implied CrossSubsetting relationships. The + /// validateFeatureCrossFeatureType requires that the crossFeature of a Feature have the same type as + /// the Feature. /// /// /// The expected collection of diff --git a/SysML2.NET/Core/AutoGenPoco/SendActionUsage.cs b/SysML2.NET/Core/AutoGenPoco/SendActionUsage.cs index 1a3cc5758..3899d91f0 100644 --- a/SysML2.NET/Core/AutoGenPoco/SendActionUsage.cs +++ b/SysML2.NET/Core/AutoGenPoco/SendActionUsage.cs @@ -435,11 +435,11 @@ public SendActionUsage() /// /// Whether all things that meet the classification conditions of this Type must be classified by the - /// Type. (A Type gives conditions that must be met by whatever it - /// classifies, but when isSufficient is false, things may meet those conditions but still not be - /// classified by the Type. For example, a Type Car that is not sufficient could require everything it - /// classifies to have four wheels, but not all four wheeled things would classify as cars. However, if - /// the Type Car were sufficient, it would classify all four-wheeled things.) + /// Type.(A Type gives conditions that must be met by whatever it classifies, but when isSufficient + /// is false, things may meet those conditions but still not be classified by the Type. For example, a + /// Type Car that is not sufficient could require everything it classifies to have four wheels, but not + /// all four wheeled things would classify as cars. However, if the Type Car were sufficient, it would + /// classify all four-wheeled things.) /// [Property(xmiId: "_18_5_3_b9102da_1564072709069_937523_30797", aggregation: AggregationKind.None, lowerValue: 1, upperValue: 1, isOrdered: false, isReadOnly: false, isDerived: false, isDerivedUnion: false, isUnique: true, defaultValue: "false")] [Implements(implementation: "IType.IsSufficient")] @@ -477,9 +477,9 @@ bool Core.Features.IFeature.IsVariable /// Whether this Usage may be time varying (that is, whether it is featured by the snapshots of its /// owningType, rather than being featured by the owningType itself). However, if isConstant is also /// true, then the value of the Usage is nevertheless constant over the entire duration of an instance - /// of its owningType (that is, it has the same value on all snapshots). The - /// property mayTimeVary redefines the KerML property Feature::isVariable, making it derived. The - /// property isConstant is inherited from Feature. + /// of its owningType (that is, it has the same value on all snapshots).The property mayTimeVary + /// redefines the KerML property Feature::isVariable, making it derived. The property isConstant is + /// inherited from Feature. /// [Property(xmiId: "_2022x_2_12e503d9_1737227200362_771035_69", aggregation: AggregationKind.None, lowerValue: 1, upperValue: 1, isOrdered: false, isReadOnly: false, isDerived: true, isDerivedUnion: false, isUnique: true, defaultValue: null)] [RedefinedProperty(propertyName: "_2022x_2_12e503d9_1725998273002_23711_212")] @@ -580,8 +580,8 @@ bool Core.Features.IFeature.IsVariable /// /// The ConnectorAsUsages that are nestedUsages of this Usage. Note that this list includes - /// BindingConnectorAsUsages, SuccessionAsUsages, and FlowConnectionUsages because these are - /// ConnectorAsUsages even though they are not ConnectionUsages. + /// BindingConnectorAsUsages, SuccessionAsUsages, and FlowUsages because these are ConnectorAsUsages + /// even though they are not ConnectionUsages. /// [Property(xmiId: "_19_0_2_12e503d9_1591479754895_422988_1242", aggregation: AggregationKind.None, lowerValue: 0, upperValue: int.MaxValue, isOrdered: true, isReadOnly: false, isDerived: true, isDerivedUnion: false, isUnique: true, defaultValue: null)] [SubsettedProperty(propertyName: "_18_5_3_12e503d9_1565472757327_162097_21259")] @@ -629,7 +629,7 @@ bool Core.Features.IFeature.IsVariable public List nestedItem => this.ComputeNestedItem(); /// - /// The MetadataUsages that are nestedUsages of this of this Usage. + /// The MetadataUsages that are ownedMembers of this of this Usage. /// [Property(xmiId: "_19_0_4_12e503d9_1661488589862_120785_2970", aggregation: AggregationKind.None, lowerValue: 0, upperValue: int.MaxValue, isOrdered: true, isReadOnly: false, isDerived: true, isDerivedUnion: false, isUnique: true, defaultValue: null)] [SubsettedProperty(propertyName: "_19_0_2_12e503d9_1591482421103_284620_2978")] @@ -1061,7 +1061,7 @@ bool Core.Features.IFeature.IsVariable /// /// An Expression whose result is bound to the payload input parameter of this SendActionUsage. /// - [Property(xmiId: "_19_0_4_12e503d9_1612814399422_336683_143", aggregation: AggregationKind.None, lowerValue: 1, upperValue: 1, isOrdered: false, isReadOnly: false, isDerived: true, isDerivedUnion: false, isUnique: true, defaultValue: null)] + [Property(xmiId: "_19_0_4_12e503d9_1612814399422_336683_143", aggregation: AggregationKind.None, lowerValue: 0, upperValue: 1, isOrdered: false, isReadOnly: false, isDerived: true, isDerivedUnion: false, isUnique: true, defaultValue: null)] [Implements(implementation: "ISendActionUsage.PayloadArgument")] public IExpression payloadArgument => this.ComputePayloadArgument(); @@ -1271,9 +1271,8 @@ bool Core.Features.IFeature.IsVariable public FeatureDirectionKind? DirectionOfExcluding(IFeature feature, List excluded) => this.ComputeDirectionOfExcludingOperation(feature, excluded); /// - /// If a Feature has no declaredName or declaredShortName , then its - /// effective name is given by the effective name of the Feature returned by the namingFeature() - /// operation, if any. + /// If a Feature has no declaredName or declaredShortName, then its effective name is given by the + /// effective name of the Feature returned by the namingFeature() operation, if any. /// /// /// The expected @@ -1398,11 +1397,10 @@ bool Core.Features.IFeature.IsVariable /// /// A Feature is compatible with an otherType if it either directly or indirectly specializes the - /// otherType or if the otherType is also a Feature and all of the following are true. - ///
  1. Neither this Feature or the otherType have any - /// ownedFeatures.
  2. This Feature directly or indirectly redefines a - /// Feature that is also directly or indirectly redefined by the otherType.
  3. - ///
  4. This Feature can access the otherType.
+ /// otherType or if the otherType is also a Feature and all of the following are true.
  1. Neither + /// this Feature or the otherType have any ownedFeatures.
  2. This Feature directly or indirectly + /// redefines a Feature that is also directly or indirectly redefined by the otherType.
  3. This + /// Feature can access the otherType.
///
/// /// No documentation provided @@ -1570,8 +1568,8 @@ bool Core.Features.IFeature.IsVariable /// an owningRelationship, then return the string constructed by appending to the path of it's /// owningRelationship the character / followed by the string representation of its position in the list /// of ownedRelatedElements of the owningRelationship (indexed starting at 1). Otherwise, return the - /// empty string. (Note that this operation is overridden for Relationships - /// to use owningRelatedElement when appropriate.) + /// empty string.(Note that this operation is overridden for Relationships to use owningRelatedElement + /// when appropriate.) /// /// /// The expected @@ -1625,13 +1623,12 @@ bool Core.Features.IFeature.IsVariable /// /// Return a subset of memberships, removing those Memberships whose memberElements are Features and for - /// which either of the following two conditions holds:
    - ///
  1. The memberElement of the Membership is included in redefined Features of another - /// Membership in memberships.
  2. One of the redefined Features of the - /// Membership is a directly redefinedFeature of an ownedFeature of this Type.
  3. - ///
For this purpose, the redefined Features of a Membership - /// whose memberElement is a Feature includes the memberElement and all Features directly or indirectly - /// redefined by the memberElement. + /// which either of the following two conditions holds:
  1. The memberElement of the Membership is + /// included in redefined Features of another Membership in memberships.
  2. One of the redefined + /// Features of the Membership is a directly redefinedFeature of an ownedFeature of this + /// Type.
For this purpose, the redefined Features of a Membership whose memberElement is a + /// Feature includes the memberElement and all Features directly or indirectly redefined by the + /// memberElement. ///
/// /// No documentation provided @@ -1758,11 +1755,11 @@ bool Core.Features.IFeature.IsVariable /// Return the Features used to determine the types of this Feature (other than this Feature itself). If /// this Feature is not conjugated, then the typingFeatures consist of all subsetted Features, except /// from CrossSubsetting, and the last chainingFeature (if any). If this Feature is conjugated, then the - /// typingFeatures are only its originalType (if the originalType is a Feature). - /// Note. CrossSubsetting is excluded from the determination of the type of a - /// Feature in order to avoid circularity in the construction of implied CrossSubsetting relationships. - /// The validateFeatureCrossFeatureType requires that the crossFeature of a Feature have the same type - /// as the Feature. + /// typingFeatures are only its originalType (if the originalType is a Feature).Note. + /// CrossSubsetting is excluded from the determination of the type of a Feature in order to avoid + /// circularity in the construction of implied CrossSubsetting relationships. The + /// validateFeatureCrossFeatureType requires that the crossFeature of a Feature have the same type as + /// the Feature. /// /// /// The expected collection of diff --git a/SysML2.NET/Core/AutoGenPoco/Specialization.cs b/SysML2.NET/Core/AutoGenPoco/Specialization.cs index abf11e65b..e2aa2a6de 100644 --- a/SysML2.NET/Core/AutoGenPoco/Specialization.cs +++ b/SysML2.NET/Core/AutoGenPoco/Specialization.cs @@ -396,8 +396,8 @@ List Root.Elements.IRelationship.Target /// an owningRelationship, then return the string constructed by appending to the path of it's /// owningRelationship the character / followed by the string representation of its position in the list /// of ownedRelatedElements of the owningRelationship (indexed starting at 1). Otherwise, return the - /// empty string. (Note that this operation is overridden for Relationships - /// to use owningRelatedElement when appropriate.) + /// empty string.(Note that this operation is overridden for Relationships to use owningRelatedElement + /// when appropriate.) /// /// /// The expected diff --git a/SysML2.NET/Core/AutoGenPoco/StakeholderMembership.cs b/SysML2.NET/Core/AutoGenPoco/StakeholderMembership.cs index 91deb9d03..7f9a10c98 100644 --- a/SysML2.NET/Core/AutoGenPoco/StakeholderMembership.cs +++ b/SysML2.NET/Core/AutoGenPoco/StakeholderMembership.cs @@ -539,8 +539,8 @@ List Root.Elements.IRelationship.Target /// an owningRelationship, then return the string constructed by appending to the path of it's /// owningRelationship the character / followed by the string representation of its position in the list /// of ownedRelatedElements of the owningRelationship (indexed starting at 1). Otherwise, return the - /// empty string. (Note that this operation is overridden for Relationships - /// to use owningRelatedElement when appropriate.) + /// empty string.(Note that this operation is overridden for Relationships to use owningRelatedElement + /// when appropriate.) /// /// /// The expected diff --git a/SysML2.NET/Core/AutoGenPoco/StateDefinition.cs b/SysML2.NET/Core/AutoGenPoco/StateDefinition.cs index d56861782..bc0e69f6f 100644 --- a/SysML2.NET/Core/AutoGenPoco/StateDefinition.cs +++ b/SysML2.NET/Core/AutoGenPoco/StateDefinition.cs @@ -64,9 +64,9 @@ namespace SysML2.NET.Core.POCO.Systems.States /// /// A StateDefinition is the Definition of the Behavior of a system or part of a system in a certain - /// state condition. A StateDefinition may be related to up to three of its - /// ownedFeatures by StateBehaviorMembership Relationships, all of different kinds, corresponding to the - /// entry, do and exit actions of the StateDefinition. + /// state condition.A StateDefinition may be related to up to three of its ownedFeatures by + /// StateBehaviorMembership Relationships, all of different kinds, corresponding to the entry, do and + /// exit actions of the StateDefinition. /// [Class(xmiId: "_19_0_2_12e503d9_1575587534200_898246_600", isAbstract: false, isFinalSpecialization: false, isActive: false)] [GeneratedCode("SysML2.NET", "latest")] @@ -319,11 +319,11 @@ public StateDefinition() /// /// Whether all things that meet the classification conditions of this Type must be classified by the - /// Type. (A Type gives conditions that must be met by whatever it - /// classifies, but when isSufficient is false, things may meet those conditions but still not be - /// classified by the Type. For example, a Type Car that is not sufficient could require everything it - /// classifies to have four wheels, but not all four wheeled things would classify as cars. However, if - /// the Type Car were sufficient, it would classify all four-wheeled things.) + /// Type.(A Type gives conditions that must be met by whatever it classifies, but when isSufficient + /// is false, things may meet those conditions but still not be classified by the Type. For example, a + /// Type Car that is not sufficient could require everything it classifies to have four wheels, but not + /// all four wheeled things would classify as cars. However, if the Type Car were sufficient, it would + /// classify all four-wheeled things.) /// [Property(xmiId: "_18_5_3_b9102da_1564072709069_937523_30797", aggregation: AggregationKind.None, lowerValue: 1, upperValue: 1, isOrdered: false, isReadOnly: false, isDerived: false, isDerivedUnion: false, isUnique: true, defaultValue: "false")] [Implements(implementation: "IType.IsSufficient")] @@ -601,7 +601,7 @@ public StateDefinition() public List ownedMembership => this.ComputeOwnedMembership(); /// - /// The MetadataUsages that are ownedUsages of this Definition. + /// The MetadataUsages that are ownedMembers of this Definition. /// [Property(xmiId: "_19_0_4_12e503d9_1661488358064_457109_2881", aggregation: AggregationKind.None, lowerValue: 0, upperValue: int.MaxValue, isOrdered: true, isReadOnly: false, isDerived: true, isDerivedUnion: false, isUnique: true, defaultValue: null)] [SubsettedProperty(propertyName: "_19_0_2_12e503d9_1591482567975_649284_3005")] @@ -1094,8 +1094,8 @@ public StateDefinition() /// an owningRelationship, then return the string constructed by appending to the path of it's /// owningRelationship the character / followed by the string representation of its position in the list /// of ownedRelatedElements of the owningRelationship (indexed starting at 1). Otherwise, return the - /// empty string. (Note that this operation is overridden for Relationships - /// to use owningRelatedElement when appropriate.) + /// empty string.(Note that this operation is overridden for Relationships to use owningRelatedElement + /// when appropriate.) /// /// /// The expected @@ -1117,13 +1117,12 @@ public StateDefinition() /// /// Return a subset of memberships, removing those Memberships whose memberElements are Features and for - /// which either of the following two conditions holds:
    - ///
  1. The memberElement of the Membership is included in redefined Features of another - /// Membership in memberships.
  2. One of the redefined Features of the - /// Membership is a directly redefinedFeature of an ownedFeature of this Type.
  3. - ///
For this purpose, the redefined Features of a Membership - /// whose memberElement is a Feature includes the memberElement and all Features directly or indirectly - /// redefined by the memberElement. + /// which either of the following two conditions holds:
  1. The memberElement of the Membership is + /// included in redefined Features of another Membership in memberships.
  2. One of the redefined + /// Features of the Membership is a directly redefinedFeature of an ownedFeature of this + /// Type.
For this purpose, the redefined Features of a Membership whose memberElement is a + /// Feature includes the memberElement and all Features directly or indirectly redefined by the + /// memberElement. ///
/// /// No documentation provided diff --git a/SysML2.NET/Core/AutoGenPoco/StateSubactionMembership.cs b/SysML2.NET/Core/AutoGenPoco/StateSubactionMembership.cs index 5c8ab9c4c..15fd8643a 100644 --- a/SysML2.NET/Core/AutoGenPoco/StateSubactionMembership.cs +++ b/SysML2.NET/Core/AutoGenPoco/StateSubactionMembership.cs @@ -527,8 +527,8 @@ List Root.Elements.IRelationship.Target /// an owningRelationship, then return the string constructed by appending to the path of it's /// owningRelationship the character / followed by the string representation of its position in the list /// of ownedRelatedElements of the owningRelationship (indexed starting at 1). Otherwise, return the - /// empty string. (Note that this operation is overridden for Relationships - /// to use owningRelatedElement when appropriate.) + /// empty string.(Note that this operation is overridden for Relationships to use owningRelatedElement + /// when appropriate.) /// /// /// The expected diff --git a/SysML2.NET/Core/AutoGenPoco/StateUsage.cs b/SysML2.NET/Core/AutoGenPoco/StateUsage.cs index 68c91e1cd..0342483aa 100644 --- a/SysML2.NET/Core/AutoGenPoco/StateUsage.cs +++ b/SysML2.NET/Core/AutoGenPoco/StateUsage.cs @@ -67,10 +67,9 @@ namespace SysML2.NET.Core.POCO.Systems.States /// /// A StateUsage is an ActionUsage that is nominally the Usage of a StateDefinition. However, other - /// kinds of kernel Behaviors are also allowed as types, to permit use of Behaviors - /// A StateUsage may be related to up to three of its ownedFeatures by StateSubactionMembership - /// Relationships, all of different kinds, corresponding to the entry, do and exit actions of the - /// StateUsage. + /// kinds of kernel Behaviors are also allowed as types, to permit use of BehaviorsA StateUsage may be + /// related to up to three of its ownedFeatures by StateSubactionMembership Relationships, all of + /// different kinds, corresponding to the entry, do and exit actions of the StateUsage. /// [Class(xmiId: "_19_0_2_12e503d9_1575587557729_586912_651", isAbstract: false, isFinalSpecialization: false, isActive: false)] [GeneratedCode("SysML2.NET", "latest")] @@ -471,11 +470,11 @@ public StateUsage() /// /// Whether all things that meet the classification conditions of this Type must be classified by the - /// Type. (A Type gives conditions that must be met by whatever it - /// classifies, but when isSufficient is false, things may meet those conditions but still not be - /// classified by the Type. For example, a Type Car that is not sufficient could require everything it - /// classifies to have four wheels, but not all four wheeled things would classify as cars. However, if - /// the Type Car were sufficient, it would classify all four-wheeled things.) + /// Type.(A Type gives conditions that must be met by whatever it classifies, but when isSufficient + /// is false, things may meet those conditions but still not be classified by the Type. For example, a + /// Type Car that is not sufficient could require everything it classifies to have four wheels, but not + /// all four wheeled things would classify as cars. However, if the Type Car were sufficient, it would + /// classify all four-wheeled things.) /// [Property(xmiId: "_18_5_3_b9102da_1564072709069_937523_30797", aggregation: AggregationKind.None, lowerValue: 1, upperValue: 1, isOrdered: false, isReadOnly: false, isDerived: false, isDerivedUnion: false, isUnique: true, defaultValue: "false")] [Implements(implementation: "IType.IsSufficient")] @@ -513,9 +512,9 @@ bool Core.Features.IFeature.IsVariable /// Whether this Usage may be time varying (that is, whether it is featured by the snapshots of its /// owningType, rather than being featured by the owningType itself). However, if isConstant is also /// true, then the value of the Usage is nevertheless constant over the entire duration of an instance - /// of its owningType (that is, it has the same value on all snapshots). The - /// property mayTimeVary redefines the KerML property Feature::isVariable, making it derived. The - /// property isConstant is inherited from Feature. + /// of its owningType (that is, it has the same value on all snapshots).The property mayTimeVary + /// redefines the KerML property Feature::isVariable, making it derived. The property isConstant is + /// inherited from Feature. /// [Property(xmiId: "_2022x_2_12e503d9_1737227200362_771035_69", aggregation: AggregationKind.None, lowerValue: 1, upperValue: 1, isOrdered: false, isReadOnly: false, isDerived: true, isDerivedUnion: false, isUnique: true, defaultValue: null)] [RedefinedProperty(propertyName: "_2022x_2_12e503d9_1725998273002_23711_212")] @@ -616,8 +615,8 @@ bool Core.Features.IFeature.IsVariable /// /// The ConnectorAsUsages that are nestedUsages of this Usage. Note that this list includes - /// BindingConnectorAsUsages, SuccessionAsUsages, and FlowConnectionUsages because these are - /// ConnectorAsUsages even though they are not ConnectionUsages. + /// BindingConnectorAsUsages, SuccessionAsUsages, and FlowUsages because these are ConnectorAsUsages + /// even though they are not ConnectionUsages. /// [Property(xmiId: "_19_0_2_12e503d9_1591479754895_422988_1242", aggregation: AggregationKind.None, lowerValue: 0, upperValue: int.MaxValue, isOrdered: true, isReadOnly: false, isDerived: true, isDerivedUnion: false, isUnique: true, defaultValue: null)] [SubsettedProperty(propertyName: "_18_5_3_12e503d9_1565472757327_162097_21259")] @@ -665,7 +664,7 @@ bool Core.Features.IFeature.IsVariable public List nestedItem => this.ComputeNestedItem(); /// - /// The MetadataUsages that are nestedUsages of this of this Usage. + /// The MetadataUsages that are ownedMembers of this of this Usage. /// [Property(xmiId: "_19_0_4_12e503d9_1661488589862_120785_2970", aggregation: AggregationKind.None, lowerValue: 0, upperValue: int.MaxValue, isOrdered: true, isReadOnly: false, isDerived: true, isDerivedUnion: false, isUnique: true, defaultValue: null)] [SubsettedProperty(propertyName: "_19_0_2_12e503d9_1591482421103_284620_2978")] @@ -1295,9 +1294,8 @@ bool Core.Features.IFeature.IsVariable public FeatureDirectionKind? DirectionOfExcluding(IFeature feature, List excluded) => this.ComputeDirectionOfExcludingOperation(feature, excluded); /// - /// If a Feature has no declaredName or declaredShortName , then its - /// effective name is given by the effective name of the Feature returned by the namingFeature() - /// operation, if any. + /// If a Feature has no declaredName or declaredShortName, then its effective name is given by the + /// effective name of the Feature returned by the namingFeature() operation, if any. /// /// /// The expected @@ -1422,11 +1420,10 @@ bool Core.Features.IFeature.IsVariable /// /// A Feature is compatible with an otherType if it either directly or indirectly specializes the - /// otherType or if the otherType is also a Feature and all of the following are true. - ///
  1. Neither this Feature or the otherType have any - /// ownedFeatures.
  2. This Feature directly or indirectly redefines a - /// Feature that is also directly or indirectly redefined by the otherType.
  3. - ///
  4. This Feature can access the otherType.
+ /// otherType or if the otherType is also a Feature and all of the following are true.
  1. Neither + /// this Feature or the otherType have any ownedFeatures.
  2. This Feature directly or indirectly + /// redefines a Feature that is also directly or indirectly redefined by the otherType.
  3. This + /// Feature can access the otherType.
///
/// /// No documentation provided @@ -1608,8 +1605,8 @@ bool Core.Features.IFeature.IsVariable /// an owningRelationship, then return the string constructed by appending to the path of it's /// owningRelationship the character / followed by the string representation of its position in the list /// of ownedRelatedElements of the owningRelationship (indexed starting at 1). Otherwise, return the - /// empty string. (Note that this operation is overridden for Relationships - /// to use owningRelatedElement when appropriate.) + /// empty string.(Note that this operation is overridden for Relationships to use owningRelatedElement + /// when appropriate.) /// /// /// The expected @@ -1663,13 +1660,12 @@ bool Core.Features.IFeature.IsVariable /// /// Return a subset of memberships, removing those Memberships whose memberElements are Features and for - /// which either of the following two conditions holds:
    - ///
  1. The memberElement of the Membership is included in redefined Features of another - /// Membership in memberships.
  2. One of the redefined Features of the - /// Membership is a directly redefinedFeature of an ownedFeature of this Type.
  3. - ///
For this purpose, the redefined Features of a Membership - /// whose memberElement is a Feature includes the memberElement and all Features directly or indirectly - /// redefined by the memberElement. + /// which either of the following two conditions holds:
  1. The memberElement of the Membership is + /// included in redefined Features of another Membership in memberships.
  2. One of the redefined + /// Features of the Membership is a directly redefinedFeature of an ownedFeature of this + /// Type.
For this purpose, the redefined Features of a Membership whose memberElement is a + /// Feature includes the memberElement and all Features directly or indirectly redefined by the + /// memberElement. ///
/// /// No documentation provided @@ -1796,11 +1792,11 @@ bool Core.Features.IFeature.IsVariable /// Return the Features used to determine the types of this Feature (other than this Feature itself). If /// this Feature is not conjugated, then the typingFeatures consist of all subsetted Features, except /// from CrossSubsetting, and the last chainingFeature (if any). If this Feature is conjugated, then the - /// typingFeatures are only its originalType (if the originalType is a Feature). - /// Note. CrossSubsetting is excluded from the determination of the type of a - /// Feature in order to avoid circularity in the construction of implied CrossSubsetting relationships. - /// The validateFeatureCrossFeatureType requires that the crossFeature of a Feature have the same type - /// as the Feature. + /// typingFeatures are only its originalType (if the originalType is a Feature).Note. + /// CrossSubsetting is excluded from the determination of the type of a Feature in order to avoid + /// circularity in the construction of implied CrossSubsetting relationships. The + /// validateFeatureCrossFeatureType requires that the crossFeature of a Feature have the same type as + /// the Feature. /// /// /// The expected collection of diff --git a/SysML2.NET/Core/AutoGenPoco/Step.cs b/SysML2.NET/Core/AutoGenPoco/Step.cs index 8b850c533..7920bd367 100644 --- a/SysML2.NET/Core/AutoGenPoco/Step.cs +++ b/SysML2.NET/Core/AutoGenPoco/Step.cs @@ -354,11 +354,11 @@ public Step() /// /// Whether all things that meet the classification conditions of this Type must be classified by the - /// Type. (A Type gives conditions that must be met by whatever it - /// classifies, but when isSufficient is false, things may meet those conditions but still not be - /// classified by the Type. For example, a Type Car that is not sufficient could require everything it - /// classifies to have four wheels, but not all four wheeled things would classify as cars. However, if - /// the Type Car were sufficient, it would classify all four-wheeled things.) + /// Type.(A Type gives conditions that must be met by whatever it classifies, but when isSufficient + /// is false, things may meet those conditions but still not be classified by the Type. For example, a + /// Type Car that is not sufficient could require everything it classifies to have four wheels, but not + /// all four wheeled things would classify as cars. However, if the Type Car were sufficient, it would + /// classify all four-wheeled things.) /// [Property(xmiId: "_18_5_3_b9102da_1564072709069_937523_30797", aggregation: AggregationKind.None, lowerValue: 1, upperValue: 1, isOrdered: false, isReadOnly: false, isDerived: false, isDerivedUnion: false, isUnique: true, defaultValue: "false")] [Implements(implementation: "IType.IsSufficient")] @@ -850,9 +850,8 @@ public Step() public FeatureDirectionKind? DirectionOfExcluding(IFeature feature, List excluded) => this.ComputeDirectionOfExcludingOperation(feature, excluded); /// - /// If a Feature has no declaredName or declaredShortName , then its - /// effective name is given by the effective name of the Feature returned by the namingFeature() - /// operation, if any. + /// If a Feature has no declaredName or declaredShortName, then its effective name is given by the + /// effective name of the Feature returned by the namingFeature() operation, if any. /// /// /// The expected @@ -957,11 +956,10 @@ public Step() /// /// A Feature is compatible with an otherType if it either directly or indirectly specializes the - /// otherType or if the otherType is also a Feature and all of the following are true. - ///
  1. Neither this Feature or the otherType have any - /// ownedFeatures.
  2. This Feature directly or indirectly redefines a - /// Feature that is also directly or indirectly redefined by the otherType.
  3. - ///
  4. This Feature can access the otherType.
+ /// otherType or if the otherType is also a Feature and all of the following are true.
  1. Neither + /// this Feature or the otherType have any ownedFeatures.
  2. This Feature directly or indirectly + /// redefines a Feature that is also directly or indirectly redefined by the otherType.
  3. This + /// Feature can access the otherType.
///
/// /// No documentation provided @@ -1110,8 +1108,8 @@ public Step() /// an owningRelationship, then return the string constructed by appending to the path of it's /// owningRelationship the character / followed by the string representation of its position in the list /// of ownedRelatedElements of the owningRelationship (indexed starting at 1). Otherwise, return the - /// empty string. (Note that this operation is overridden for Relationships - /// to use owningRelatedElement when appropriate.) + /// empty string.(Note that this operation is overridden for Relationships to use owningRelatedElement + /// when appropriate.) /// /// /// The expected @@ -1156,13 +1154,12 @@ public Step() /// /// Return a subset of memberships, removing those Memberships whose memberElements are Features and for - /// which either of the following two conditions holds:
    - ///
  1. The memberElement of the Membership is included in redefined Features of another - /// Membership in memberships.
  2. One of the redefined Features of the - /// Membership is a directly redefinedFeature of an ownedFeature of this Type.
  3. - ///
For this purpose, the redefined Features of a Membership - /// whose memberElement is a Feature includes the memberElement and all Features directly or indirectly - /// redefined by the memberElement. + /// which either of the following two conditions holds:
  1. The memberElement of the Membership is + /// included in redefined Features of another Membership in memberships.
  2. One of the redefined + /// Features of the Membership is a directly redefinedFeature of an ownedFeature of this + /// Type.
For this purpose, the redefined Features of a Membership whose memberElement is a + /// Feature includes the memberElement and all Features directly or indirectly redefined by the + /// memberElement. ///
/// /// No documentation provided @@ -1289,11 +1286,11 @@ public Step() /// Return the Features used to determine the types of this Feature (other than this Feature itself). If /// this Feature is not conjugated, then the typingFeatures consist of all subsetted Features, except /// from CrossSubsetting, and the last chainingFeature (if any). If this Feature is conjugated, then the - /// typingFeatures are only its originalType (if the originalType is a Feature). - /// Note. CrossSubsetting is excluded from the determination of the type of a - /// Feature in order to avoid circularity in the construction of implied CrossSubsetting relationships. - /// The validateFeatureCrossFeatureType requires that the crossFeature of a Feature have the same type - /// as the Feature. + /// typingFeatures are only its originalType (if the originalType is a Feature).Note. + /// CrossSubsetting is excluded from the determination of the type of a Feature in order to avoid + /// circularity in the construction of implied CrossSubsetting relationships. The + /// validateFeatureCrossFeatureType requires that the crossFeature of a Feature have the same type as + /// the Feature. /// /// /// The expected collection of diff --git a/SysML2.NET/Core/AutoGenPoco/Structure.cs b/SysML2.NET/Core/AutoGenPoco/Structure.cs index 1897edc70..371c09d03 100644 --- a/SysML2.NET/Core/AutoGenPoco/Structure.cs +++ b/SysML2.NET/Core/AutoGenPoco/Structure.cs @@ -236,11 +236,11 @@ public Structure() /// /// Whether all things that meet the classification conditions of this Type must be classified by the - /// Type. (A Type gives conditions that must be met by whatever it - /// classifies, but when isSufficient is false, things may meet those conditions but still not be - /// classified by the Type. For example, a Type Car that is not sufficient could require everything it - /// classifies to have four wheels, but not all four wheeled things would classify as cars. However, if - /// the Type Car were sufficient, it would classify all four-wheeled things.) + /// Type.(A Type gives conditions that must be met by whatever it classifies, but when isSufficient + /// is false, things may meet those conditions but still not be classified by the Type. For example, a + /// Type Car that is not sufficient could require everything it classifies to have four wheels, but not + /// all four wheeled things would classify as cars. However, if the Type Car were sufficient, it would + /// classify all four-wheeled things.) /// [Property(xmiId: "_18_5_3_b9102da_1564072709069_937523_30797", aggregation: AggregationKind.None, lowerValue: 1, upperValue: 1, isOrdered: false, isReadOnly: false, isDerived: false, isDerivedUnion: false, isUnique: true, defaultValue: "false")] [Implements(implementation: "IType.IsSufficient")] @@ -732,8 +732,8 @@ public Structure() /// an owningRelationship, then return the string constructed by appending to the path of it's /// owningRelationship the character / followed by the string representation of its position in the list /// of ownedRelatedElements of the owningRelationship (indexed starting at 1). Otherwise, return the - /// empty string. (Note that this operation is overridden for Relationships - /// to use owningRelatedElement when appropriate.) + /// empty string.(Note that this operation is overridden for Relationships to use owningRelatedElement + /// when appropriate.) /// /// /// The expected @@ -755,13 +755,12 @@ public Structure() /// /// Return a subset of memberships, removing those Memberships whose memberElements are Features and for - /// which either of the following two conditions holds:
    - ///
  1. The memberElement of the Membership is included in redefined Features of another - /// Membership in memberships.
  2. One of the redefined Features of the - /// Membership is a directly redefinedFeature of an ownedFeature of this Type.
  3. - ///
For this purpose, the redefined Features of a Membership - /// whose memberElement is a Feature includes the memberElement and all Features directly or indirectly - /// redefined by the memberElement. + /// which either of the following two conditions holds:
  1. The memberElement of the Membership is + /// included in redefined Features of another Membership in memberships.
  2. One of the redefined + /// Features of the Membership is a directly redefinedFeature of an ownedFeature of this + /// Type.
For this purpose, the redefined Features of a Membership whose memberElement is a + /// Feature includes the memberElement and all Features directly or indirectly redefined by the + /// memberElement. ///
/// /// No documentation provided diff --git a/SysML2.NET/Core/AutoGenPoco/Subclassification.cs b/SysML2.NET/Core/AutoGenPoco/Subclassification.cs index 5f07a7c11..b29538302 100644 --- a/SysML2.NET/Core/AutoGenPoco/Subclassification.cs +++ b/SysML2.NET/Core/AutoGenPoco/Subclassification.cs @@ -443,8 +443,8 @@ List Root.Elements.IRelationship.Target /// an owningRelationship, then return the string constructed by appending to the path of it's /// owningRelationship the character / followed by the string representation of its position in the list /// of ownedRelatedElements of the owningRelationship (indexed starting at 1). Otherwise, return the - /// empty string. (Note that this operation is overridden for Relationships - /// to use owningRelatedElement when appropriate.) + /// empty string.(Note that this operation is overridden for Relationships to use owningRelatedElement + /// when appropriate.) /// /// /// The expected diff --git a/SysML2.NET/Core/AutoGenPoco/SubjectMembership.cs b/SysML2.NET/Core/AutoGenPoco/SubjectMembership.cs index dc759f18a..3f22188f1 100644 --- a/SysML2.NET/Core/AutoGenPoco/SubjectMembership.cs +++ b/SysML2.NET/Core/AutoGenPoco/SubjectMembership.cs @@ -539,8 +539,8 @@ List Root.Elements.IRelationship.Target /// an owningRelationship, then return the string constructed by appending to the path of it's /// owningRelationship the character / followed by the string representation of its position in the list /// of ownedRelatedElements of the owningRelationship (indexed starting at 1). Otherwise, return the - /// empty string. (Note that this operation is overridden for Relationships - /// to use owningRelatedElement when appropriate.) + /// empty string.(Note that this operation is overridden for Relationships to use owningRelatedElement + /// when appropriate.) /// /// /// The expected diff --git a/SysML2.NET/Core/AutoGenPoco/Subsetting.cs b/SysML2.NET/Core/AutoGenPoco/Subsetting.cs index fbd5131e8..87cbf2173 100644 --- a/SysML2.NET/Core/AutoGenPoco/Subsetting.cs +++ b/SysML2.NET/Core/AutoGenPoco/Subsetting.cs @@ -448,8 +448,8 @@ List Root.Elements.IRelationship.Target /// an owningRelationship, then return the string constructed by appending to the path of it's /// owningRelationship the character / followed by the string representation of its position in the list /// of ownedRelatedElements of the owningRelationship (indexed starting at 1). Otherwise, return the - /// empty string. (Note that this operation is overridden for Relationships - /// to use owningRelatedElement when appropriate.) + /// empty string.(Note that this operation is overridden for Relationships to use owningRelatedElement + /// when appropriate.) /// /// /// The expected diff --git a/SysML2.NET/Core/AutoGenPoco/Succession.cs b/SysML2.NET/Core/AutoGenPoco/Succession.cs index 4aa92dedc..d7c6602f7 100644 --- a/SysML2.NET/Core/AutoGenPoco/Succession.cs +++ b/SysML2.NET/Core/AutoGenPoco/Succession.cs @@ -383,11 +383,11 @@ public Succession() /// /// Whether all things that meet the classification conditions of this Type must be classified by the - /// Type. (A Type gives conditions that must be met by whatever it - /// classifies, but when isSufficient is false, things may meet those conditions but still not be - /// classified by the Type. For example, a Type Car that is not sufficient could require everything it - /// classifies to have four wheels, but not all four wheeled things would classify as cars. However, if - /// the Type Car were sufficient, it would classify all four-wheeled things.) + /// Type.(A Type gives conditions that must be met by whatever it classifies, but when isSufficient + /// is false, things may meet those conditions but still not be classified by the Type. For example, a + /// Type Car that is not sufficient could require everything it classifies to have four wheels, but not + /// all four wheeled things would classify as cars. However, if the Type Car were sufficient, it would + /// classify all four-wheeled things.) /// [Property(xmiId: "_18_5_3_b9102da_1564072709069_937523_30797", aggregation: AggregationKind.None, lowerValue: 1, upperValue: 1, isOrdered: false, isReadOnly: false, isDerived: false, isDerivedUnion: false, isUnique: true, defaultValue: "false")] [Implements(implementation: "IType.IsSufficient")] @@ -956,9 +956,8 @@ List Root.Elements.IRelationship.Target public FeatureDirectionKind? DirectionOfExcluding(IFeature feature, List excluded) => this.ComputeDirectionOfExcludingOperation(feature, excluded); /// - /// If a Feature has no declaredName or declaredShortName , then its - /// effective name is given by the effective name of the Feature returned by the namingFeature() - /// operation, if any. + /// If a Feature has no declaredName or declaredShortName, then its effective name is given by the + /// effective name of the Feature returned by the namingFeature() operation, if any. /// /// /// The expected @@ -1063,11 +1062,10 @@ List Root.Elements.IRelationship.Target /// /// A Feature is compatible with an otherType if it either directly or indirectly specializes the - /// otherType or if the otherType is also a Feature and all of the following are true. - ///
  1. Neither this Feature or the otherType have any - /// ownedFeatures.
  2. This Feature directly or indirectly redefines a - /// Feature that is also directly or indirectly redefined by the otherType.
  3. - ///
  4. This Feature can access the otherType.
+ /// otherType or if the otherType is also a Feature and all of the following are true.
  1. Neither + /// this Feature or the otherType have any ownedFeatures.
  2. This Feature directly or indirectly + /// redefines a Feature that is also directly or indirectly redefined by the otherType.
  3. This + /// Feature can access the otherType.
///
/// /// No documentation provided @@ -1225,8 +1223,8 @@ List Root.Elements.IRelationship.Target /// an owningRelationship, then return the string constructed by appending to the path of it's /// owningRelationship the character / followed by the string representation of its position in the list /// of ownedRelatedElements of the owningRelationship (indexed starting at 1). Otherwise, return the - /// empty string. (Note that this operation is overridden for Relationships - /// to use owningRelatedElement when appropriate.) + /// empty string.(Note that this operation is overridden for Relationships to use owningRelatedElement + /// when appropriate.) /// /// /// The expected @@ -1282,13 +1280,12 @@ List Root.Elements.IRelationship.Target /// /// Return a subset of memberships, removing those Memberships whose memberElements are Features and for - /// which either of the following two conditions holds:
    - ///
  1. The memberElement of the Membership is included in redefined Features of another - /// Membership in memberships.
  2. One of the redefined Features of the - /// Membership is a directly redefinedFeature of an ownedFeature of this Type.
  3. - ///
For this purpose, the redefined Features of a Membership - /// whose memberElement is a Feature includes the memberElement and all Features directly or indirectly - /// redefined by the memberElement. + /// which either of the following two conditions holds:
  1. The memberElement of the Membership is + /// included in redefined Features of another Membership in memberships.
  2. One of the redefined + /// Features of the Membership is a directly redefinedFeature of an ownedFeature of this + /// Type.
For this purpose, the redefined Features of a Membership whose memberElement is a + /// Feature includes the memberElement and all Features directly or indirectly redefined by the + /// memberElement. ///
/// /// No documentation provided @@ -1415,11 +1412,11 @@ List Root.Elements.IRelationship.Target /// Return the Features used to determine the types of this Feature (other than this Feature itself). If /// this Feature is not conjugated, then the typingFeatures consist of all subsetted Features, except /// from CrossSubsetting, and the last chainingFeature (if any). If this Feature is conjugated, then the - /// typingFeatures are only its originalType (if the originalType is a Feature). - /// Note. CrossSubsetting is excluded from the determination of the type of a - /// Feature in order to avoid circularity in the construction of implied CrossSubsetting relationships. - /// The validateFeatureCrossFeatureType requires that the crossFeature of a Feature have the same type - /// as the Feature. + /// typingFeatures are only its originalType (if the originalType is a Feature).Note. + /// CrossSubsetting is excluded from the determination of the type of a Feature in order to avoid + /// circularity in the construction of implied CrossSubsetting relationships. The + /// validateFeatureCrossFeatureType requires that the crossFeature of a Feature have the same type as + /// the Feature. /// /// /// The expected collection of diff --git a/SysML2.NET/Core/AutoGenPoco/SuccessionAsUsage.cs b/SysML2.NET/Core/AutoGenPoco/SuccessionAsUsage.cs index 97df38e78..7d36aaf17 100644 --- a/SysML2.NET/Core/AutoGenPoco/SuccessionAsUsage.cs +++ b/SysML2.NET/Core/AutoGenPoco/SuccessionAsUsage.cs @@ -431,11 +431,11 @@ public SuccessionAsUsage() /// /// Whether all things that meet the classification conditions of this Type must be classified by the - /// Type. (A Type gives conditions that must be met by whatever it - /// classifies, but when isSufficient is false, things may meet those conditions but still not be - /// classified by the Type. For example, a Type Car that is not sufficient could require everything it - /// classifies to have four wheels, but not all four wheeled things would classify as cars. However, if - /// the Type Car were sufficient, it would classify all four-wheeled things.) + /// Type.(A Type gives conditions that must be met by whatever it classifies, but when isSufficient + /// is false, things may meet those conditions but still not be classified by the Type. For example, a + /// Type Car that is not sufficient could require everything it classifies to have four wheels, but not + /// all four wheeled things would classify as cars. However, if the Type Car were sufficient, it would + /// classify all four-wheeled things.) /// [Property(xmiId: "_18_5_3_b9102da_1564072709069_937523_30797", aggregation: AggregationKind.None, lowerValue: 1, upperValue: 1, isOrdered: false, isReadOnly: false, isDerived: false, isDerivedUnion: false, isUnique: true, defaultValue: "false")] [Implements(implementation: "IType.IsSufficient")] @@ -473,9 +473,9 @@ bool Core.Features.IFeature.IsVariable /// Whether this Usage may be time varying (that is, whether it is featured by the snapshots of its /// owningType, rather than being featured by the owningType itself). However, if isConstant is also /// true, then the value of the Usage is nevertheless constant over the entire duration of an instance - /// of its owningType (that is, it has the same value on all snapshots). The - /// property mayTimeVary redefines the KerML property Feature::isVariable, making it derived. The - /// property isConstant is inherited from Feature. + /// of its owningType (that is, it has the same value on all snapshots).The property mayTimeVary + /// redefines the KerML property Feature::isVariable, making it derived. The property isConstant is + /// inherited from Feature. /// [Property(xmiId: "_2022x_2_12e503d9_1737227200362_771035_69", aggregation: AggregationKind.None, lowerValue: 1, upperValue: 1, isOrdered: false, isReadOnly: false, isDerived: true, isDerivedUnion: false, isUnique: true, defaultValue: null)] [RedefinedProperty(propertyName: "_2022x_2_12e503d9_1725998273002_23711_212")] @@ -576,8 +576,8 @@ bool Core.Features.IFeature.IsVariable /// /// The ConnectorAsUsages that are nestedUsages of this Usage. Note that this list includes - /// BindingConnectorAsUsages, SuccessionAsUsages, and FlowConnectionUsages because these are - /// ConnectorAsUsages even though they are not ConnectionUsages. + /// BindingConnectorAsUsages, SuccessionAsUsages, and FlowUsages because these are ConnectorAsUsages + /// even though they are not ConnectionUsages. /// [Property(xmiId: "_19_0_2_12e503d9_1591479754895_422988_1242", aggregation: AggregationKind.None, lowerValue: 0, upperValue: int.MaxValue, isOrdered: true, isReadOnly: false, isDerived: true, isDerivedUnion: false, isUnique: true, defaultValue: null)] [SubsettedProperty(propertyName: "_18_5_3_12e503d9_1565472757327_162097_21259")] @@ -625,7 +625,7 @@ bool Core.Features.IFeature.IsVariable public List nestedItem => this.ComputeNestedItem(); /// - /// The MetadataUsages that are nestedUsages of this of this Usage. + /// The MetadataUsages that are ownedMembers of this of this Usage. /// [Property(xmiId: "_19_0_4_12e503d9_1661488589862_120785_2970", aggregation: AggregationKind.None, lowerValue: 0, upperValue: int.MaxValue, isOrdered: true, isReadOnly: false, isDerived: true, isDerivedUnion: false, isUnique: true, defaultValue: null)] [SubsettedProperty(propertyName: "_19_0_2_12e503d9_1591482421103_284620_2978")] @@ -1290,9 +1290,8 @@ List Root.Elements.IRelationship.Target public FeatureDirectionKind? DirectionOfExcluding(IFeature feature, List excluded) => this.ComputeDirectionOfExcludingOperation(feature, excluded); /// - /// If a Feature has no declaredName or declaredShortName , then its - /// effective name is given by the effective name of the Feature returned by the namingFeature() - /// operation, if any. + /// If a Feature has no declaredName or declaredShortName, then its effective name is given by the + /// effective name of the Feature returned by the namingFeature() operation, if any. /// /// /// The expected @@ -1397,11 +1396,10 @@ List Root.Elements.IRelationship.Target /// /// A Feature is compatible with an otherType if it either directly or indirectly specializes the - /// otherType or if the otherType is also a Feature and all of the following are true. - ///
  1. Neither this Feature or the otherType have any - /// ownedFeatures.
  2. This Feature directly or indirectly redefines a - /// Feature that is also directly or indirectly redefined by the otherType.
  3. - ///
  4. This Feature can access the otherType.
+ /// otherType or if the otherType is also a Feature and all of the following are true.
  1. Neither + /// this Feature or the otherType have any ownedFeatures.
  2. This Feature directly or indirectly + /// redefines a Feature that is also directly or indirectly redefined by the otherType.
  3. This + /// Feature can access the otherType.
///
/// /// No documentation provided @@ -1568,8 +1566,8 @@ List Root.Elements.IRelationship.Target /// an owningRelationship, then return the string constructed by appending to the path of it's /// owningRelationship the character / followed by the string representation of its position in the list /// of ownedRelatedElements of the owningRelationship (indexed starting at 1). Otherwise, return the - /// empty string. (Note that this operation is overridden for Relationships - /// to use owningRelatedElement when appropriate.) + /// empty string.(Note that this operation is overridden for Relationships to use owningRelatedElement + /// when appropriate.) /// /// /// The expected @@ -1634,13 +1632,12 @@ List Root.Elements.IRelationship.Target /// /// Return a subset of memberships, removing those Memberships whose memberElements are Features and for - /// which either of the following two conditions holds:
    - ///
  1. The memberElement of the Membership is included in redefined Features of another - /// Membership in memberships.
  2. One of the redefined Features of the - /// Membership is a directly redefinedFeature of an ownedFeature of this Type.
  3. - ///
For this purpose, the redefined Features of a Membership - /// whose memberElement is a Feature includes the memberElement and all Features directly or indirectly - /// redefined by the memberElement. + /// which either of the following two conditions holds:
  1. The memberElement of the Membership is + /// included in redefined Features of another Membership in memberships.
  2. One of the redefined + /// Features of the Membership is a directly redefinedFeature of an ownedFeature of this + /// Type.
For this purpose, the redefined Features of a Membership whose memberElement is a + /// Feature includes the memberElement and all Features directly or indirectly redefined by the + /// memberElement. ///
/// /// No documentation provided @@ -1767,11 +1764,11 @@ List Root.Elements.IRelationship.Target /// Return the Features used to determine the types of this Feature (other than this Feature itself). If /// this Feature is not conjugated, then the typingFeatures consist of all subsetted Features, except /// from CrossSubsetting, and the last chainingFeature (if any). If this Feature is conjugated, then the - /// typingFeatures are only its originalType (if the originalType is a Feature). - /// Note. CrossSubsetting is excluded from the determination of the type of a - /// Feature in order to avoid circularity in the construction of implied CrossSubsetting relationships. - /// The validateFeatureCrossFeatureType requires that the crossFeature of a Feature have the same type - /// as the Feature. + /// typingFeatures are only its originalType (if the originalType is a Feature).Note. + /// CrossSubsetting is excluded from the determination of the type of a Feature in order to avoid + /// circularity in the construction of implied CrossSubsetting relationships. The + /// validateFeatureCrossFeatureType requires that the crossFeature of a Feature have the same type as + /// the Feature. /// /// /// The expected collection of diff --git a/SysML2.NET/Core/AutoGenPoco/SuccessionFlow.cs b/SysML2.NET/Core/AutoGenPoco/SuccessionFlow.cs index 67e698277..ac25a9c1b 100644 --- a/SysML2.NET/Core/AutoGenPoco/SuccessionFlow.cs +++ b/SysML2.NET/Core/AutoGenPoco/SuccessionFlow.cs @@ -417,11 +417,11 @@ public SuccessionFlow() /// /// Whether all things that meet the classification conditions of this Type must be classified by the - /// Type. (A Type gives conditions that must be met by whatever it - /// classifies, but when isSufficient is false, things may meet those conditions but still not be - /// classified by the Type. For example, a Type Car that is not sufficient could require everything it - /// classifies to have four wheels, but not all four wheeled things would classify as cars. However, if - /// the Type Car were sufficient, it would classify all four-wheeled things.) + /// Type.(A Type gives conditions that must be met by whatever it classifies, but when isSufficient + /// is false, things may meet those conditions but still not be classified by the Type. For example, a + /// Type Car that is not sufficient could require everything it classifies to have four wheels, but not + /// all four wheeled things would classify as cars. However, if the Type Car were sufficient, it would + /// classify all four-wheeled things.) /// [Property(xmiId: "_18_5_3_b9102da_1564072709069_937523_30797", aggregation: AggregationKind.None, lowerValue: 1, upperValue: 1, isOrdered: false, isReadOnly: false, isDerived: false, isDerivedUnion: false, isUnique: true, defaultValue: "false")] [Implements(implementation: "IType.IsSufficient")] @@ -1030,9 +1030,8 @@ List Root.Elements.IRelationship.Target public FeatureDirectionKind? DirectionOfExcluding(IFeature feature, List excluded) => this.ComputeDirectionOfExcludingOperation(feature, excluded); /// - /// If a Feature has no declaredName or declaredShortName , then its - /// effective name is given by the effective name of the Feature returned by the namingFeature() - /// operation, if any. + /// If a Feature has no declaredName or declaredShortName, then its effective name is given by the + /// effective name of the Feature returned by the namingFeature() operation, if any. /// /// /// The expected @@ -1137,11 +1136,10 @@ List Root.Elements.IRelationship.Target /// /// A Feature is compatible with an otherType if it either directly or indirectly specializes the - /// otherType or if the otherType is also a Feature and all of the following are true. - ///
  1. Neither this Feature or the otherType have any - /// ownedFeatures.
  2. This Feature directly or indirectly redefines a - /// Feature that is also directly or indirectly redefined by the otherType.
  3. - ///
  4. This Feature can access the otherType.
+ /// otherType or if the otherType is also a Feature and all of the following are true.
  1. Neither + /// this Feature or the otherType have any ownedFeatures.
  2. This Feature directly or indirectly + /// redefines a Feature that is also directly or indirectly redefined by the otherType.
  3. This + /// Feature can access the otherType.
///
/// /// No documentation provided @@ -1299,8 +1297,8 @@ List Root.Elements.IRelationship.Target /// an owningRelationship, then return the string constructed by appending to the path of it's /// owningRelationship the character / followed by the string representation of its position in the list /// of ownedRelatedElements of the owningRelationship (indexed starting at 1). Otherwise, return the - /// empty string. (Note that this operation is overridden for Relationships - /// to use owningRelatedElement when appropriate.) + /// empty string.(Note that this operation is overridden for Relationships to use owningRelatedElement + /// when appropriate.) /// /// /// The expected @@ -1356,13 +1354,12 @@ List Root.Elements.IRelationship.Target /// /// Return a subset of memberships, removing those Memberships whose memberElements are Features and for - /// which either of the following two conditions holds:
    - ///
  1. The memberElement of the Membership is included in redefined Features of another - /// Membership in memberships.
  2. One of the redefined Features of the - /// Membership is a directly redefinedFeature of an ownedFeature of this Type.
  3. - ///
For this purpose, the redefined Features of a Membership - /// whose memberElement is a Feature includes the memberElement and all Features directly or indirectly - /// redefined by the memberElement. + /// which either of the following two conditions holds:
  1. The memberElement of the Membership is + /// included in redefined Features of another Membership in memberships.
  2. One of the redefined + /// Features of the Membership is a directly redefinedFeature of an ownedFeature of this + /// Type.
For this purpose, the redefined Features of a Membership whose memberElement is a + /// Feature includes the memberElement and all Features directly or indirectly redefined by the + /// memberElement. ///
/// /// No documentation provided @@ -1489,11 +1486,11 @@ List Root.Elements.IRelationship.Target /// Return the Features used to determine the types of this Feature (other than this Feature itself). If /// this Feature is not conjugated, then the typingFeatures consist of all subsetted Features, except /// from CrossSubsetting, and the last chainingFeature (if any). If this Feature is conjugated, then the - /// typingFeatures are only its originalType (if the originalType is a Feature). - /// Note. CrossSubsetting is excluded from the determination of the type of a - /// Feature in order to avoid circularity in the construction of implied CrossSubsetting relationships. - /// The validateFeatureCrossFeatureType requires that the crossFeature of a Feature have the same type - /// as the Feature. + /// typingFeatures are only its originalType (if the originalType is a Feature).Note. + /// CrossSubsetting is excluded from the determination of the type of a Feature in order to avoid + /// circularity in the construction of implied CrossSubsetting relationships. The + /// validateFeatureCrossFeatureType requires that the crossFeature of a Feature have the same type as + /// the Feature. /// /// /// The expected collection of diff --git a/SysML2.NET/Core/AutoGenPoco/SuccessionFlowUsage.cs b/SysML2.NET/Core/AutoGenPoco/SuccessionFlowUsage.cs index 013bbf05c..6fd161050 100644 --- a/SysML2.NET/Core/AutoGenPoco/SuccessionFlowUsage.cs +++ b/SysML2.NET/Core/AutoGenPoco/SuccessionFlowUsage.cs @@ -503,11 +503,11 @@ public SuccessionFlowUsage() /// /// Whether all things that meet the classification conditions of this Type must be classified by the - /// Type. (A Type gives conditions that must be met by whatever it - /// classifies, but when isSufficient is false, things may meet those conditions but still not be - /// classified by the Type. For example, a Type Car that is not sufficient could require everything it - /// classifies to have four wheels, but not all four wheeled things would classify as cars. However, if - /// the Type Car were sufficient, it would classify all four-wheeled things.) + /// Type.(A Type gives conditions that must be met by whatever it classifies, but when isSufficient + /// is false, things may meet those conditions but still not be classified by the Type. For example, a + /// Type Car that is not sufficient could require everything it classifies to have four wheels, but not + /// all four wheeled things would classify as cars. However, if the Type Car were sufficient, it would + /// classify all four-wheeled things.) /// [Property(xmiId: "_18_5_3_b9102da_1564072709069_937523_30797", aggregation: AggregationKind.None, lowerValue: 1, upperValue: 1, isOrdered: false, isReadOnly: false, isDerived: false, isDerivedUnion: false, isUnique: true, defaultValue: "false")] [Implements(implementation: "IType.IsSufficient")] @@ -545,9 +545,9 @@ bool Core.Features.IFeature.IsVariable /// Whether this Usage may be time varying (that is, whether it is featured by the snapshots of its /// owningType, rather than being featured by the owningType itself). However, if isConstant is also /// true, then the value of the Usage is nevertheless constant over the entire duration of an instance - /// of its owningType (that is, it has the same value on all snapshots). The - /// property mayTimeVary redefines the KerML property Feature::isVariable, making it derived. The - /// property isConstant is inherited from Feature. + /// of its owningType (that is, it has the same value on all snapshots).The property mayTimeVary + /// redefines the KerML property Feature::isVariable, making it derived. The property isConstant is + /// inherited from Feature. /// [Property(xmiId: "_2022x_2_12e503d9_1737227200362_771035_69", aggregation: AggregationKind.None, lowerValue: 1, upperValue: 1, isOrdered: false, isReadOnly: false, isDerived: true, isDerivedUnion: false, isUnique: true, defaultValue: null)] [RedefinedProperty(propertyName: "_2022x_2_12e503d9_1725998273002_23711_212")] @@ -648,8 +648,8 @@ bool Core.Features.IFeature.IsVariable /// /// The ConnectorAsUsages that are nestedUsages of this Usage. Note that this list includes - /// BindingConnectorAsUsages, SuccessionAsUsages, and FlowConnectionUsages because these are - /// ConnectorAsUsages even though they are not ConnectionUsages. + /// BindingConnectorAsUsages, SuccessionAsUsages, and FlowUsages because these are ConnectorAsUsages + /// even though they are not ConnectionUsages. /// [Property(xmiId: "_19_0_2_12e503d9_1591479754895_422988_1242", aggregation: AggregationKind.None, lowerValue: 0, upperValue: int.MaxValue, isOrdered: true, isReadOnly: false, isDerived: true, isDerivedUnion: false, isUnique: true, defaultValue: null)] [SubsettedProperty(propertyName: "_18_5_3_12e503d9_1565472757327_162097_21259")] @@ -697,7 +697,7 @@ bool Core.Features.IFeature.IsVariable public List nestedItem => this.ComputeNestedItem(); /// - /// The MetadataUsages that are nestedUsages of this of this Usage. + /// The MetadataUsages that are ownedMembers of this of this Usage. /// [Property(xmiId: "_19_0_4_12e503d9_1661488589862_120785_2970", aggregation: AggregationKind.None, lowerValue: 0, upperValue: int.MaxValue, isOrdered: true, isReadOnly: false, isDerived: true, isDerivedUnion: false, isUnique: true, defaultValue: null)] [SubsettedProperty(propertyName: "_19_0_2_12e503d9_1591482421103_284620_2978")] @@ -1434,9 +1434,8 @@ List Root.Elements.IRelationship.Target public FeatureDirectionKind? DirectionOfExcluding(IFeature feature, List excluded) => this.ComputeDirectionOfExcludingOperation(feature, excluded); /// - /// If a Feature has no declaredName or declaredShortName , then its - /// effective name is given by the effective name of the Feature returned by the namingFeature() - /// operation, if any. + /// If a Feature has no declaredName or declaredShortName, then its effective name is given by the + /// effective name of the Feature returned by the namingFeature() operation, if any. /// /// /// The expected @@ -1561,11 +1560,10 @@ List Root.Elements.IRelationship.Target /// /// A Feature is compatible with an otherType if it either directly or indirectly specializes the - /// otherType or if the otherType is also a Feature and all of the following are true. - ///
  1. Neither this Feature or the otherType have any - /// ownedFeatures.
  2. This Feature directly or indirectly redefines a - /// Feature that is also directly or indirectly redefined by the otherType.
  3. - ///
  4. This Feature can access the otherType.
+ /// otherType or if the otherType is also a Feature and all of the following are true.
  1. Neither + /// this Feature or the otherType have any ownedFeatures.
  2. This Feature directly or indirectly + /// redefines a Feature that is also directly or indirectly redefined by the otherType.
  3. This + /// Feature can access the otherType.
///
/// /// No documentation provided @@ -1742,8 +1740,8 @@ List Root.Elements.IRelationship.Target /// an owningRelationship, then return the string constructed by appending to the path of it's /// owningRelationship the character / followed by the string representation of its position in the list /// of ownedRelatedElements of the owningRelationship (indexed starting at 1). Otherwise, return the - /// empty string. (Note that this operation is overridden for Relationships - /// to use owningRelatedElement when appropriate.) + /// empty string.(Note that this operation is overridden for Relationships to use owningRelatedElement + /// when appropriate.) /// /// /// The expected @@ -1808,13 +1806,12 @@ List Root.Elements.IRelationship.Target /// /// Return a subset of memberships, removing those Memberships whose memberElements are Features and for - /// which either of the following two conditions holds:
    - ///
  1. The memberElement of the Membership is included in redefined Features of another - /// Membership in memberships.
  2. One of the redefined Features of the - /// Membership is a directly redefinedFeature of an ownedFeature of this Type.
  3. - ///
For this purpose, the redefined Features of a Membership - /// whose memberElement is a Feature includes the memberElement and all Features directly or indirectly - /// redefined by the memberElement. + /// which either of the following two conditions holds:
  1. The memberElement of the Membership is + /// included in redefined Features of another Membership in memberships.
  2. One of the redefined + /// Features of the Membership is a directly redefinedFeature of an ownedFeature of this + /// Type.
For this purpose, the redefined Features of a Membership whose memberElement is a + /// Feature includes the memberElement and all Features directly or indirectly redefined by the + /// memberElement. ///
/// /// No documentation provided @@ -1941,11 +1938,11 @@ List Root.Elements.IRelationship.Target /// Return the Features used to determine the types of this Feature (other than this Feature itself). If /// this Feature is not conjugated, then the typingFeatures consist of all subsetted Features, except /// from CrossSubsetting, and the last chainingFeature (if any). If this Feature is conjugated, then the - /// typingFeatures are only its originalType (if the originalType is a Feature). - /// Note. CrossSubsetting is excluded from the determination of the type of a - /// Feature in order to avoid circularity in the construction of implied CrossSubsetting relationships. - /// The validateFeatureCrossFeatureType requires that the crossFeature of a Feature have the same type - /// as the Feature. + /// typingFeatures are only its originalType (if the originalType is a Feature).Note. + /// CrossSubsetting is excluded from the determination of the type of a Feature in order to avoid + /// circularity in the construction of implied CrossSubsetting relationships. The + /// validateFeatureCrossFeatureType requires that the crossFeature of a Feature have the same type as + /// the Feature. /// /// /// The expected collection of diff --git a/SysML2.NET/Core/AutoGenPoco/TerminateActionUsage.cs b/SysML2.NET/Core/AutoGenPoco/TerminateActionUsage.cs index 565dd127e..0c3804ee2 100644 --- a/SysML2.NET/Core/AutoGenPoco/TerminateActionUsage.cs +++ b/SysML2.NET/Core/AutoGenPoco/TerminateActionUsage.cs @@ -434,11 +434,11 @@ public TerminateActionUsage() /// /// Whether all things that meet the classification conditions of this Type must be classified by the - /// Type. (A Type gives conditions that must be met by whatever it - /// classifies, but when isSufficient is false, things may meet those conditions but still not be - /// classified by the Type. For example, a Type Car that is not sufficient could require everything it - /// classifies to have four wheels, but not all four wheeled things would classify as cars. However, if - /// the Type Car were sufficient, it would classify all four-wheeled things.) + /// Type.(A Type gives conditions that must be met by whatever it classifies, but when isSufficient + /// is false, things may meet those conditions but still not be classified by the Type. For example, a + /// Type Car that is not sufficient could require everything it classifies to have four wheels, but not + /// all four wheeled things would classify as cars. However, if the Type Car were sufficient, it would + /// classify all four-wheeled things.) /// [Property(xmiId: "_18_5_3_b9102da_1564072709069_937523_30797", aggregation: AggregationKind.None, lowerValue: 1, upperValue: 1, isOrdered: false, isReadOnly: false, isDerived: false, isDerivedUnion: false, isUnique: true, defaultValue: "false")] [Implements(implementation: "IType.IsSufficient")] @@ -476,9 +476,9 @@ bool Core.Features.IFeature.IsVariable /// Whether this Usage may be time varying (that is, whether it is featured by the snapshots of its /// owningType, rather than being featured by the owningType itself). However, if isConstant is also /// true, then the value of the Usage is nevertheless constant over the entire duration of an instance - /// of its owningType (that is, it has the same value on all snapshots). The - /// property mayTimeVary redefines the KerML property Feature::isVariable, making it derived. The - /// property isConstant is inherited from Feature. + /// of its owningType (that is, it has the same value on all snapshots).The property mayTimeVary + /// redefines the KerML property Feature::isVariable, making it derived. The property isConstant is + /// inherited from Feature. /// [Property(xmiId: "_2022x_2_12e503d9_1737227200362_771035_69", aggregation: AggregationKind.None, lowerValue: 1, upperValue: 1, isOrdered: false, isReadOnly: false, isDerived: true, isDerivedUnion: false, isUnique: true, defaultValue: null)] [RedefinedProperty(propertyName: "_2022x_2_12e503d9_1725998273002_23711_212")] @@ -579,8 +579,8 @@ bool Core.Features.IFeature.IsVariable /// /// The ConnectorAsUsages that are nestedUsages of this Usage. Note that this list includes - /// BindingConnectorAsUsages, SuccessionAsUsages, and FlowConnectionUsages because these are - /// ConnectorAsUsages even though they are not ConnectionUsages. + /// BindingConnectorAsUsages, SuccessionAsUsages, and FlowUsages because these are ConnectorAsUsages + /// even though they are not ConnectionUsages. /// [Property(xmiId: "_19_0_2_12e503d9_1591479754895_422988_1242", aggregation: AggregationKind.None, lowerValue: 0, upperValue: int.MaxValue, isOrdered: true, isReadOnly: false, isDerived: true, isDerivedUnion: false, isUnique: true, defaultValue: null)] [SubsettedProperty(propertyName: "_18_5_3_12e503d9_1565472757327_162097_21259")] @@ -628,7 +628,7 @@ bool Core.Features.IFeature.IsVariable public List nestedItem => this.ComputeNestedItem(); /// - /// The MetadataUsages that are nestedUsages of this of this Usage. + /// The MetadataUsages that are ownedMembers of this of this Usage. /// [Property(xmiId: "_19_0_4_12e503d9_1661488589862_120785_2970", aggregation: AggregationKind.None, lowerValue: 0, upperValue: int.MaxValue, isOrdered: true, isReadOnly: false, isDerived: true, isDerivedUnion: false, isUnique: true, defaultValue: null)] [SubsettedProperty(propertyName: "_19_0_2_12e503d9_1591482421103_284620_2978")] @@ -1257,9 +1257,8 @@ bool Core.Features.IFeature.IsVariable public FeatureDirectionKind? DirectionOfExcluding(IFeature feature, List excluded) => this.ComputeDirectionOfExcludingOperation(feature, excluded); /// - /// If a Feature has no declaredName or declaredShortName , then its - /// effective name is given by the effective name of the Feature returned by the namingFeature() - /// operation, if any. + /// If a Feature has no declaredName or declaredShortName, then its effective name is given by the + /// effective name of the Feature returned by the namingFeature() operation, if any. /// /// /// The expected @@ -1384,11 +1383,10 @@ bool Core.Features.IFeature.IsVariable /// /// A Feature is compatible with an otherType if it either directly or indirectly specializes the - /// otherType or if the otherType is also a Feature and all of the following are true. - ///
  1. Neither this Feature or the otherType have any - /// ownedFeatures.
  2. This Feature directly or indirectly redefines a - /// Feature that is also directly or indirectly redefined by the otherType.
  3. - ///
  4. This Feature can access the otherType.
+ /// otherType or if the otherType is also a Feature and all of the following are true.
  1. Neither + /// this Feature or the otherType have any ownedFeatures.
  2. This Feature directly or indirectly + /// redefines a Feature that is also directly or indirectly redefined by the otherType.
  3. This + /// Feature can access the otherType.
///
/// /// No documentation provided @@ -1556,8 +1554,8 @@ bool Core.Features.IFeature.IsVariable /// an owningRelationship, then return the string constructed by appending to the path of it's /// owningRelationship the character / followed by the string representation of its position in the list /// of ownedRelatedElements of the owningRelationship (indexed starting at 1). Otherwise, return the - /// empty string. (Note that this operation is overridden for Relationships - /// to use owningRelatedElement when appropriate.) + /// empty string.(Note that this operation is overridden for Relationships to use owningRelatedElement + /// when appropriate.) /// /// /// The expected @@ -1611,13 +1609,12 @@ bool Core.Features.IFeature.IsVariable /// /// Return a subset of memberships, removing those Memberships whose memberElements are Features and for - /// which either of the following two conditions holds:
    - ///
  1. The memberElement of the Membership is included in redefined Features of another - /// Membership in memberships.
  2. One of the redefined Features of the - /// Membership is a directly redefinedFeature of an ownedFeature of this Type.
  3. - ///
For this purpose, the redefined Features of a Membership - /// whose memberElement is a Feature includes the memberElement and all Features directly or indirectly - /// redefined by the memberElement. + /// which either of the following two conditions holds:
  1. The memberElement of the Membership is + /// included in redefined Features of another Membership in memberships.
  2. One of the redefined + /// Features of the Membership is a directly redefinedFeature of an ownedFeature of this + /// Type.
For this purpose, the redefined Features of a Membership whose memberElement is a + /// Feature includes the memberElement and all Features directly or indirectly redefined by the + /// memberElement. ///
/// /// No documentation provided @@ -1744,11 +1741,11 @@ bool Core.Features.IFeature.IsVariable /// Return the Features used to determine the types of this Feature (other than this Feature itself). If /// this Feature is not conjugated, then the typingFeatures consist of all subsetted Features, except /// from CrossSubsetting, and the last chainingFeature (if any). If this Feature is conjugated, then the - /// typingFeatures are only its originalType (if the originalType is a Feature). - /// Note. CrossSubsetting is excluded from the determination of the type of a - /// Feature in order to avoid circularity in the construction of implied CrossSubsetting relationships. - /// The validateFeatureCrossFeatureType requires that the crossFeature of a Feature have the same type - /// as the Feature. + /// typingFeatures are only its originalType (if the originalType is a Feature).Note. + /// CrossSubsetting is excluded from the determination of the type of a Feature in order to avoid + /// circularity in the construction of implied CrossSubsetting relationships. The + /// validateFeatureCrossFeatureType requires that the crossFeature of a Feature have the same type as + /// the Feature. /// /// /// The expected collection of diff --git a/SysML2.NET/Core/AutoGenPoco/TextualRepresentation.cs b/SysML2.NET/Core/AutoGenPoco/TextualRepresentation.cs index 08e2c67b0..519f7e5a5 100644 --- a/SysML2.NET/Core/AutoGenPoco/TextualRepresentation.cs +++ b/SysML2.NET/Core/AutoGenPoco/TextualRepresentation.cs @@ -39,30 +39,26 @@ namespace SysML2.NET.Core.POCO.Root.Annotations /// given language. The representedElement must be the owner of the TextualRepresentation. The named /// language can be a natural language, in which case the body is an informal representation, or an /// artificial language, in which case the body is expected to be a formal, machine-parsable - /// representation. If the named language of a TextualRepresentation is - /// machine-parsable, then the body text should be legal input text as defined for that language. The - /// interpretation of the named language string shall be case insensitive. The following language names - /// are defined to correspond to the given standard languages: - /// - /// - /// - /// - ///
kerml Kernel Modeling Language
ocl Object Constraint Language
alfAction Language for fUML
Other - /// specifications may define specific language strings, other than those shown above, to be used to - /// indicate the use of languages from those specifications in KerML TextualRepresentation. - /// If the language of a TextualRepresentation is "kerml", then the body text shall - /// be a legal representation of the representedElement in the KerML textual concrete syntax. A - /// conforming tool can use such a TextualRepresentation Annotation to record the original KerML - /// concrete syntax text from which an Element was parsed. In this case, it is a tool responsibility to - /// ensure that the body of the TextualRepresentation remains correct (or the Annotation is removed) if - /// the annotated Element changes other than by re-parsing the body text. An - /// Element with a TextualRepresentation in a language other than KerML is essentially a semantically - /// "opaque" Element specified in the other language. However, a conforming KerML tool may - /// interpret such an element consistently with the specification of the named language. + /// representation.If the named language of a TextualRepresentation is machine-parsable, then the body + /// text should be legal input text as defined for that language. The interpretation of the named + /// language string shall be case insensitive. The following language names are defined to correspond to + /// the given standard languages:
kerml Kernel Modeling Language
ocl Object Constraint + /// Language
alf Action Language for fUML
Other specifications may + /// define specific language strings, other than those shown above, to be used to indicate the use of + /// languages from those specifications in KerML TextualRepresentation.If the language of a + /// TextualRepresentation is "kerml", then the body text shall be a legal representation of + /// the representedElement in the KerML textual concrete syntax. A conforming tool can use such a + /// TextualRepresentation Annotation to record the original KerML concrete syntax text from which an + /// Element was parsed. In this case, it is a tool responsibility to ensure that the body of the + /// TextualRepresentation remains correct (or the Annotation is removed) if the annotated Element + /// changes other than by re-parsing the body text.An Element with a TextualRepresentation in a language + /// other than KerML is essentially a semantically "opaque" Element specified in the other + /// language. However, a conforming KerML tool may interpret such an element consistently with the + /// specification of the named language. /// [Class(xmiId: "_19_0_2_12e503d9_1594152214531_455349_2448", isAbstract: false, isFinalSpecialization: false, isActive: false)] [GeneratedCode("SysML2.NET", "latest")] @@ -356,8 +352,8 @@ public TextualRepresentation() /// an owningRelationship, then return the string constructed by appending to the path of it's /// owningRelationship the character / followed by the string representation of its position in the list /// of ownedRelatedElements of the owningRelationship (indexed starting at 1). Otherwise, return the - /// empty string. (Note that this operation is overridden for Relationships - /// to use owningRelatedElement when appropriate.) + /// empty string.(Note that this operation is overridden for Relationships to use owningRelatedElement + /// when appropriate.) /// /// /// The expected diff --git a/SysML2.NET/Core/AutoGenPoco/TransitionFeatureMembership.cs b/SysML2.NET/Core/AutoGenPoco/TransitionFeatureMembership.cs index 15aec5aa9..e29679a59 100644 --- a/SysML2.NET/Core/AutoGenPoco/TransitionFeatureMembership.cs +++ b/SysML2.NET/Core/AutoGenPoco/TransitionFeatureMembership.cs @@ -528,8 +528,8 @@ List Root.Elements.IRelationship.Target /// an owningRelationship, then return the string constructed by appending to the path of it's /// owningRelationship the character / followed by the string representation of its position in the list /// of ownedRelatedElements of the owningRelationship (indexed starting at 1). Otherwise, return the - /// empty string. (Note that this operation is overridden for Relationships - /// to use owningRelatedElement when appropriate.) + /// empty string.(Note that this operation is overridden for Relationships to use owningRelatedElement + /// when appropriate.) /// /// /// The expected diff --git a/SysML2.NET/Core/AutoGenPoco/TransitionUsage.cs b/SysML2.NET/Core/AutoGenPoco/TransitionUsage.cs index 2557bbd0c..5fd5947e8 100644 --- a/SysML2.NET/Core/AutoGenPoco/TransitionUsage.cs +++ b/SysML2.NET/Core/AutoGenPoco/TransitionUsage.cs @@ -70,9 +70,9 @@ namespace SysML2.NET.Core.POCO.Systems.States /// A TransitionUsage is an ActionUsage representing a triggered transition between ActionUsages or /// StateUsages. When triggered by a triggerAction, when its guardExpression is true, the /// TransitionUsage asserts that its source is exited, then its effectAction (if any) is performed, and - /// then its target is entered. A TransitionUsage can be related to some of its - /// ownedFeatures using TransitionFeatureMembership Relationships, corresponding to the triggerAction, - /// guardExpression and effectAction of the TransitionUsage. + /// then its target is entered.A TransitionUsage can be related to some of its ownedFeatures using + /// TransitionFeatureMembership Relationships, corresponding to the triggerAction, guardExpression and + /// effectAction of the TransitionUsage. /// [Class(xmiId: "_19_0_2_12e503d9_1575672078353_626298_450", isAbstract: false, isFinalSpecialization: false, isActive: false)] [GeneratedCode("SysML2.NET", "latest")] @@ -456,11 +456,11 @@ public TransitionUsage() /// /// Whether all things that meet the classification conditions of this Type must be classified by the - /// Type. (A Type gives conditions that must be met by whatever it - /// classifies, but when isSufficient is false, things may meet those conditions but still not be - /// classified by the Type. For example, a Type Car that is not sufficient could require everything it - /// classifies to have four wheels, but not all four wheeled things would classify as cars. However, if - /// the Type Car were sufficient, it would classify all four-wheeled things.) + /// Type.(A Type gives conditions that must be met by whatever it classifies, but when isSufficient + /// is false, things may meet those conditions but still not be classified by the Type. For example, a + /// Type Car that is not sufficient could require everything it classifies to have four wheels, but not + /// all four wheeled things would classify as cars. However, if the Type Car were sufficient, it would + /// classify all four-wheeled things.) /// [Property(xmiId: "_18_5_3_b9102da_1564072709069_937523_30797", aggregation: AggregationKind.None, lowerValue: 1, upperValue: 1, isOrdered: false, isReadOnly: false, isDerived: false, isDerivedUnion: false, isUnique: true, defaultValue: "false")] [Implements(implementation: "IType.IsSufficient")] @@ -498,9 +498,9 @@ bool Core.Features.IFeature.IsVariable /// Whether this Usage may be time varying (that is, whether it is featured by the snapshots of its /// owningType, rather than being featured by the owningType itself). However, if isConstant is also /// true, then the value of the Usage is nevertheless constant over the entire duration of an instance - /// of its owningType (that is, it has the same value on all snapshots). The - /// property mayTimeVary redefines the KerML property Feature::isVariable, making it derived. The - /// property isConstant is inherited from Feature. + /// of its owningType (that is, it has the same value on all snapshots).The property mayTimeVary + /// redefines the KerML property Feature::isVariable, making it derived. The property isConstant is + /// inherited from Feature. /// [Property(xmiId: "_2022x_2_12e503d9_1737227200362_771035_69", aggregation: AggregationKind.None, lowerValue: 1, upperValue: 1, isOrdered: false, isReadOnly: false, isDerived: true, isDerivedUnion: false, isUnique: true, defaultValue: null)] [RedefinedProperty(propertyName: "_2022x_2_12e503d9_1725998273002_23711_212")] @@ -601,8 +601,8 @@ bool Core.Features.IFeature.IsVariable /// /// The ConnectorAsUsages that are nestedUsages of this Usage. Note that this list includes - /// BindingConnectorAsUsages, SuccessionAsUsages, and FlowConnectionUsages because these are - /// ConnectorAsUsages even though they are not ConnectionUsages. + /// BindingConnectorAsUsages, SuccessionAsUsages, and FlowUsages because these are ConnectorAsUsages + /// even though they are not ConnectionUsages. /// [Property(xmiId: "_19_0_2_12e503d9_1591479754895_422988_1242", aggregation: AggregationKind.None, lowerValue: 0, upperValue: int.MaxValue, isOrdered: true, isReadOnly: false, isDerived: true, isDerivedUnion: false, isUnique: true, defaultValue: null)] [SubsettedProperty(propertyName: "_18_5_3_12e503d9_1565472757327_162097_21259")] @@ -650,7 +650,7 @@ bool Core.Features.IFeature.IsVariable public List nestedItem => this.ComputeNestedItem(); /// - /// The MetadataUsages that are nestedUsages of this of this Usage. + /// The MetadataUsages that are ownedMembers of this of this Usage. /// [Property(xmiId: "_19_0_4_12e503d9_1661488589862_120785_2970", aggregation: AggregationKind.None, lowerValue: 0, upperValue: int.MaxValue, isOrdered: true, isReadOnly: false, isDerived: true, isDerivedUnion: false, isUnique: true, defaultValue: null)] [SubsettedProperty(propertyName: "_19_0_2_12e503d9_1591482421103_284620_2978")] @@ -1306,9 +1306,8 @@ bool Core.Features.IFeature.IsVariable public FeatureDirectionKind? DirectionOfExcluding(IFeature feature, List excluded) => this.ComputeDirectionOfExcludingOperation(feature, excluded); /// - /// If a Feature has no declaredName or declaredShortName , then its - /// effective name is given by the effective name of the Feature returned by the namingFeature() - /// operation, if any. + /// If a Feature has no declaredName or declaredShortName, then its effective name is given by the + /// effective name of the Feature returned by the namingFeature() operation, if any. /// /// /// The expected @@ -1433,11 +1432,10 @@ bool Core.Features.IFeature.IsVariable /// /// A Feature is compatible with an otherType if it either directly or indirectly specializes the - /// otherType or if the otherType is also a Feature and all of the following are true. - ///
  1. Neither this Feature or the otherType have any - /// ownedFeatures.
  2. This Feature directly or indirectly redefines a - /// Feature that is also directly or indirectly redefined by the otherType.
  3. - ///
  4. This Feature can access the otherType.
+ /// otherType or if the otherType is also a Feature and all of the following are true.
  1. Neither + /// this Feature or the otherType have any ownedFeatures.
  2. This Feature directly or indirectly + /// redefines a Feature that is also directly or indirectly redefined by the otherType.
  3. This + /// Feature can access the otherType.
///
/// /// No documentation provided @@ -1605,8 +1603,8 @@ bool Core.Features.IFeature.IsVariable /// an owningRelationship, then return the string constructed by appending to the path of it's /// owningRelationship the character / followed by the string representation of its position in the list /// of ownedRelatedElements of the owningRelationship (indexed starting at 1). Otherwise, return the - /// empty string. (Note that this operation is overridden for Relationships - /// to use owningRelatedElement when appropriate.) + /// empty string.(Note that this operation is overridden for Relationships to use owningRelatedElement + /// when appropriate.) /// /// /// The expected @@ -1660,13 +1658,12 @@ bool Core.Features.IFeature.IsVariable /// /// Return a subset of memberships, removing those Memberships whose memberElements are Features and for - /// which either of the following two conditions holds:
    - ///
  1. The memberElement of the Membership is included in redefined Features of another - /// Membership in memberships.
  2. One of the redefined Features of the - /// Membership is a directly redefinedFeature of an ownedFeature of this Type.
  3. - ///
For this purpose, the redefined Features of a Membership - /// whose memberElement is a Feature includes the memberElement and all Features directly or indirectly - /// redefined by the memberElement. + /// which either of the following two conditions holds:
  1. The memberElement of the Membership is + /// included in redefined Features of another Membership in memberships.
  2. One of the redefined + /// Features of the Membership is a directly redefinedFeature of an ownedFeature of this + /// Type.
For this purpose, the redefined Features of a Membership whose memberElement is a + /// Feature includes the memberElement and all Features directly or indirectly redefined by the + /// memberElement. ///
/// /// No documentation provided @@ -1811,11 +1808,11 @@ bool Core.Features.IFeature.IsVariable /// Return the Features used to determine the types of this Feature (other than this Feature itself). If /// this Feature is not conjugated, then the typingFeatures consist of all subsetted Features, except /// from CrossSubsetting, and the last chainingFeature (if any). If this Feature is conjugated, then the - /// typingFeatures are only its originalType (if the originalType is a Feature). - /// Note. CrossSubsetting is excluded from the determination of the type of a - /// Feature in order to avoid circularity in the construction of implied CrossSubsetting relationships. - /// The validateFeatureCrossFeatureType requires that the crossFeature of a Feature have the same type - /// as the Feature. + /// typingFeatures are only its originalType (if the originalType is a Feature).Note. + /// CrossSubsetting is excluded from the determination of the type of a Feature in order to avoid + /// circularity in the construction of implied CrossSubsetting relationships. The + /// validateFeatureCrossFeatureType requires that the crossFeature of a Feature have the same type as + /// the Feature. /// /// /// The expected collection of diff --git a/SysML2.NET/Core/AutoGenPoco/TriggerInvocationExpression.cs b/SysML2.NET/Core/AutoGenPoco/TriggerInvocationExpression.cs index 4fd2e1c73..a5c505221 100644 --- a/SysML2.NET/Core/AutoGenPoco/TriggerInvocationExpression.cs +++ b/SysML2.NET/Core/AutoGenPoco/TriggerInvocationExpression.cs @@ -79,8 +79,8 @@ public TriggerInvocationExpression() /// /// The Expressions whose results are bound to features of the instantiatedType. The arguments are /// ordered consistent with the order of the features, though they may not be one-to-one with all the - /// features. Note. The derivation of argument is given in - /// the concrete subclasses of InstantiationExpression. + /// features.Note. The derivation of argument is given in the concrete subclasses of + /// InstantiationExpression. /// [Property(xmiId: "_2022x_2_12e503d9_1739134437590_328753_108", aggregation: AggregationKind.None, lowerValue: 0, upperValue: int.MaxValue, isOrdered: true, isReadOnly: false, isDerived: true, isDerivedUnion: false, isUnique: true, defaultValue: null)] [Implements(implementation: "IInstantiationExpression.Argument")] @@ -391,11 +391,11 @@ public TriggerInvocationExpression() /// /// Whether all things that meet the classification conditions of this Type must be classified by the - /// Type. (A Type gives conditions that must be met by whatever it - /// classifies, but when isSufficient is false, things may meet those conditions but still not be - /// classified by the Type. For example, a Type Car that is not sufficient could require everything it - /// classifies to have four wheels, but not all four wheeled things would classify as cars. However, if - /// the Type Car were sufficient, it would classify all four-wheeled things.) + /// Type.(A Type gives conditions that must be met by whatever it classifies, but when isSufficient + /// is false, things may meet those conditions but still not be classified by the Type. For example, a + /// Type Car that is not sufficient could require everything it classifies to have four wheels, but not + /// all four wheeled things would classify as cars. However, if the Type Car were sufficient, it would + /// classify all four-wheeled things.) /// [Property(xmiId: "_18_5_3_b9102da_1564072709069_937523_30797", aggregation: AggregationKind.None, lowerValue: 1, upperValue: 1, isOrdered: false, isReadOnly: false, isDerived: false, isDerivedUnion: false, isUnique: true, defaultValue: "false")] [Implements(implementation: "IType.IsSufficient")] @@ -918,9 +918,8 @@ public TriggerInvocationExpression() public FeatureDirectionKind? DirectionOfExcluding(IFeature feature, List excluded) => this.ComputeDirectionOfExcludingOperation(feature, excluded); /// - /// If a Feature has no declaredName or declaredShortName , then its - /// effective name is given by the effective name of the Feature returned by the namingFeature() - /// operation, if any. + /// If a Feature has no declaredName or declaredShortName, then its effective name is given by the + /// effective name of the Feature returned by the namingFeature() operation, if any. /// /// /// The expected @@ -1055,8 +1054,7 @@ public TriggerInvocationExpression() /// /// Return the Type to act as the instantiatedType for this InstantiationExpression. By default, this is /// the memberElement of the first ownedMembership that is not a FeatureMembership, which must be a - /// Type. Note. This operation is overridden in the subclass - /// OperatorExpression. + /// Type.Note. This operation is overridden in the subclass OperatorExpression. /// /// /// The expected @@ -1073,11 +1071,10 @@ public TriggerInvocationExpression() /// /// A Feature is compatible with an otherType if it either directly or indirectly specializes the - /// otherType or if the otherType is also a Feature and all of the following are true. - ///
  1. Neither this Feature or the otherType have any - /// ownedFeatures.
  2. This Feature directly or indirectly redefines a - /// Feature that is also directly or indirectly redefined by the otherType.
  3. - ///
  4. This Feature can access the otherType.
+ /// otherType or if the otherType is also a Feature and all of the following are true.
  1. Neither + /// this Feature or the otherType have any ownedFeatures.
  2. This Feature directly or indirectly + /// redefines a Feature that is also directly or indirectly redefined by the otherType.
  3. This + /// Feature can access the otherType.
///
/// /// No documentation provided @@ -1178,11 +1175,11 @@ public TriggerInvocationExpression() /// Return whether this Expression is model-level evaluable. The visited parameter is used to track /// possible circular Feature references made from FeatureReferenceExpressions (see the redefinition of /// this operation for FeatureReferenceExpression). Such circular references are not allowed in - /// model-level evaluable expressions. An Expression that is not otherwise - /// specialized is model-level evaluable if it has no (non-implied) ownedSpecializations and all its - /// ownedFeatures are either in parameters, the result parameter or a result Expression owned via a - /// ResultExpressionMembership. The parameters must not have any ownedFeatures or a FeatureValue, and - /// the result Expression must be model-level evaluable. + /// model-level evaluable expressions.An Expression that is not otherwise specialized is model-level + /// evaluable if it has no (non-implied) ownedSpecializations and all its ownedFeatures are either in + /// parameters, the result parameter or a result Expression owned via a ResultExpressionMembership. The + /// parameters must not have any ownedFeatures or a FeatureValue, and the result Expression must be + /// model-level evaluable. /// /// /// No documentation provided @@ -1256,8 +1253,8 @@ public TriggerInvocationExpression() /// an owningRelationship, then return the string constructed by appending to the path of it's /// owningRelationship the character / followed by the string representation of its position in the list /// of ownedRelatedElements of the owningRelationship (indexed starting at 1). Otherwise, return the - /// empty string. (Note that this operation is overridden for Relationships - /// to use owningRelatedElement when appropriate.) + /// empty string.(Note that this operation is overridden for Relationships to use owningRelatedElement + /// when appropriate.) /// /// /// The expected @@ -1302,13 +1299,12 @@ public TriggerInvocationExpression() /// /// Return a subset of memberships, removing those Memberships whose memberElements are Features and for - /// which either of the following two conditions holds:
    - ///
  1. The memberElement of the Membership is included in redefined Features of another - /// Membership in memberships.
  2. One of the redefined Features of the - /// Membership is a directly redefinedFeature of an ownedFeature of this Type.
  3. - ///
For this purpose, the redefined Features of a Membership - /// whose memberElement is a Feature includes the memberElement and all Features directly or indirectly - /// redefined by the memberElement. + /// which either of the following two conditions holds:
  1. The memberElement of the Membership is + /// included in redefined Features of another Membership in memberships.
  2. One of the redefined + /// Features of the Membership is a directly redefinedFeature of an ownedFeature of this + /// Type.
For this purpose, the redefined Features of a Membership whose memberElement is a + /// Feature includes the memberElement and all Features directly or indirectly redefined by the + /// memberElement. ///
/// /// No documentation provided @@ -1435,11 +1431,11 @@ public TriggerInvocationExpression() /// Return the Features used to determine the types of this Feature (other than this Feature itself). If /// this Feature is not conjugated, then the typingFeatures consist of all subsetted Features, except /// from CrossSubsetting, and the last chainingFeature (if any). If this Feature is conjugated, then the - /// typingFeatures are only its originalType (if the originalType is a Feature). - /// Note. CrossSubsetting is excluded from the determination of the type of a - /// Feature in order to avoid circularity in the construction of implied CrossSubsetting relationships. - /// The validateFeatureCrossFeatureType requires that the crossFeature of a Feature have the same type - /// as the Feature. + /// typingFeatures are only its originalType (if the originalType is a Feature).Note. + /// CrossSubsetting is excluded from the determination of the type of a Feature in order to avoid + /// circularity in the construction of implied CrossSubsetting relationships. The + /// validateFeatureCrossFeatureType requires that the crossFeature of a Feature have the same type as + /// the Feature. /// /// /// The expected collection of diff --git a/SysML2.NET/Core/AutoGenPoco/Type.cs b/SysML2.NET/Core/AutoGenPoco/Type.cs index 96788f3ef..e8d284bff 100644 --- a/SysML2.NET/Core/AutoGenPoco/Type.cs +++ b/SysML2.NET/Core/AutoGenPoco/Type.cs @@ -233,11 +233,11 @@ public Type() /// /// Whether all things that meet the classification conditions of this Type must be classified by the - /// Type. (A Type gives conditions that must be met by whatever it - /// classifies, but when isSufficient is false, things may meet those conditions but still not be - /// classified by the Type. For example, a Type Car that is not sufficient could require everything it - /// classifies to have four wheels, but not all four wheeled things would classify as cars. However, if - /// the Type Car were sufficient, it would classify all four-wheeled things.) + /// Type.(A Type gives conditions that must be met by whatever it classifies, but when isSufficient + /// is false, things may meet those conditions but still not be classified by the Type. For example, a + /// Type Car that is not sufficient could require everything it classifies to have four wheels, but not + /// all four wheeled things would classify as cars. However, if the Type Car were sufficient, it would + /// classify all four-wheeled things.) /// [Property(xmiId: "_18_5_3_b9102da_1564072709069_937523_30797", aggregation: AggregationKind.None, lowerValue: 1, upperValue: 1, isOrdered: false, isReadOnly: false, isDerived: false, isDerivedUnion: false, isUnique: true, defaultValue: "false")] [Implements(implementation: "IType.IsSufficient")] @@ -720,8 +720,8 @@ public Type() /// an owningRelationship, then return the string constructed by appending to the path of it's /// owningRelationship the character / followed by the string representation of its position in the list /// of ownedRelatedElements of the owningRelationship (indexed starting at 1). Otherwise, return the - /// empty string. (Note that this operation is overridden for Relationships - /// to use owningRelatedElement when appropriate.) + /// empty string.(Note that this operation is overridden for Relationships to use owningRelatedElement + /// when appropriate.) /// /// /// The expected @@ -743,13 +743,12 @@ public Type() /// /// Return a subset of memberships, removing those Memberships whose memberElements are Features and for - /// which either of the following two conditions holds:
    - ///
  1. The memberElement of the Membership is included in redefined Features of another - /// Membership in memberships.
  2. One of the redefined Features of the - /// Membership is a directly redefinedFeature of an ownedFeature of this Type.
  3. - ///
For this purpose, the redefined Features of a Membership - /// whose memberElement is a Feature includes the memberElement and all Features directly or indirectly - /// redefined by the memberElement. + /// which either of the following two conditions holds:
  1. The memberElement of the Membership is + /// included in redefined Features of another Membership in memberships.
  2. One of the redefined + /// Features of the Membership is a directly redefinedFeature of an ownedFeature of this + /// Type.
For this purpose, the redefined Features of a Membership whose memberElement is a + /// Feature includes the memberElement and all Features directly or indirectly redefined by the + /// memberElement. ///
/// /// No documentation provided diff --git a/SysML2.NET/Core/AutoGenPoco/TypeFeaturing.cs b/SysML2.NET/Core/AutoGenPoco/TypeFeaturing.cs index f9583d676..9c05ecfe4 100644 --- a/SysML2.NET/Core/AutoGenPoco/TypeFeaturing.cs +++ b/SysML2.NET/Core/AutoGenPoco/TypeFeaturing.cs @@ -396,8 +396,8 @@ List Root.Elements.IRelationship.Target /// an owningRelationship, then return the string constructed by appending to the path of it's /// owningRelationship the character / followed by the string representation of its position in the list /// of ownedRelatedElements of the owningRelationship (indexed starting at 1). Otherwise, return the - /// empty string. (Note that this operation is overridden for Relationships - /// to use owningRelatedElement when appropriate.) + /// empty string.(Note that this operation is overridden for Relationships to use owningRelatedElement + /// when appropriate.) /// /// /// The expected diff --git a/SysML2.NET/Core/AutoGenPoco/Unioning.cs b/SysML2.NET/Core/AutoGenPoco/Unioning.cs index 6ba69f28e..0a48fbb81 100644 --- a/SysML2.NET/Core/AutoGenPoco/Unioning.cs +++ b/SysML2.NET/Core/AutoGenPoco/Unioning.cs @@ -380,8 +380,8 @@ List Root.Elements.IRelationship.Target /// an owningRelationship, then return the string constructed by appending to the path of it's /// owningRelationship the character / followed by the string representation of its position in the list /// of ownedRelatedElements of the owningRelationship (indexed starting at 1). Otherwise, return the - /// empty string. (Note that this operation is overridden for Relationships - /// to use owningRelatedElement when appropriate.) + /// empty string.(Note that this operation is overridden for Relationships to use owningRelatedElement + /// when appropriate.) /// /// /// The expected diff --git a/SysML2.NET/Core/AutoGenPoco/Usage.cs b/SysML2.NET/Core/AutoGenPoco/Usage.cs index 6634ed6bc..b644eb56c 100644 --- a/SysML2.NET/Core/AutoGenPoco/Usage.cs +++ b/SysML2.NET/Core/AutoGenPoco/Usage.cs @@ -62,14 +62,13 @@ namespace SysML2.NET.Core.POCO.Systems.DefinitionAndUsage using SysML2.NET.Decorators; /// - /// A Usage is a usage of a Definition. A Usage may have nestedUsages that model - /// features that apply in the context of the owningUsage. A Usage may also have Definitions nested in - /// it, but this has no semantic significance, other than the nested scoping resulting from the Usage - /// being considered as a Namespace for any nested Definitions. However, if a - /// Usage has isVariation = true, then it represents a variation point Usage. In this case, all of its - /// members must be variant Usages, related to the Usage by VariantMembership Relationships. Rather than - /// being features of the Usage, variant Usages model different concrete alternatives that can be chosen - /// to fill in for the variation point Usage. + /// A Usage is a usage of a Definition.A Usage may have nestedUsages that model features that apply in + /// the context of the owningUsage. A Usage may also have Definitions nested in it, but this has no + /// semantic significance, other than the nested scoping resulting from the Usage being considered as a + /// Namespace for any nested Definitions.However, if a Usage has isVariation = true, then it represents + /// a variation point Usage. In this case, all of its members must be variant Usages, related to the + /// Usage by VariantMembership Relationships. Rather than being features of the Usage, variant Usages + /// model different concrete alternatives that can be chosen to fill in for the variation point Usage. /// [Class(xmiId: "_18_5_3_12e503d9_1565469997820_598571_19982", isAbstract: false, isFinalSpecialization: false, isActive: false)] [GeneratedCode("SysML2.NET", "latest")] @@ -396,11 +395,11 @@ public Usage() /// /// Whether all things that meet the classification conditions of this Type must be classified by the - /// Type. (A Type gives conditions that must be met by whatever it - /// classifies, but when isSufficient is false, things may meet those conditions but still not be - /// classified by the Type. For example, a Type Car that is not sufficient could require everything it - /// classifies to have four wheels, but not all four wheeled things would classify as cars. However, if - /// the Type Car were sufficient, it would classify all four-wheeled things.) + /// Type.(A Type gives conditions that must be met by whatever it classifies, but when isSufficient + /// is false, things may meet those conditions but still not be classified by the Type. For example, a + /// Type Car that is not sufficient could require everything it classifies to have four wheels, but not + /// all four wheeled things would classify as cars. However, if the Type Car were sufficient, it would + /// classify all four-wheeled things.) /// [Property(xmiId: "_18_5_3_b9102da_1564072709069_937523_30797", aggregation: AggregationKind.None, lowerValue: 1, upperValue: 1, isOrdered: false, isReadOnly: false, isDerived: false, isDerivedUnion: false, isUnique: true, defaultValue: "false")] [Implements(implementation: "IType.IsSufficient")] @@ -438,9 +437,9 @@ bool Core.Features.IFeature.IsVariable /// Whether this Usage may be time varying (that is, whether it is featured by the snapshots of its /// owningType, rather than being featured by the owningType itself). However, if isConstant is also /// true, then the value of the Usage is nevertheless constant over the entire duration of an instance - /// of its owningType (that is, it has the same value on all snapshots). The - /// property mayTimeVary redefines the KerML property Feature::isVariable, making it derived. The - /// property isConstant is inherited from Feature. + /// of its owningType (that is, it has the same value on all snapshots).The property mayTimeVary + /// redefines the KerML property Feature::isVariable, making it derived. The property isConstant is + /// inherited from Feature. /// [Property(xmiId: "_2022x_2_12e503d9_1737227200362_771035_69", aggregation: AggregationKind.None, lowerValue: 1, upperValue: 1, isOrdered: false, isReadOnly: false, isDerived: true, isDerivedUnion: false, isUnique: true, defaultValue: null)] [RedefinedProperty(propertyName: "_2022x_2_12e503d9_1725998273002_23711_212")] @@ -541,8 +540,8 @@ bool Core.Features.IFeature.IsVariable /// /// The ConnectorAsUsages that are nestedUsages of this Usage. Note that this list includes - /// BindingConnectorAsUsages, SuccessionAsUsages, and FlowConnectionUsages because these are - /// ConnectorAsUsages even though they are not ConnectionUsages. + /// BindingConnectorAsUsages, SuccessionAsUsages, and FlowUsages because these are ConnectorAsUsages + /// even though they are not ConnectionUsages. /// [Property(xmiId: "_19_0_2_12e503d9_1591479754895_422988_1242", aggregation: AggregationKind.None, lowerValue: 0, upperValue: int.MaxValue, isOrdered: true, isReadOnly: false, isDerived: true, isDerivedUnion: false, isUnique: true, defaultValue: null)] [SubsettedProperty(propertyName: "_18_5_3_12e503d9_1565472757327_162097_21259")] @@ -590,7 +589,7 @@ bool Core.Features.IFeature.IsVariable public List nestedItem => this.ComputeNestedItem(); /// - /// The MetadataUsages that are nestedUsages of this of this Usage. + /// The MetadataUsages that are ownedMembers of this of this Usage. /// [Property(xmiId: "_19_0_4_12e503d9_1661488589862_120785_2970", aggregation: AggregationKind.None, lowerValue: 0, upperValue: int.MaxValue, isOrdered: true, isReadOnly: false, isDerived: true, isDerivedUnion: false, isUnique: true, defaultValue: null)] [SubsettedProperty(propertyName: "_19_0_2_12e503d9_1591482421103_284620_2978")] @@ -1170,9 +1169,8 @@ bool Core.Features.IFeature.IsVariable public FeatureDirectionKind? DirectionOfExcluding(IFeature feature, List excluded) => this.ComputeDirectionOfExcludingOperation(feature, excluded); /// - /// If a Feature has no declaredName or declaredShortName , then its - /// effective name is given by the effective name of the Feature returned by the namingFeature() - /// operation, if any. + /// If a Feature has no declaredName or declaredShortName, then its effective name is given by the + /// effective name of the Feature returned by the namingFeature() operation, if any. /// /// /// The expected @@ -1277,11 +1275,10 @@ bool Core.Features.IFeature.IsVariable /// /// A Feature is compatible with an otherType if it either directly or indirectly specializes the - /// otherType or if the otherType is also a Feature and all of the following are true. - ///
  1. Neither this Feature or the otherType have any - /// ownedFeatures.
  2. This Feature directly or indirectly redefines a - /// Feature that is also directly or indirectly redefined by the otherType.
  3. - ///
  4. This Feature can access the otherType.
+ /// otherType or if the otherType is also a Feature and all of the following are true.
  1. Neither + /// this Feature or the otherType have any ownedFeatures.
  2. This Feature directly or indirectly + /// redefines a Feature that is also directly or indirectly redefined by the otherType.
  3. This + /// Feature can access the otherType.
///
/// /// No documentation provided @@ -1439,8 +1436,8 @@ bool Core.Features.IFeature.IsVariable /// an owningRelationship, then return the string constructed by appending to the path of it's /// owningRelationship the character / followed by the string representation of its position in the list /// of ownedRelatedElements of the owningRelationship (indexed starting at 1). Otherwise, return the - /// empty string. (Note that this operation is overridden for Relationships - /// to use owningRelatedElement when appropriate.) + /// empty string.(Note that this operation is overridden for Relationships to use owningRelatedElement + /// when appropriate.) /// /// /// The expected @@ -1494,13 +1491,12 @@ bool Core.Features.IFeature.IsVariable /// /// Return a subset of memberships, removing those Memberships whose memberElements are Features and for - /// which either of the following two conditions holds:
    - ///
  1. The memberElement of the Membership is included in redefined Features of another - /// Membership in memberships.
  2. One of the redefined Features of the - /// Membership is a directly redefinedFeature of an ownedFeature of this Type.
  3. - ///
For this purpose, the redefined Features of a Membership - /// whose memberElement is a Feature includes the memberElement and all Features directly or indirectly - /// redefined by the memberElement. + /// which either of the following two conditions holds:
  1. The memberElement of the Membership is + /// included in redefined Features of another Membership in memberships.
  2. One of the redefined + /// Features of the Membership is a directly redefinedFeature of an ownedFeature of this + /// Type.
For this purpose, the redefined Features of a Membership whose memberElement is a + /// Feature includes the memberElement and all Features directly or indirectly redefined by the + /// memberElement. ///
/// /// No documentation provided @@ -1627,11 +1623,11 @@ bool Core.Features.IFeature.IsVariable /// Return the Features used to determine the types of this Feature (other than this Feature itself). If /// this Feature is not conjugated, then the typingFeatures consist of all subsetted Features, except /// from CrossSubsetting, and the last chainingFeature (if any). If this Feature is conjugated, then the - /// typingFeatures are only its originalType (if the originalType is a Feature). - /// Note. CrossSubsetting is excluded from the determination of the type of a - /// Feature in order to avoid circularity in the construction of implied CrossSubsetting relationships. - /// The validateFeatureCrossFeatureType requires that the crossFeature of a Feature have the same type - /// as the Feature. + /// typingFeatures are only its originalType (if the originalType is a Feature).Note. + /// CrossSubsetting is excluded from the determination of the type of a Feature in order to avoid + /// circularity in the construction of implied CrossSubsetting relationships. The + /// validateFeatureCrossFeatureType requires that the crossFeature of a Feature have the same type as + /// the Feature. /// /// /// The expected collection of diff --git a/SysML2.NET/Core/AutoGenPoco/UseCaseDefinition.cs b/SysML2.NET/Core/AutoGenPoco/UseCaseDefinition.cs index a1ac231cf..62de9f59d 100644 --- a/SysML2.NET/Core/AutoGenPoco/UseCaseDefinition.cs +++ b/SysML2.NET/Core/AutoGenPoco/UseCaseDefinition.cs @@ -316,9 +316,9 @@ public UseCaseDefinition() /// /// Whether this Function can be used as the function of a model-level evaluable InvocationExpression. /// Certain Functions from the Kernel Functions Library are considered to have isModelLevelEvaluable = - /// true. For all other Functions it is false. Note: See the - /// specification of the KerML concrete syntax notation for Expressions for an identification of which - /// library Functions are model-level evaluable. + /// true. For all other Functions it is false.Note: See the specification of the KerML + /// concrete syntax notation for Expressions for an identification of which library Functions are + /// model-level evaluable. /// [Property(xmiId: "_19_0_4_12e503d9_1617395221463_139517_26381", aggregation: AggregationKind.None, lowerValue: 1, upperValue: 1, isOrdered: false, isReadOnly: false, isDerived: true, isDerivedUnion: false, isUnique: true, defaultValue: null)] [Implements(implementation: "IFunction.IsModelLevelEvaluable")] @@ -326,11 +326,11 @@ public UseCaseDefinition() /// /// Whether all things that meet the classification conditions of this Type must be classified by the - /// Type. (A Type gives conditions that must be met by whatever it - /// classifies, but when isSufficient is false, things may meet those conditions but still not be - /// classified by the Type. For example, a Type Car that is not sufficient could require everything it - /// classifies to have four wheels, but not all four wheeled things would classify as cars. However, if - /// the Type Car were sufficient, it would classify all four-wheeled things.) + /// Type.(A Type gives conditions that must be met by whatever it classifies, but when isSufficient + /// is false, things may meet those conditions but still not be classified by the Type. For example, a + /// Type Car that is not sufficient could require everything it classifies to have four wheels, but not + /// all four wheeled things would classify as cars. However, if the Type Car were sufficient, it would + /// classify all four-wheeled things.) /// [Property(xmiId: "_18_5_3_b9102da_1564072709069_937523_30797", aggregation: AggregationKind.None, lowerValue: 1, upperValue: 1, isOrdered: false, isReadOnly: false, isDerived: false, isDerivedUnion: false, isUnique: true, defaultValue: "false")] [Implements(implementation: "IType.IsSufficient")] @@ -616,7 +616,7 @@ public UseCaseDefinition() public List ownedMembership => this.ComputeOwnedMembership(); /// - /// The MetadataUsages that are ownedUsages of this Definition. + /// The MetadataUsages that are ownedMembers of this Definition. /// [Property(xmiId: "_19_0_4_12e503d9_1661488358064_457109_2881", aggregation: AggregationKind.None, lowerValue: 0, upperValue: int.MaxValue, isOrdered: true, isReadOnly: false, isDerived: true, isDerivedUnion: false, isUnique: true, defaultValue: null)] [SubsettedProperty(propertyName: "_19_0_2_12e503d9_1591482567975_649284_3005")] @@ -1117,8 +1117,8 @@ public UseCaseDefinition() /// an owningRelationship, then return the string constructed by appending to the path of it's /// owningRelationship the character / followed by the string representation of its position in the list /// of ownedRelatedElements of the owningRelationship (indexed starting at 1). Otherwise, return the - /// empty string. (Note that this operation is overridden for Relationships - /// to use owningRelatedElement when appropriate.) + /// empty string.(Note that this operation is overridden for Relationships to use owningRelatedElement + /// when appropriate.) /// /// /// The expected @@ -1140,13 +1140,12 @@ public UseCaseDefinition() /// /// Return a subset of memberships, removing those Memberships whose memberElements are Features and for - /// which either of the following two conditions holds:
    - ///
  1. The memberElement of the Membership is included in redefined Features of another - /// Membership in memberships.
  2. One of the redefined Features of the - /// Membership is a directly redefinedFeature of an ownedFeature of this Type.
  3. - ///
For this purpose, the redefined Features of a Membership - /// whose memberElement is a Feature includes the memberElement and all Features directly or indirectly - /// redefined by the memberElement. + /// which either of the following two conditions holds:
  1. The memberElement of the Membership is + /// included in redefined Features of another Membership in memberships.
  2. One of the redefined + /// Features of the Membership is a directly redefinedFeature of an ownedFeature of this + /// Type.
For this purpose, the redefined Features of a Membership whose memberElement is a + /// Feature includes the memberElement and all Features directly or indirectly redefined by the + /// memberElement. ///
/// /// No documentation provided diff --git a/SysML2.NET/Core/AutoGenPoco/UseCaseUsage.cs b/SysML2.NET/Core/AutoGenPoco/UseCaseUsage.cs index e9d988048..bb0b8c2d2 100644 --- a/SysML2.NET/Core/AutoGenPoco/UseCaseUsage.cs +++ b/SysML2.NET/Core/AutoGenPoco/UseCaseUsage.cs @@ -483,11 +483,11 @@ public UseCaseUsage() /// /// Whether all things that meet the classification conditions of this Type must be classified by the - /// Type. (A Type gives conditions that must be met by whatever it - /// classifies, but when isSufficient is false, things may meet those conditions but still not be - /// classified by the Type. For example, a Type Car that is not sufficient could require everything it - /// classifies to have four wheels, but not all four wheeled things would classify as cars. However, if - /// the Type Car were sufficient, it would classify all four-wheeled things.) + /// Type.(A Type gives conditions that must be met by whatever it classifies, but when isSufficient + /// is false, things may meet those conditions but still not be classified by the Type. For example, a + /// Type Car that is not sufficient could require everything it classifies to have four wheels, but not + /// all four wheeled things would classify as cars. However, if the Type Car were sufficient, it would + /// classify all four-wheeled things.) /// [Property(xmiId: "_18_5_3_b9102da_1564072709069_937523_30797", aggregation: AggregationKind.None, lowerValue: 1, upperValue: 1, isOrdered: false, isReadOnly: false, isDerived: false, isDerivedUnion: false, isUnique: true, defaultValue: "false")] [Implements(implementation: "IType.IsSufficient")] @@ -525,9 +525,9 @@ bool Core.Features.IFeature.IsVariable /// Whether this Usage may be time varying (that is, whether it is featured by the snapshots of its /// owningType, rather than being featured by the owningType itself). However, if isConstant is also /// true, then the value of the Usage is nevertheless constant over the entire duration of an instance - /// of its owningType (that is, it has the same value on all snapshots). The - /// property mayTimeVary redefines the KerML property Feature::isVariable, making it derived. The - /// property isConstant is inherited from Feature. + /// of its owningType (that is, it has the same value on all snapshots).The property mayTimeVary + /// redefines the KerML property Feature::isVariable, making it derived. The property isConstant is + /// inherited from Feature. /// [Property(xmiId: "_2022x_2_12e503d9_1737227200362_771035_69", aggregation: AggregationKind.None, lowerValue: 1, upperValue: 1, isOrdered: false, isReadOnly: false, isDerived: true, isDerivedUnion: false, isUnique: true, defaultValue: null)] [RedefinedProperty(propertyName: "_2022x_2_12e503d9_1725998273002_23711_212")] @@ -628,8 +628,8 @@ bool Core.Features.IFeature.IsVariable /// /// The ConnectorAsUsages that are nestedUsages of this Usage. Note that this list includes - /// BindingConnectorAsUsages, SuccessionAsUsages, and FlowConnectionUsages because these are - /// ConnectorAsUsages even though they are not ConnectionUsages. + /// BindingConnectorAsUsages, SuccessionAsUsages, and FlowUsages because these are ConnectorAsUsages + /// even though they are not ConnectionUsages. /// [Property(xmiId: "_19_0_2_12e503d9_1591479754895_422988_1242", aggregation: AggregationKind.None, lowerValue: 0, upperValue: int.MaxValue, isOrdered: true, isReadOnly: false, isDerived: true, isDerivedUnion: false, isUnique: true, defaultValue: null)] [SubsettedProperty(propertyName: "_18_5_3_12e503d9_1565472757327_162097_21259")] @@ -677,7 +677,7 @@ bool Core.Features.IFeature.IsVariable public List nestedItem => this.ComputeNestedItem(); /// - /// The MetadataUsages that are nestedUsages of this of this Usage. + /// The MetadataUsages that are ownedMembers of this of this Usage. /// [Property(xmiId: "_19_0_4_12e503d9_1661488589862_120785_2970", aggregation: AggregationKind.None, lowerValue: 0, upperValue: int.MaxValue, isOrdered: true, isReadOnly: false, isDerived: true, isDerivedUnion: false, isUnique: true, defaultValue: null)] [SubsettedProperty(propertyName: "_19_0_2_12e503d9_1591482421103_284620_2978")] @@ -1345,9 +1345,8 @@ bool Core.Features.IFeature.IsVariable public FeatureDirectionKind? DirectionOfExcluding(IFeature feature, List excluded) => this.ComputeDirectionOfExcludingOperation(feature, excluded); /// - /// If a Feature has no declaredName or declaredShortName , then its - /// effective name is given by the effective name of the Feature returned by the namingFeature() - /// operation, if any. + /// If a Feature has no declaredName or declaredShortName, then its effective name is given by the + /// effective name of the Feature returned by the namingFeature() operation, if any. /// /// /// The expected @@ -1486,11 +1485,10 @@ bool Core.Features.IFeature.IsVariable /// /// A Feature is compatible with an otherType if it either directly or indirectly specializes the - /// otherType or if the otherType is also a Feature and all of the following are true. - ///
  1. Neither this Feature or the otherType have any - /// ownedFeatures.
  2. This Feature directly or indirectly redefines a - /// Feature that is also directly or indirectly redefined by the otherType.
  3. - ///
  4. This Feature can access the otherType.
+ /// otherType or if the otherType is also a Feature and all of the following are true.
  1. Neither + /// this Feature or the otherType have any ownedFeatures.
  2. This Feature directly or indirectly + /// redefines a Feature that is also directly or indirectly redefined by the otherType.
  3. This + /// Feature can access the otherType.
///
/// /// No documentation provided @@ -1600,11 +1598,11 @@ bool Core.Features.IFeature.IsVariable /// Return whether this Expression is model-level evaluable. The visited parameter is used to track /// possible circular Feature references made from FeatureReferenceExpressions (see the redefinition of /// this operation for FeatureReferenceExpression). Such circular references are not allowed in - /// model-level evaluable expressions. An Expression that is not otherwise - /// specialized is model-level evaluable if it has no (non-implied) ownedSpecializations and all its - /// ownedFeatures are either in parameters, the result parameter or a result Expression owned via a - /// ResultExpressionMembership. The parameters must not have any ownedFeatures or a FeatureValue, and - /// the result Expression must be model-level evaluable. + /// model-level evaluable expressions.An Expression that is not otherwise specialized is model-level + /// evaluable if it has no (non-implied) ownedSpecializations and all its ownedFeatures are either in + /// parameters, the result parameter or a result Expression owned via a ResultExpressionMembership. The + /// parameters must not have any ownedFeatures or a FeatureValue, and the result Expression must be + /// model-level evaluable. /// /// /// No documentation provided @@ -1687,8 +1685,8 @@ bool Core.Features.IFeature.IsVariable /// an owningRelationship, then return the string constructed by appending to the path of it's /// owningRelationship the character / followed by the string representation of its position in the list /// of ownedRelatedElements of the owningRelationship (indexed starting at 1). Otherwise, return the - /// empty string. (Note that this operation is overridden for Relationships - /// to use owningRelatedElement when appropriate.) + /// empty string.(Note that this operation is overridden for Relationships to use owningRelatedElement + /// when appropriate.) /// /// /// The expected @@ -1742,13 +1740,12 @@ bool Core.Features.IFeature.IsVariable /// /// Return a subset of memberships, removing those Memberships whose memberElements are Features and for - /// which either of the following two conditions holds:
    - ///
  1. The memberElement of the Membership is included in redefined Features of another - /// Membership in memberships.
  2. One of the redefined Features of the - /// Membership is a directly redefinedFeature of an ownedFeature of this Type.
  3. - ///
For this purpose, the redefined Features of a Membership - /// whose memberElement is a Feature includes the memberElement and all Features directly or indirectly - /// redefined by the memberElement. + /// which either of the following two conditions holds:
  1. The memberElement of the Membership is + /// included in redefined Features of another Membership in memberships.
  2. One of the redefined + /// Features of the Membership is a directly redefinedFeature of an ownedFeature of this + /// Type.
For this purpose, the redefined Features of a Membership whose memberElement is a + /// Feature includes the memberElement and all Features directly or indirectly redefined by the + /// memberElement. ///
/// /// No documentation provided @@ -1875,11 +1872,11 @@ bool Core.Features.IFeature.IsVariable /// Return the Features used to determine the types of this Feature (other than this Feature itself). If /// this Feature is not conjugated, then the typingFeatures consist of all subsetted Features, except /// from CrossSubsetting, and the last chainingFeature (if any). If this Feature is conjugated, then the - /// typingFeatures are only its originalType (if the originalType is a Feature). - /// Note. CrossSubsetting is excluded from the determination of the type of a - /// Feature in order to avoid circularity in the construction of implied CrossSubsetting relationships. - /// The validateFeatureCrossFeatureType requires that the crossFeature of a Feature have the same type - /// as the Feature. + /// typingFeatures are only its originalType (if the originalType is a Feature).Note. + /// CrossSubsetting is excluded from the determination of the type of a Feature in order to avoid + /// circularity in the construction of implied CrossSubsetting relationships. The + /// validateFeatureCrossFeatureType requires that the crossFeature of a Feature have the same type as + /// the Feature. /// /// /// The expected collection of diff --git a/SysML2.NET/Core/AutoGenPoco/VariantMembership.cs b/SysML2.NET/Core/AutoGenPoco/VariantMembership.cs index 5d0779fc6..b035d5a04 100644 --- a/SysML2.NET/Core/AutoGenPoco/VariantMembership.cs +++ b/SysML2.NET/Core/AutoGenPoco/VariantMembership.cs @@ -498,8 +498,8 @@ List Root.Elements.IRelationship.Target /// an owningRelationship, then return the string constructed by appending to the path of it's /// owningRelationship the character / followed by the string representation of its position in the list /// of ownedRelatedElements of the owningRelationship (indexed starting at 1). Otherwise, return the - /// empty string. (Note that this operation is overridden for Relationships - /// to use owningRelatedElement when appropriate.) + /// empty string.(Note that this operation is overridden for Relationships to use owningRelatedElement + /// when appropriate.) /// /// /// The expected diff --git a/SysML2.NET/Core/AutoGenPoco/VerificationCaseDefinition.cs b/SysML2.NET/Core/AutoGenPoco/VerificationCaseDefinition.cs index 479ca147d..41ea00cd0 100644 --- a/SysML2.NET/Core/AutoGenPoco/VerificationCaseDefinition.cs +++ b/SysML2.NET/Core/AutoGenPoco/VerificationCaseDefinition.cs @@ -307,9 +307,9 @@ public VerificationCaseDefinition() /// /// Whether this Function can be used as the function of a model-level evaluable InvocationExpression. /// Certain Functions from the Kernel Functions Library are considered to have isModelLevelEvaluable = - /// true. For all other Functions it is false. Note: See the - /// specification of the KerML concrete syntax notation for Expressions for an identification of which - /// library Functions are model-level evaluable. + /// true. For all other Functions it is false.Note: See the specification of the KerML + /// concrete syntax notation for Expressions for an identification of which library Functions are + /// model-level evaluable. /// [Property(xmiId: "_19_0_4_12e503d9_1617395221463_139517_26381", aggregation: AggregationKind.None, lowerValue: 1, upperValue: 1, isOrdered: false, isReadOnly: false, isDerived: true, isDerivedUnion: false, isUnique: true, defaultValue: null)] [Implements(implementation: "IFunction.IsModelLevelEvaluable")] @@ -317,11 +317,11 @@ public VerificationCaseDefinition() /// /// Whether all things that meet the classification conditions of this Type must be classified by the - /// Type. (A Type gives conditions that must be met by whatever it - /// classifies, but when isSufficient is false, things may meet those conditions but still not be - /// classified by the Type. For example, a Type Car that is not sufficient could require everything it - /// classifies to have four wheels, but not all four wheeled things would classify as cars. However, if - /// the Type Car were sufficient, it would classify all four-wheeled things.) + /// Type.(A Type gives conditions that must be met by whatever it classifies, but when isSufficient + /// is false, things may meet those conditions but still not be classified by the Type. For example, a + /// Type Car that is not sufficient could require everything it classifies to have four wheels, but not + /// all four wheeled things would classify as cars. However, if the Type Car were sufficient, it would + /// classify all four-wheeled things.) /// [Property(xmiId: "_18_5_3_b9102da_1564072709069_937523_30797", aggregation: AggregationKind.None, lowerValue: 1, upperValue: 1, isOrdered: false, isReadOnly: false, isDerived: false, isDerivedUnion: false, isUnique: true, defaultValue: "false")] [Implements(implementation: "IType.IsSufficient")] @@ -607,7 +607,7 @@ public VerificationCaseDefinition() public List ownedMembership => this.ComputeOwnedMembership(); /// - /// The MetadataUsages that are ownedUsages of this Definition. + /// The MetadataUsages that are ownedMembers of this Definition. /// [Property(xmiId: "_19_0_4_12e503d9_1661488358064_457109_2881", aggregation: AggregationKind.None, lowerValue: 0, upperValue: int.MaxValue, isOrdered: true, isReadOnly: false, isDerived: true, isDerivedUnion: false, isUnique: true, defaultValue: null)] [SubsettedProperty(propertyName: "_19_0_2_12e503d9_1591482567975_649284_3005")] @@ -1116,8 +1116,8 @@ public VerificationCaseDefinition() /// an owningRelationship, then return the string constructed by appending to the path of it's /// owningRelationship the character / followed by the string representation of its position in the list /// of ownedRelatedElements of the owningRelationship (indexed starting at 1). Otherwise, return the - /// empty string. (Note that this operation is overridden for Relationships - /// to use owningRelatedElement when appropriate.) + /// empty string.(Note that this operation is overridden for Relationships to use owningRelatedElement + /// when appropriate.) /// /// /// The expected @@ -1139,13 +1139,12 @@ public VerificationCaseDefinition() /// /// Return a subset of memberships, removing those Memberships whose memberElements are Features and for - /// which either of the following two conditions holds:
    - ///
  1. The memberElement of the Membership is included in redefined Features of another - /// Membership in memberships.
  2. One of the redefined Features of the - /// Membership is a directly redefinedFeature of an ownedFeature of this Type.
  3. - ///
For this purpose, the redefined Features of a Membership - /// whose memberElement is a Feature includes the memberElement and all Features directly or indirectly - /// redefined by the memberElement. + /// which either of the following two conditions holds:
  1. The memberElement of the Membership is + /// included in redefined Features of another Membership in memberships.
  2. One of the redefined + /// Features of the Membership is a directly redefinedFeature of an ownedFeature of this + /// Type.
For this purpose, the redefined Features of a Membership whose memberElement is a + /// Feature includes the memberElement and all Features directly or indirectly redefined by the + /// memberElement. ///
/// /// No documentation provided diff --git a/SysML2.NET/Core/AutoGenPoco/VerificationCaseUsage.cs b/SysML2.NET/Core/AutoGenPoco/VerificationCaseUsage.cs index c3aeacb06..c623d8fed 100644 --- a/SysML2.NET/Core/AutoGenPoco/VerificationCaseUsage.cs +++ b/SysML2.NET/Core/AutoGenPoco/VerificationCaseUsage.cs @@ -474,11 +474,11 @@ public VerificationCaseUsage() /// /// Whether all things that meet the classification conditions of this Type must be classified by the - /// Type. (A Type gives conditions that must be met by whatever it - /// classifies, but when isSufficient is false, things may meet those conditions but still not be - /// classified by the Type. For example, a Type Car that is not sufficient could require everything it - /// classifies to have four wheels, but not all four wheeled things would classify as cars. However, if - /// the Type Car were sufficient, it would classify all four-wheeled things.) + /// Type.(A Type gives conditions that must be met by whatever it classifies, but when isSufficient + /// is false, things may meet those conditions but still not be classified by the Type. For example, a + /// Type Car that is not sufficient could require everything it classifies to have four wheels, but not + /// all four wheeled things would classify as cars. However, if the Type Car were sufficient, it would + /// classify all four-wheeled things.) /// [Property(xmiId: "_18_5_3_b9102da_1564072709069_937523_30797", aggregation: AggregationKind.None, lowerValue: 1, upperValue: 1, isOrdered: false, isReadOnly: false, isDerived: false, isDerivedUnion: false, isUnique: true, defaultValue: "false")] [Implements(implementation: "IType.IsSufficient")] @@ -516,9 +516,9 @@ bool Core.Features.IFeature.IsVariable /// Whether this Usage may be time varying (that is, whether it is featured by the snapshots of its /// owningType, rather than being featured by the owningType itself). However, if isConstant is also /// true, then the value of the Usage is nevertheless constant over the entire duration of an instance - /// of its owningType (that is, it has the same value on all snapshots). The - /// property mayTimeVary redefines the KerML property Feature::isVariable, making it derived. The - /// property isConstant is inherited from Feature. + /// of its owningType (that is, it has the same value on all snapshots).The property mayTimeVary + /// redefines the KerML property Feature::isVariable, making it derived. The property isConstant is + /// inherited from Feature. /// [Property(xmiId: "_2022x_2_12e503d9_1737227200362_771035_69", aggregation: AggregationKind.None, lowerValue: 1, upperValue: 1, isOrdered: false, isReadOnly: false, isDerived: true, isDerivedUnion: false, isUnique: true, defaultValue: null)] [RedefinedProperty(propertyName: "_2022x_2_12e503d9_1725998273002_23711_212")] @@ -619,8 +619,8 @@ bool Core.Features.IFeature.IsVariable /// /// The ConnectorAsUsages that are nestedUsages of this Usage. Note that this list includes - /// BindingConnectorAsUsages, SuccessionAsUsages, and FlowConnectionUsages because these are - /// ConnectorAsUsages even though they are not ConnectionUsages. + /// BindingConnectorAsUsages, SuccessionAsUsages, and FlowUsages because these are ConnectorAsUsages + /// even though they are not ConnectionUsages. /// [Property(xmiId: "_19_0_2_12e503d9_1591479754895_422988_1242", aggregation: AggregationKind.None, lowerValue: 0, upperValue: int.MaxValue, isOrdered: true, isReadOnly: false, isDerived: true, isDerivedUnion: false, isUnique: true, defaultValue: null)] [SubsettedProperty(propertyName: "_18_5_3_12e503d9_1565472757327_162097_21259")] @@ -668,7 +668,7 @@ bool Core.Features.IFeature.IsVariable public List nestedItem => this.ComputeNestedItem(); /// - /// The MetadataUsages that are nestedUsages of this of this Usage. + /// The MetadataUsages that are ownedMembers of this of this Usage. /// [Property(xmiId: "_19_0_4_12e503d9_1661488589862_120785_2970", aggregation: AggregationKind.None, lowerValue: 0, upperValue: int.MaxValue, isOrdered: true, isReadOnly: false, isDerived: true, isDerivedUnion: false, isUnique: true, defaultValue: null)] [SubsettedProperty(propertyName: "_19_0_2_12e503d9_1591482421103_284620_2978")] @@ -1344,9 +1344,8 @@ bool Core.Features.IFeature.IsVariable public FeatureDirectionKind? DirectionOfExcluding(IFeature feature, List excluded) => this.ComputeDirectionOfExcludingOperation(feature, excluded); /// - /// If a Feature has no declaredName or declaredShortName , then its - /// effective name is given by the effective name of the Feature returned by the namingFeature() - /// operation, if any. + /// If a Feature has no declaredName or declaredShortName, then its effective name is given by the + /// effective name of the Feature returned by the namingFeature() operation, if any. /// /// /// The expected @@ -1485,11 +1484,10 @@ bool Core.Features.IFeature.IsVariable /// /// A Feature is compatible with an otherType if it either directly or indirectly specializes the - /// otherType or if the otherType is also a Feature and all of the following are true. - ///
  1. Neither this Feature or the otherType have any - /// ownedFeatures.
  2. This Feature directly or indirectly redefines a - /// Feature that is also directly or indirectly redefined by the otherType.
  3. - ///
  4. This Feature can access the otherType.
+ /// otherType or if the otherType is also a Feature and all of the following are true.
  1. Neither + /// this Feature or the otherType have any ownedFeatures.
  2. This Feature directly or indirectly + /// redefines a Feature that is also directly or indirectly redefined by the otherType.
  3. This + /// Feature can access the otherType.
///
/// /// No documentation provided @@ -1599,11 +1597,11 @@ bool Core.Features.IFeature.IsVariable /// Return whether this Expression is model-level evaluable. The visited parameter is used to track /// possible circular Feature references made from FeatureReferenceExpressions (see the redefinition of /// this operation for FeatureReferenceExpression). Such circular references are not allowed in - /// model-level evaluable expressions. An Expression that is not otherwise - /// specialized is model-level evaluable if it has no (non-implied) ownedSpecializations and all its - /// ownedFeatures are either in parameters, the result parameter or a result Expression owned via a - /// ResultExpressionMembership. The parameters must not have any ownedFeatures or a FeatureValue, and - /// the result Expression must be model-level evaluable. + /// model-level evaluable expressions.An Expression that is not otherwise specialized is model-level + /// evaluable if it has no (non-implied) ownedSpecializations and all its ownedFeatures are either in + /// parameters, the result parameter or a result Expression owned via a ResultExpressionMembership. The + /// parameters must not have any ownedFeatures or a FeatureValue, and the result Expression must be + /// model-level evaluable. /// /// /// No documentation provided @@ -1686,8 +1684,8 @@ bool Core.Features.IFeature.IsVariable /// an owningRelationship, then return the string constructed by appending to the path of it's /// owningRelationship the character / followed by the string representation of its position in the list /// of ownedRelatedElements of the owningRelationship (indexed starting at 1). Otherwise, return the - /// empty string. (Note that this operation is overridden for Relationships - /// to use owningRelatedElement when appropriate.) + /// empty string.(Note that this operation is overridden for Relationships to use owningRelatedElement + /// when appropriate.) /// /// /// The expected @@ -1741,13 +1739,12 @@ bool Core.Features.IFeature.IsVariable /// /// Return a subset of memberships, removing those Memberships whose memberElements are Features and for - /// which either of the following two conditions holds:
    - ///
  1. The memberElement of the Membership is included in redefined Features of another - /// Membership in memberships.
  2. One of the redefined Features of the - /// Membership is a directly redefinedFeature of an ownedFeature of this Type.
  3. - ///
For this purpose, the redefined Features of a Membership - /// whose memberElement is a Feature includes the memberElement and all Features directly or indirectly - /// redefined by the memberElement. + /// which either of the following two conditions holds:
  1. The memberElement of the Membership is + /// included in redefined Features of another Membership in memberships.
  2. One of the redefined + /// Features of the Membership is a directly redefinedFeature of an ownedFeature of this + /// Type.
For this purpose, the redefined Features of a Membership whose memberElement is a + /// Feature includes the memberElement and all Features directly or indirectly redefined by the + /// memberElement. ///
/// /// No documentation provided @@ -1874,11 +1871,11 @@ bool Core.Features.IFeature.IsVariable /// Return the Features used to determine the types of this Feature (other than this Feature itself). If /// this Feature is not conjugated, then the typingFeatures consist of all subsetted Features, except /// from CrossSubsetting, and the last chainingFeature (if any). If this Feature is conjugated, then the - /// typingFeatures are only its originalType (if the originalType is a Feature). - /// Note. CrossSubsetting is excluded from the determination of the type of a - /// Feature in order to avoid circularity in the construction of implied CrossSubsetting relationships. - /// The validateFeatureCrossFeatureType requires that the crossFeature of a Feature have the same type - /// as the Feature. + /// typingFeatures are only its originalType (if the originalType is a Feature).Note. + /// CrossSubsetting is excluded from the determination of the type of a Feature in order to avoid + /// circularity in the construction of implied CrossSubsetting relationships. The + /// validateFeatureCrossFeatureType requires that the crossFeature of a Feature have the same type as + /// the Feature. /// /// /// The expected collection of diff --git a/SysML2.NET/Core/AutoGenPoco/ViewDefinition.cs b/SysML2.NET/Core/AutoGenPoco/ViewDefinition.cs index d432d5fe8..629e26699 100644 --- a/SysML2.NET/Core/AutoGenPoco/ViewDefinition.cs +++ b/SysML2.NET/Core/AutoGenPoco/ViewDefinition.cs @@ -272,11 +272,11 @@ public ViewDefinition() /// /// Whether all things that meet the classification conditions of this Type must be classified by the - /// Type. (A Type gives conditions that must be met by whatever it - /// classifies, but when isSufficient is false, things may meet those conditions but still not be - /// classified by the Type. For example, a Type Car that is not sufficient could require everything it - /// classifies to have four wheels, but not all four wheeled things would classify as cars. However, if - /// the Type Car were sufficient, it would classify all four-wheeled things.) + /// Type.(A Type gives conditions that must be met by whatever it classifies, but when isSufficient + /// is false, things may meet those conditions but still not be classified by the Type. For example, a + /// Type Car that is not sufficient could require everything it classifies to have four wheels, but not + /// all four wheeled things would classify as cars. However, if the Type Car were sufficient, it would + /// classify all four-wheeled things.) /// [Property(xmiId: "_18_5_3_b9102da_1564072709069_937523_30797", aggregation: AggregationKind.None, lowerValue: 1, upperValue: 1, isOrdered: false, isReadOnly: false, isDerived: false, isDerivedUnion: false, isUnique: true, defaultValue: "false")] [Implements(implementation: "IType.IsSufficient")] @@ -554,7 +554,7 @@ public ViewDefinition() public List ownedMembership => this.ComputeOwnedMembership(); /// - /// The MetadataUsages that are ownedUsages of this Definition. + /// The MetadataUsages that are ownedMembers of this Definition. /// [Property(xmiId: "_19_0_4_12e503d9_1661488358064_457109_2881", aggregation: AggregationKind.None, lowerValue: 0, upperValue: int.MaxValue, isOrdered: true, isReadOnly: false, isDerived: true, isDerivedUnion: false, isUnique: true, defaultValue: null)] [SubsettedProperty(propertyName: "_19_0_2_12e503d9_1591482567975_649284_3005")] @@ -1055,8 +1055,8 @@ public ViewDefinition() /// an owningRelationship, then return the string constructed by appending to the path of it's /// owningRelationship the character / followed by the string representation of its position in the list /// of ownedRelatedElements of the owningRelationship (indexed starting at 1). Otherwise, return the - /// empty string. (Note that this operation is overridden for Relationships - /// to use owningRelatedElement when appropriate.) + /// empty string.(Note that this operation is overridden for Relationships to use owningRelatedElement + /// when appropriate.) /// /// /// The expected @@ -1078,13 +1078,12 @@ public ViewDefinition() /// /// Return a subset of memberships, removing those Memberships whose memberElements are Features and for - /// which either of the following two conditions holds:
    - ///
  1. The memberElement of the Membership is included in redefined Features of another - /// Membership in memberships.
  2. One of the redefined Features of the - /// Membership is a directly redefinedFeature of an ownedFeature of this Type.
  3. - ///
For this purpose, the redefined Features of a Membership - /// whose memberElement is a Feature includes the memberElement and all Features directly or indirectly - /// redefined by the memberElement. + /// which either of the following two conditions holds:
  1. The memberElement of the Membership is + /// included in redefined Features of another Membership in memberships.
  2. One of the redefined + /// Features of the Membership is a directly redefinedFeature of an ownedFeature of this + /// Type.
For this purpose, the redefined Features of a Membership whose memberElement is a + /// Feature includes the memberElement and all Features directly or indirectly redefined by the + /// memberElement. ///
/// /// No documentation provided diff --git a/SysML2.NET/Core/AutoGenPoco/ViewRenderingMembership.cs b/SysML2.NET/Core/AutoGenPoco/ViewRenderingMembership.cs index 2cd5f16a1..517daddd3 100644 --- a/SysML2.NET/Core/AutoGenPoco/ViewRenderingMembership.cs +++ b/SysML2.NET/Core/AutoGenPoco/ViewRenderingMembership.cs @@ -528,8 +528,8 @@ List Root.Elements.IRelationship.Target /// an owningRelationship, then return the string constructed by appending to the path of it's /// owningRelationship the character / followed by the string representation of its position in the list /// of ownedRelatedElements of the owningRelationship (indexed starting at 1). Otherwise, return the - /// empty string. (Note that this operation is overridden for Relationships - /// to use owningRelatedElement when appropriate.) + /// empty string.(Note that this operation is overridden for Relationships to use owningRelatedElement + /// when appropriate.) /// /// /// The expected diff --git a/SysML2.NET/Core/AutoGenPoco/ViewUsage.cs b/SysML2.NET/Core/AutoGenPoco/ViewUsage.cs index 3892bfdd8..ad3c90035 100644 --- a/SysML2.NET/Core/AutoGenPoco/ViewUsage.cs +++ b/SysML2.NET/Core/AutoGenPoco/ViewUsage.cs @@ -421,11 +421,11 @@ public ViewUsage() /// /// Whether all things that meet the classification conditions of this Type must be classified by the - /// Type. (A Type gives conditions that must be met by whatever it - /// classifies, but when isSufficient is false, things may meet those conditions but still not be - /// classified by the Type. For example, a Type Car that is not sufficient could require everything it - /// classifies to have four wheels, but not all four wheeled things would classify as cars. However, if - /// the Type Car were sufficient, it would classify all four-wheeled things.) + /// Type.(A Type gives conditions that must be met by whatever it classifies, but when isSufficient + /// is false, things may meet those conditions but still not be classified by the Type. For example, a + /// Type Car that is not sufficient could require everything it classifies to have four wheels, but not + /// all four wheeled things would classify as cars. However, if the Type Car were sufficient, it would + /// classify all four-wheeled things.) /// [Property(xmiId: "_18_5_3_b9102da_1564072709069_937523_30797", aggregation: AggregationKind.None, lowerValue: 1, upperValue: 1, isOrdered: false, isReadOnly: false, isDerived: false, isDerivedUnion: false, isUnique: true, defaultValue: "false")] [Implements(implementation: "IType.IsSufficient")] @@ -473,9 +473,9 @@ bool Core.Features.IFeature.IsVariable /// Whether this Usage may be time varying (that is, whether it is featured by the snapshots of its /// owningType, rather than being featured by the owningType itself). However, if isConstant is also /// true, then the value of the Usage is nevertheless constant over the entire duration of an instance - /// of its owningType (that is, it has the same value on all snapshots). The - /// property mayTimeVary redefines the KerML property Feature::isVariable, making it derived. The - /// property isConstant is inherited from Feature. + /// of its owningType (that is, it has the same value on all snapshots).The property mayTimeVary + /// redefines the KerML property Feature::isVariable, making it derived. The property isConstant is + /// inherited from Feature. /// [Property(xmiId: "_2022x_2_12e503d9_1737227200362_771035_69", aggregation: AggregationKind.None, lowerValue: 1, upperValue: 1, isOrdered: false, isReadOnly: false, isDerived: true, isDerivedUnion: false, isUnique: true, defaultValue: null)] [RedefinedProperty(propertyName: "_2022x_2_12e503d9_1725998273002_23711_212")] @@ -576,8 +576,8 @@ bool Core.Features.IFeature.IsVariable /// /// The ConnectorAsUsages that are nestedUsages of this Usage. Note that this list includes - /// BindingConnectorAsUsages, SuccessionAsUsages, and FlowConnectionUsages because these are - /// ConnectorAsUsages even though they are not ConnectionUsages. + /// BindingConnectorAsUsages, SuccessionAsUsages, and FlowUsages because these are ConnectorAsUsages + /// even though they are not ConnectionUsages. /// [Property(xmiId: "_19_0_2_12e503d9_1591479754895_422988_1242", aggregation: AggregationKind.None, lowerValue: 0, upperValue: int.MaxValue, isOrdered: true, isReadOnly: false, isDerived: true, isDerivedUnion: false, isUnique: true, defaultValue: null)] [SubsettedProperty(propertyName: "_18_5_3_12e503d9_1565472757327_162097_21259")] @@ -625,7 +625,7 @@ bool Core.Features.IFeature.IsVariable public List nestedItem => this.ComputeNestedItem(); /// - /// The MetadataUsages that are nestedUsages of this of this Usage. + /// The MetadataUsages that are ownedMembers of this of this Usage. /// [Property(xmiId: "_19_0_4_12e503d9_1661488589862_120785_2970", aggregation: AggregationKind.None, lowerValue: 0, upperValue: int.MaxValue, isOrdered: true, isReadOnly: false, isDerived: true, isDerivedUnion: false, isUnique: true, defaultValue: null)] [SubsettedProperty(propertyName: "_19_0_2_12e503d9_1591482421103_284620_2978")] @@ -1267,9 +1267,8 @@ bool Core.Features.IFeature.IsVariable public FeatureDirectionKind? DirectionOfExcluding(IFeature feature, List excluded) => this.ComputeDirectionOfExcludingOperation(feature, excluded); /// - /// If a Feature has no declaredName or declaredShortName , then its - /// effective name is given by the effective name of the Feature returned by the namingFeature() - /// operation, if any. + /// If a Feature has no declaredName or declaredShortName, then its effective name is given by the + /// effective name of the Feature returned by the namingFeature() operation, if any. /// /// /// The expected @@ -1385,11 +1384,10 @@ bool Core.Features.IFeature.IsVariable /// /// A Feature is compatible with an otherType if it either directly or indirectly specializes the - /// otherType or if the otherType is also a Feature and all of the following are true. - ///
  1. Neither this Feature or the otherType have any - /// ownedFeatures.
  2. This Feature directly or indirectly redefines a - /// Feature that is also directly or indirectly redefined by the otherType.
  3. - ///
  4. This Feature can access the otherType.
+ /// otherType or if the otherType is also a Feature and all of the following are true.
  1. Neither + /// this Feature or the otherType have any ownedFeatures.
  2. This Feature directly or indirectly + /// redefines a Feature that is also directly or indirectly redefined by the otherType.
  3. This + /// Feature can access the otherType.
///
/// /// No documentation provided @@ -1547,8 +1545,8 @@ bool Core.Features.IFeature.IsVariable /// an owningRelationship, then return the string constructed by appending to the path of it's /// owningRelationship the character / followed by the string representation of its position in the list /// of ownedRelatedElements of the owningRelationship (indexed starting at 1). Otherwise, return the - /// empty string. (Note that this operation is overridden for Relationships - /// to use owningRelatedElement when appropriate.) + /// empty string.(Note that this operation is overridden for Relationships to use owningRelatedElement + /// when appropriate.) /// /// /// The expected @@ -1602,13 +1600,12 @@ bool Core.Features.IFeature.IsVariable /// /// Return a subset of memberships, removing those Memberships whose memberElements are Features and for - /// which either of the following two conditions holds:
    - ///
  1. The memberElement of the Membership is included in redefined Features of another - /// Membership in memberships.
  2. One of the redefined Features of the - /// Membership is a directly redefinedFeature of an ownedFeature of this Type.
  3. - ///
For this purpose, the redefined Features of a Membership - /// whose memberElement is a Feature includes the memberElement and all Features directly or indirectly - /// redefined by the memberElement. + /// which either of the following two conditions holds:
  1. The memberElement of the Membership is + /// included in redefined Features of another Membership in memberships.
  2. One of the redefined + /// Features of the Membership is a directly redefinedFeature of an ownedFeature of this + /// Type.
For this purpose, the redefined Features of a Membership whose memberElement is a + /// Feature includes the memberElement and all Features directly or indirectly redefined by the + /// memberElement. ///
/// /// No documentation provided @@ -1735,11 +1732,11 @@ bool Core.Features.IFeature.IsVariable /// Return the Features used to determine the types of this Feature (other than this Feature itself). If /// this Feature is not conjugated, then the typingFeatures consist of all subsetted Features, except /// from CrossSubsetting, and the last chainingFeature (if any). If this Feature is conjugated, then the - /// typingFeatures are only its originalType (if the originalType is a Feature). - /// Note. CrossSubsetting is excluded from the determination of the type of a - /// Feature in order to avoid circularity in the construction of implied CrossSubsetting relationships. - /// The validateFeatureCrossFeatureType requires that the crossFeature of a Feature have the same type - /// as the Feature. + /// typingFeatures are only its originalType (if the originalType is a Feature).Note. + /// CrossSubsetting is excluded from the determination of the type of a Feature in order to avoid + /// circularity in the construction of implied CrossSubsetting relationships. The + /// validateFeatureCrossFeatureType requires that the crossFeature of a Feature have the same type as + /// the Feature. /// /// /// The expected collection of diff --git a/SysML2.NET/Core/AutoGenPoco/ViewpointDefinition.cs b/SysML2.NET/Core/AutoGenPoco/ViewpointDefinition.cs index dafa010b9..94ffce6fd 100644 --- a/SysML2.NET/Core/AutoGenPoco/ViewpointDefinition.cs +++ b/SysML2.NET/Core/AutoGenPoco/ViewpointDefinition.cs @@ -317,9 +317,9 @@ string Root.Elements.IElement.DeclaredShortName /// /// Whether this Function can be used as the function of a model-level evaluable InvocationExpression. /// Certain Functions from the Kernel Functions Library are considered to have isModelLevelEvaluable = - /// true. For all other Functions it is false. Note: See the - /// specification of the KerML concrete syntax notation for Expressions for an identification of which - /// library Functions are model-level evaluable. + /// true. For all other Functions it is false.Note: See the specification of the KerML + /// concrete syntax notation for Expressions for an identification of which library Functions are + /// model-level evaluable. /// [Property(xmiId: "_19_0_4_12e503d9_1617395221463_139517_26381", aggregation: AggregationKind.None, lowerValue: 1, upperValue: 1, isOrdered: false, isReadOnly: false, isDerived: true, isDerivedUnion: false, isUnique: true, defaultValue: null)] [Implements(implementation: "IFunction.IsModelLevelEvaluable")] @@ -327,11 +327,11 @@ string Root.Elements.IElement.DeclaredShortName /// /// Whether all things that meet the classification conditions of this Type must be classified by the - /// Type. (A Type gives conditions that must be met by whatever it - /// classifies, but when isSufficient is false, things may meet those conditions but still not be - /// classified by the Type. For example, a Type Car that is not sufficient could require everything it - /// classifies to have four wheels, but not all four wheeled things would classify as cars. However, if - /// the Type Car were sufficient, it would classify all four-wheeled things.) + /// Type.(A Type gives conditions that must be met by whatever it classifies, but when isSufficient + /// is false, things may meet those conditions but still not be classified by the Type. For example, a + /// Type Car that is not sufficient could require everything it classifies to have four wheels, but not + /// all four wheeled things would classify as cars. However, if the Type Car were sufficient, it would + /// classify all four-wheeled things.) /// [Property(xmiId: "_18_5_3_b9102da_1564072709069_937523_30797", aggregation: AggregationKind.None, lowerValue: 1, upperValue: 1, isOrdered: false, isReadOnly: false, isDerived: false, isDerivedUnion: false, isUnique: true, defaultValue: "false")] [Implements(implementation: "IType.IsSufficient")] @@ -609,7 +609,7 @@ string Root.Elements.IElement.DeclaredShortName public List ownedMembership => this.ComputeOwnedMembership(); /// - /// The MetadataUsages that are ownedUsages of this Definition. + /// The MetadataUsages that are ownedMembers of this Definition. /// [Property(xmiId: "_19_0_4_12e503d9_1661488358064_457109_2881", aggregation: AggregationKind.None, lowerValue: 0, upperValue: int.MaxValue, isOrdered: true, isReadOnly: false, isDerived: true, isDerivedUnion: false, isUnique: true, defaultValue: null)] [SubsettedProperty(propertyName: "_19_0_2_12e503d9_1591482567975_649284_3005")] @@ -857,7 +857,7 @@ string Root.Elements.IElement.DeclaredShortName public string shortName => this.ComputeShortName(); /// - /// The parameters of this RequirementDefinition that represent stakeholders for th requirement. + /// The parameters of this RequirementDefinition that represent stakeholders for the requirement. /// [Property(xmiId: "_19_0_4_12e503d9_1624033010374_29375_40166", aggregation: AggregationKind.None, lowerValue: 0, upperValue: int.MaxValue, isOrdered: true, isReadOnly: false, isDerived: true, isDerivedUnion: false, isUnique: true, defaultValue: null)] [SubsettedProperty(propertyName: "_18_5_3_12e503d9_1543948010065_362066_20413")] @@ -1155,8 +1155,8 @@ string Root.Elements.IElement.DeclaredShortName /// an owningRelationship, then return the string constructed by appending to the path of it's /// owningRelationship the character / followed by the string representation of its position in the list /// of ownedRelatedElements of the owningRelationship (indexed starting at 1). Otherwise, return the - /// empty string. (Note that this operation is overridden for Relationships - /// to use owningRelatedElement when appropriate.) + /// empty string.(Note that this operation is overridden for Relationships to use owningRelatedElement + /// when appropriate.) /// /// /// The expected @@ -1178,13 +1178,12 @@ string Root.Elements.IElement.DeclaredShortName /// /// Return a subset of memberships, removing those Memberships whose memberElements are Features and for - /// which either of the following two conditions holds:
    - ///
  1. The memberElement of the Membership is included in redefined Features of another - /// Membership in memberships.
  2. One of the redefined Features of the - /// Membership is a directly redefinedFeature of an ownedFeature of this Type.
  3. - ///
For this purpose, the redefined Features of a Membership - /// whose memberElement is a Feature includes the memberElement and all Features directly or indirectly - /// redefined by the memberElement. + /// which either of the following two conditions holds:
  1. The memberElement of the Membership is + /// included in redefined Features of another Membership in memberships.
  2. One of the redefined + /// Features of the Membership is a directly redefinedFeature of an ownedFeature of this + /// Type.
For this purpose, the redefined Features of a Membership whose memberElement is a + /// Feature includes the memberElement and all Features directly or indirectly redefined by the + /// memberElement. ///
/// /// No documentation provided diff --git a/SysML2.NET/Core/AutoGenPoco/ViewpointUsage.cs b/SysML2.NET/Core/AutoGenPoco/ViewpointUsage.cs index 46b69f8b0..b31920314 100644 --- a/SysML2.NET/Core/AutoGenPoco/ViewpointUsage.cs +++ b/SysML2.NET/Core/AutoGenPoco/ViewpointUsage.cs @@ -483,11 +483,11 @@ string Root.Elements.IElement.DeclaredShortName /// /// Whether all things that meet the classification conditions of this Type must be classified by the - /// Type. (A Type gives conditions that must be met by whatever it - /// classifies, but when isSufficient is false, things may meet those conditions but still not be - /// classified by the Type. For example, a Type Car that is not sufficient could require everything it - /// classifies to have four wheels, but not all four wheeled things would classify as cars. However, if - /// the Type Car were sufficient, it would classify all four-wheeled things.) + /// Type.(A Type gives conditions that must be met by whatever it classifies, but when isSufficient + /// is false, things may meet those conditions but still not be classified by the Type. For example, a + /// Type Car that is not sufficient could require everything it classifies to have four wheels, but not + /// all four wheeled things would classify as cars. However, if the Type Car were sufficient, it would + /// classify all four-wheeled things.) /// [Property(xmiId: "_18_5_3_b9102da_1564072709069_937523_30797", aggregation: AggregationKind.None, lowerValue: 1, upperValue: 1, isOrdered: false, isReadOnly: false, isDerived: false, isDerivedUnion: false, isUnique: true, defaultValue: "false")] [Implements(implementation: "IType.IsSufficient")] @@ -525,9 +525,9 @@ bool Core.Features.IFeature.IsVariable /// Whether this Usage may be time varying (that is, whether it is featured by the snapshots of its /// owningType, rather than being featured by the owningType itself). However, if isConstant is also /// true, then the value of the Usage is nevertheless constant over the entire duration of an instance - /// of its owningType (that is, it has the same value on all snapshots). The - /// property mayTimeVary redefines the KerML property Feature::isVariable, making it derived. The - /// property isConstant is inherited from Feature. + /// of its owningType (that is, it has the same value on all snapshots).The property mayTimeVary + /// redefines the KerML property Feature::isVariable, making it derived. The property isConstant is + /// inherited from Feature. /// [Property(xmiId: "_2022x_2_12e503d9_1737227200362_771035_69", aggregation: AggregationKind.None, lowerValue: 1, upperValue: 1, isOrdered: false, isReadOnly: false, isDerived: true, isDerivedUnion: false, isUnique: true, defaultValue: null)] [RedefinedProperty(propertyName: "_2022x_2_12e503d9_1725998273002_23711_212")] @@ -628,8 +628,8 @@ bool Core.Features.IFeature.IsVariable /// /// The ConnectorAsUsages that are nestedUsages of this Usage. Note that this list includes - /// BindingConnectorAsUsages, SuccessionAsUsages, and FlowConnectionUsages because these are - /// ConnectorAsUsages even though they are not ConnectionUsages. + /// BindingConnectorAsUsages, SuccessionAsUsages, and FlowUsages because these are ConnectorAsUsages + /// even though they are not ConnectionUsages. /// [Property(xmiId: "_19_0_2_12e503d9_1591479754895_422988_1242", aggregation: AggregationKind.None, lowerValue: 0, upperValue: int.MaxValue, isOrdered: true, isReadOnly: false, isDerived: true, isDerivedUnion: false, isUnique: true, defaultValue: null)] [SubsettedProperty(propertyName: "_18_5_3_12e503d9_1565472757327_162097_21259")] @@ -677,7 +677,7 @@ bool Core.Features.IFeature.IsVariable public List nestedItem => this.ComputeNestedItem(); /// - /// The MetadataUsages that are nestedUsages of this of this Usage. + /// The MetadataUsages that are ownedMembers of this of this Usage. /// [Property(xmiId: "_19_0_4_12e503d9_1661488589862_120785_2970", aggregation: AggregationKind.None, lowerValue: 0, upperValue: int.MaxValue, isOrdered: true, isReadOnly: false, isDerived: true, isDerivedUnion: false, isUnique: true, defaultValue: null)] [SubsettedProperty(propertyName: "_19_0_2_12e503d9_1591482421103_284620_2978")] @@ -1386,9 +1386,8 @@ bool Core.Features.IFeature.IsVariable public FeatureDirectionKind? DirectionOfExcluding(IFeature feature, List excluded) => this.ComputeDirectionOfExcludingOperation(feature, excluded); /// - /// If a Feature has no declaredName or declaredShortName , then its - /// effective name is given by the effective name of the Feature returned by the namingFeature() - /// operation, if any. + /// If a Feature has no declaredName or declaredShortName, then its effective name is given by the + /// effective name of the Feature returned by the namingFeature() operation, if any. /// /// /// The expected @@ -1507,11 +1506,10 @@ bool Core.Features.IFeature.IsVariable /// /// A Feature is compatible with an otherType if it either directly or indirectly specializes the - /// otherType or if the otherType is also a Feature and all of the following are true. - ///
  1. Neither this Feature or the otherType have any - /// ownedFeatures.
  2. This Feature directly or indirectly redefines a - /// Feature that is also directly or indirectly redefined by the otherType.
  3. - ///
  4. This Feature can access the otherType.
+ /// otherType or if the otherType is also a Feature and all of the following are true.
  1. Neither + /// this Feature or the otherType have any ownedFeatures.
  2. This Feature directly or indirectly + /// redefines a Feature that is also directly or indirectly redefined by the otherType.
  3. This + /// Feature can access the otherType.
///
/// /// No documentation provided @@ -1611,11 +1609,11 @@ bool Core.Features.IFeature.IsVariable /// Return whether this Expression is model-level evaluable. The visited parameter is used to track /// possible circular Feature references made from FeatureReferenceExpressions (see the redefinition of /// this operation for FeatureReferenceExpression). Such circular references are not allowed in - /// model-level evaluable expressions. An Expression that is not otherwise - /// specialized is model-level evaluable if it has no (non-implied) ownedSpecializations and all its - /// ownedFeatures are either in parameters, the result parameter or a result Expression owned via a - /// ResultExpressionMembership. The parameters must not have any ownedFeatures or a FeatureValue, and - /// the result Expression must be model-level evaluable. + /// model-level evaluable expressions.An Expression that is not otherwise specialized is model-level + /// evaluable if it has no (non-implied) ownedSpecializations and all its ownedFeatures are either in + /// parameters, the result parameter or a result Expression owned via a ResultExpressionMembership. The + /// parameters must not have any ownedFeatures or a FeatureValue, and the result Expression must be + /// model-level evaluable. /// /// /// No documentation provided @@ -1708,8 +1706,8 @@ bool Core.Features.IFeature.IsVariable /// an owningRelationship, then return the string constructed by appending to the path of it's /// owningRelationship the character / followed by the string representation of its position in the list /// of ownedRelatedElements of the owningRelationship (indexed starting at 1). Otherwise, return the - /// empty string. (Note that this operation is overridden for Relationships - /// to use owningRelatedElement when appropriate.) + /// empty string.(Note that this operation is overridden for Relationships to use owningRelatedElement + /// when appropriate.) /// /// /// The expected @@ -1763,13 +1761,12 @@ bool Core.Features.IFeature.IsVariable /// /// Return a subset of memberships, removing those Memberships whose memberElements are Features and for - /// which either of the following two conditions holds:
    - ///
  1. The memberElement of the Membership is included in redefined Features of another - /// Membership in memberships.
  2. One of the redefined Features of the - /// Membership is a directly redefinedFeature of an ownedFeature of this Type.
  3. - ///
For this purpose, the redefined Features of a Membership - /// whose memberElement is a Feature includes the memberElement and all Features directly or indirectly - /// redefined by the memberElement. + /// which either of the following two conditions holds:
  1. The memberElement of the Membership is + /// included in redefined Features of another Membership in memberships.
  2. One of the redefined + /// Features of the Membership is a directly redefinedFeature of an ownedFeature of this + /// Type.
For this purpose, the redefined Features of a Membership whose memberElement is a + /// Feature includes the memberElement and all Features directly or indirectly redefined by the + /// memberElement. ///
/// /// No documentation provided @@ -1896,11 +1893,11 @@ bool Core.Features.IFeature.IsVariable /// Return the Features used to determine the types of this Feature (other than this Feature itself). If /// this Feature is not conjugated, then the typingFeatures consist of all subsetted Features, except /// from CrossSubsetting, and the last chainingFeature (if any). If this Feature is conjugated, then the - /// typingFeatures are only its originalType (if the originalType is a Feature). - /// Note. CrossSubsetting is excluded from the determination of the type of a - /// Feature in order to avoid circularity in the construction of implied CrossSubsetting relationships. - /// The validateFeatureCrossFeatureType requires that the crossFeature of a Feature have the same type - /// as the Feature. + /// typingFeatures are only its originalType (if the originalType is a Feature).Note. + /// CrossSubsetting is excluded from the determination of the type of a Feature in order to avoid + /// circularity in the construction of implied CrossSubsetting relationships. The + /// validateFeatureCrossFeatureType requires that the crossFeature of a Feature have the same type as + /// the Feature. /// /// /// The expected collection of diff --git a/SysML2.NET/Core/AutoGenPoco/WhileLoopActionUsage.cs b/SysML2.NET/Core/AutoGenPoco/WhileLoopActionUsage.cs index 01497d2b5..86ab9ff4d 100644 --- a/SysML2.NET/Core/AutoGenPoco/WhileLoopActionUsage.cs +++ b/SysML2.NET/Core/AutoGenPoco/WhileLoopActionUsage.cs @@ -442,11 +442,11 @@ public WhileLoopActionUsage() /// /// Whether all things that meet the classification conditions of this Type must be classified by the - /// Type. (A Type gives conditions that must be met by whatever it - /// classifies, but when isSufficient is false, things may meet those conditions but still not be - /// classified by the Type. For example, a Type Car that is not sufficient could require everything it - /// classifies to have four wheels, but not all four wheeled things would classify as cars. However, if - /// the Type Car were sufficient, it would classify all four-wheeled things.) + /// Type.(A Type gives conditions that must be met by whatever it classifies, but when isSufficient + /// is false, things may meet those conditions but still not be classified by the Type. For example, a + /// Type Car that is not sufficient could require everything it classifies to have four wheels, but not + /// all four wheeled things would classify as cars. However, if the Type Car were sufficient, it would + /// classify all four-wheeled things.) /// [Property(xmiId: "_18_5_3_b9102da_1564072709069_937523_30797", aggregation: AggregationKind.None, lowerValue: 1, upperValue: 1, isOrdered: false, isReadOnly: false, isDerived: false, isDerivedUnion: false, isUnique: true, defaultValue: "false")] [Implements(implementation: "IType.IsSufficient")] @@ -484,9 +484,9 @@ bool Core.Features.IFeature.IsVariable /// Whether this Usage may be time varying (that is, whether it is featured by the snapshots of its /// owningType, rather than being featured by the owningType itself). However, if isConstant is also /// true, then the value of the Usage is nevertheless constant over the entire duration of an instance - /// of its owningType (that is, it has the same value on all snapshots). The - /// property mayTimeVary redefines the KerML property Feature::isVariable, making it derived. The - /// property isConstant is inherited from Feature. + /// of its owningType (that is, it has the same value on all snapshots).The property mayTimeVary + /// redefines the KerML property Feature::isVariable, making it derived. The property isConstant is + /// inherited from Feature. /// [Property(xmiId: "_2022x_2_12e503d9_1737227200362_771035_69", aggregation: AggregationKind.None, lowerValue: 1, upperValue: 1, isOrdered: false, isReadOnly: false, isDerived: true, isDerivedUnion: false, isUnique: true, defaultValue: null)] [RedefinedProperty(propertyName: "_2022x_2_12e503d9_1725998273002_23711_212")] @@ -587,8 +587,8 @@ bool Core.Features.IFeature.IsVariable /// /// The ConnectorAsUsages that are nestedUsages of this Usage. Note that this list includes - /// BindingConnectorAsUsages, SuccessionAsUsages, and FlowConnectionUsages because these are - /// ConnectorAsUsages even though they are not ConnectionUsages. + /// BindingConnectorAsUsages, SuccessionAsUsages, and FlowUsages because these are ConnectorAsUsages + /// even though they are not ConnectionUsages. /// [Property(xmiId: "_19_0_2_12e503d9_1591479754895_422988_1242", aggregation: AggregationKind.None, lowerValue: 0, upperValue: int.MaxValue, isOrdered: true, isReadOnly: false, isDerived: true, isDerivedUnion: false, isUnique: true, defaultValue: null)] [SubsettedProperty(propertyName: "_18_5_3_12e503d9_1565472757327_162097_21259")] @@ -636,7 +636,7 @@ bool Core.Features.IFeature.IsVariable public List nestedItem => this.ComputeNestedItem(); /// - /// The MetadataUsages that are nestedUsages of this of this Usage. + /// The MetadataUsages that are ownedMembers of this of this Usage. /// [Property(xmiId: "_19_0_4_12e503d9_1661488589862_120785_2970", aggregation: AggregationKind.None, lowerValue: 0, upperValue: int.MaxValue, isOrdered: true, isReadOnly: false, isDerived: true, isDerivedUnion: false, isUnique: true, defaultValue: null)] [SubsettedProperty(propertyName: "_19_0_2_12e503d9_1591482421103_284620_2978")] @@ -1273,9 +1273,8 @@ bool Core.Features.IFeature.IsVariable public FeatureDirectionKind? DirectionOfExcluding(IFeature feature, List excluded) => this.ComputeDirectionOfExcludingOperation(feature, excluded); /// - /// If a Feature has no declaredName or declaredShortName , then its - /// effective name is given by the effective name of the Feature returned by the namingFeature() - /// operation, if any. + /// If a Feature has no declaredName or declaredShortName, then its effective name is given by the + /// effective name of the Feature returned by the namingFeature() operation, if any. /// /// /// The expected @@ -1400,11 +1399,10 @@ bool Core.Features.IFeature.IsVariable /// /// A Feature is compatible with an otherType if it either directly or indirectly specializes the - /// otherType or if the otherType is also a Feature and all of the following are true. - ///
  1. Neither this Feature or the otherType have any - /// ownedFeatures.
  2. This Feature directly or indirectly redefines a - /// Feature that is also directly or indirectly redefined by the otherType.
  3. - ///
  4. This Feature can access the otherType.
+ /// otherType or if the otherType is also a Feature and all of the following are true.
  1. Neither + /// this Feature or the otherType have any ownedFeatures.
  2. This Feature directly or indirectly + /// redefines a Feature that is also directly or indirectly redefined by the otherType.
  3. This + /// Feature can access the otherType.
///
/// /// No documentation provided @@ -1572,8 +1570,8 @@ bool Core.Features.IFeature.IsVariable /// an owningRelationship, then return the string constructed by appending to the path of it's /// owningRelationship the character / followed by the string representation of its position in the list /// of ownedRelatedElements of the owningRelationship (indexed starting at 1). Otherwise, return the - /// empty string. (Note that this operation is overridden for Relationships - /// to use owningRelatedElement when appropriate.) + /// empty string.(Note that this operation is overridden for Relationships to use owningRelatedElement + /// when appropriate.) /// /// /// The expected @@ -1627,13 +1625,12 @@ bool Core.Features.IFeature.IsVariable /// /// Return a subset of memberships, removing those Memberships whose memberElements are Features and for - /// which either of the following two conditions holds:
    - ///
  1. The memberElement of the Membership is included in redefined Features of another - /// Membership in memberships.
  2. One of the redefined Features of the - /// Membership is a directly redefinedFeature of an ownedFeature of this Type.
  3. - ///
For this purpose, the redefined Features of a Membership - /// whose memberElement is a Feature includes the memberElement and all Features directly or indirectly - /// redefined by the memberElement. + /// which either of the following two conditions holds:
  1. The memberElement of the Membership is + /// included in redefined Features of another Membership in memberships.
  2. One of the redefined + /// Features of the Membership is a directly redefinedFeature of an ownedFeature of this + /// Type.
For this purpose, the redefined Features of a Membership whose memberElement is a + /// Feature includes the memberElement and all Features directly or indirectly redefined by the + /// memberElement. ///
/// /// No documentation provided @@ -1760,11 +1757,11 @@ bool Core.Features.IFeature.IsVariable /// Return the Features used to determine the types of this Feature (other than this Feature itself). If /// this Feature is not conjugated, then the typingFeatures consist of all subsetted Features, except /// from CrossSubsetting, and the last chainingFeature (if any). If this Feature is conjugated, then the - /// typingFeatures are only its originalType (if the originalType is a Feature). - /// Note. CrossSubsetting is excluded from the determination of the type of a - /// Feature in order to avoid circularity in the construction of implied CrossSubsetting relationships. - /// The validateFeatureCrossFeatureType requires that the crossFeature of a Feature have the same type - /// as the Feature. + /// typingFeatures are only its originalType (if the originalType is a Feature).Note. + /// CrossSubsetting is excluded from the determination of the type of a Feature in order to avoid + /// circularity in the construction of implied CrossSubsetting relationships. The + /// validateFeatureCrossFeatureType requires that the crossFeature of a Feature have the same type as + /// the Feature. /// /// /// The expected collection of diff --git a/SysML2.NET/Extend/AssignmentActionUsageExtensions.cs b/SysML2.NET/Extend/AssignmentActionUsageExtensions.cs index d25d1ad7b..c246bc8e4 100644 --- a/SysML2.NET/Extend/AssignmentActionUsageExtensions.cs +++ b/SysML2.NET/Extend/AssignmentActionUsageExtensions.cs @@ -70,12 +70,13 @@ internal static class AssignmentActionUsageExtensions /// OCL2.0: /// /// referent = - /// let unownedFeatures : Sequence(Feature) = ownedMembership-> - /// reject(oclIsKindOf(FeatureMembership)).memberElement-> - /// selectByKind(Feature) in - /// if unownedFeatures->isEmpty() then null - /// else unownedFeatures->first().oclAsType(Feature) - /// endif + /// let unownedFeatures : Sequence(Feature) = ownedMembership-> + /// reject(oclIsKindOf(FeatureMembership)).memberElement-> + /// select(oclIsKindOf(Feature) and + /// not oclIsKindOf(MetadataFeature)) in + /// if unownedFeatures->isEmpty() then null + /// else unownedFeatures->first().oclAsType(Feature) + /// endif /// /// /// diff --git a/SysML2.NET/Extend/DefinitionExtensions.cs b/SysML2.NET/Extend/DefinitionExtensions.cs index 7f744ffb2..d20a80ab8 100644 --- a/SysML2.NET/Extend/DefinitionExtensions.cs +++ b/SysML2.NET/Extend/DefinitionExtensions.cs @@ -300,7 +300,7 @@ internal static List ComputeOwnedEnumeration(this IDefinition /// /// OCL2.0: /// - /// ownedFlow = ownedUsage->selectByKind(FlowConnectionUsage) + /// ownedFlow = ownedUsage->selectByKind(FlowUsage) /// /// /// @@ -366,7 +366,7 @@ internal static List ComputeOwnedItem(this IDefinition definitionSub /// /// OCL2.0: /// - /// ownedMetadata = ownedUsage->selectByKind(MetadataUsage) + /// ownedMetadata = ownedMember->selectByKind(MetadataUsage) /// /// /// @@ -379,7 +379,7 @@ internal static List ComputeOwnedMetadata(this IDefinition defin { return definitionSubject == null ? throw new ArgumentNullException(nameof(definitionSubject)) - : [..definitionSubject.ownedUsage.OfType()]; + : [..definitionSubject.ownedMember.OfType()]; } /// diff --git a/SysML2.NET/Extend/FeatureExtensions.cs b/SysML2.NET/Extend/FeatureExtensions.cs index c69cc13ed..3bf6496d6 100644 --- a/SysML2.NET/Extend/FeatureExtensions.cs +++ b/SysML2.NET/Extend/FeatureExtensions.cs @@ -158,7 +158,7 @@ internal static IFeature ComputeFeatureTarget(this IFeature featureSubject) /// /// featuringType = /// let featuringTypes : OrderedSet(Type) = - /// featuring.type->asOrderedSet() in + /// typeFeaturing.type->asOrderedSet() in /// if chainingFeature->isEmpty() then featuringTypes /// else /// featuringTypes-> diff --git a/SysML2.NET/Extend/NamespaceExtensions.cs b/SysML2.NET/Extend/NamespaceExtensions.cs index a549e83d5..3991f1e52 100644 --- a/SysML2.NET/Extend/NamespaceExtensions.cs +++ b/SysML2.NET/Extend/NamespaceExtensions.cs @@ -556,7 +556,7 @@ internal static IMembership ComputeResolveGlobalOperation(this INamespace namesp /// let memberships : Membership = membership->select(memberShortName = name or memberName = name) /// in /// if memberships->notEmpty() then memberships->first() - /// else owningNamspace.resolveLocal(name) + /// else owningNamespace.resolveLocal(name) /// endif /// endif /// diff --git a/SysML2.NET/Extend/SatisfyRequirementUsageExtensions.cs b/SysML2.NET/Extend/SatisfyRequirementUsageExtensions.cs index 7e0d60669..6b9e0aeeb 100644 --- a/SysML2.NET/Extend/SatisfyRequirementUsageExtensions.cs +++ b/SysML2.NET/Extend/SatisfyRequirementUsageExtensions.cs @@ -101,14 +101,14 @@ internal static IRequirementUsage ComputeSatisfiedRequirement(this ISatisfyRequi /// OCL2.0: /// /// satisfyingFeature = - /// let bindings: BindingConnector = ownedMember-> - /// selectByKind(BindingConnector)-> - /// select(b | b.relatedElement->includes(subjectParameter)) in - /// if bindings->isEmpty() or - /// bindings->first().relatedElement->exits(r | r <> subjectParameter) - /// then null - /// else bindings->first().relatedElement->any(r | r <> subjectParameter) - /// endif + /// let bindings: BindingConnector = ownedMember-> + /// selectByKind(BindingConnector)-> + /// select(b | b.relatedElement->includes(subjectParameter)) in + /// if bindings->isEmpty() or + /// not bindings->first().relatedElement->exits(r | r <> subjectParameter) + /// then null + /// else bindings->first().relatedElement->any(r | r <> subjectParameter) + /// endif /// /// /// @@ -137,8 +137,8 @@ internal static IFeature ComputeSatisfyingFeature(this ISatisfyRequirementUsage } // OCL: bindings->first().relatedElement->any(r | r <> subjectParameter) — i.e. return the first - // related element other than subjectParameter (or null when none exists, matching the OCL "exits" - // typo — semantically "no other element exists" → null). + // related element other than subjectParameter (or null when none exists, per the corrected OCL + // `not bindings->first().relatedElement->exits(r | r <> subjectParameter)` branch). return bindings[0].relatedElement.FirstOrDefault(relatedElement => !ReferenceEquals(relatedElement, subjectParameter)) as IFeature; } diff --git a/SysML2.NET/Extend/UsageExtensions.cs b/SysML2.NET/Extend/UsageExtensions.cs index 9cd8663bf..754beb12c 100644 --- a/SysML2.NET/Extend/UsageExtensions.cs +++ b/SysML2.NET/Extend/UsageExtensions.cs @@ -402,7 +402,7 @@ internal static List ComputeNestedEnumeration(this IUsage usa /// /// OCL2.0: /// - /// nestedFlow = nestedUsage->selectByKind(FlowConnectionUsage) + /// nestedFlow = nestedUsage->selectByKind(FlowUsage) /// /// /// From 00575232f099f5096154f0e3645d877fa9e008aa Mon Sep 17 00:00:00 2001 From: atheate Date: Mon, 8 Jun 2026 10:54:38 +0200 Subject: [PATCH 2/4] Json (De)Serializers --- .../AcceptActionUsageDeSerializer.cs | 20 ++++++++++ .../ActionUsageDeSerializer.cs | 20 ++++++++++ .../AnalysisCaseUsageDeSerializer.cs | 40 +++++++++++++++++++ .../AssignmentActionUsageDeSerializer.cs | 20 ++++++++++ .../CalculationUsageDeSerializer.cs | 40 +++++++++++++++++++ .../CaseUsageDeSerializer.cs | 40 +++++++++++++++++++ .../DecisionNodeDeSerializer.cs | 20 ++++++++++ .../ExhibitStateUsageDeSerializer.cs | 20 ++++++++++ .../FlowUsageDeSerializer.cs | 40 +++++++++++++++++++ .../ForLoopActionUsageDeSerializer.cs | 20 ++++++++++ .../ForkNodeDeSerializer.cs | 20 ++++++++++ .../IfActionUsageDeSerializer.cs | 20 ++++++++++ .../IncludeUseCaseUsageDeSerializer.cs | 40 +++++++++++++++++++ .../JoinNodeDeSerializer.cs | 20 ++++++++++ .../MergeNodeDeSerializer.cs | 20 ++++++++++ .../MetadataUsageDeSerializer.cs | 20 ++++++++++ .../PerformActionUsageDeSerializer.cs | 20 ++++++++++ .../SendActionUsageDeSerializer.cs | 23 ++++++++++- .../StateUsageDeSerializer.cs | 20 ++++++++++ .../SuccessionFlowUsageDeSerializer.cs | 40 +++++++++++++++++++ .../TerminateActionUsageDeSerializer.cs | 20 ++++++++++ .../TransitionUsageDeSerializer.cs | 20 ++++++++++ .../UseCaseUsageDeSerializer.cs | 40 +++++++++++++++++++ .../VerificationCaseUsageDeSerializer.cs | 40 +++++++++++++++++++ .../WhileLoopActionUsageDeSerializer.cs | 20 ++++++++++ .../SendActionUsageSerializer.cs | 16 ++++++-- 26 files changed, 673 insertions(+), 6 deletions(-) diff --git a/SysML2.NET.Serializer.Json/Core/AutoGenDeSerializer/AcceptActionUsageDeSerializer.cs b/SysML2.NET.Serializer.Json/Core/AutoGenDeSerializer/AcceptActionUsageDeSerializer.cs index 5523f8e68..6c259e453 100644 --- a/SysML2.NET.Serializer.Json/Core/AutoGenDeSerializer/AcceptActionUsageDeSerializer.cs +++ b/SysML2.NET.Serializer.Json/Core/AutoGenDeSerializer/AcceptActionUsageDeSerializer.cs @@ -1355,6 +1355,26 @@ private static void DeserializeDtoIncludingDerivedProperties(SysML2.NET.Core.DTO logger.LogDebug("the nestedViewpoint Json property was not found in the AcceptActionUsage: {Id}", dtoInstance.Id); } + if (jsonElement.TryGetProperty("occurrenceDefinition"u8, out var occurrenceDefinitionProperty)) + { + foreach (var arrayItem in occurrenceDefinitionProperty.EnumerateArray()) + { + if (arrayItem.TryGetProperty("@id"u8, out var occurrenceDefinitionExternalIdProperty)) + { + var propertyValue = occurrenceDefinitionExternalIdProperty.GetString(); + + if (propertyValue != null) + { + dtoInstance.occurrenceDefinition.Add(Guid.Parse(propertyValue)); + } + } + } + } + else + { + logger.LogDebug("the occurrenceDefinition Json property was not found in the AcceptActionUsage: {Id}", dtoInstance.Id); + } + if (jsonElement.TryGetProperty("output"u8, out var outputProperty)) { foreach (var arrayItem in outputProperty.EnumerateArray()) diff --git a/SysML2.NET.Serializer.Json/Core/AutoGenDeSerializer/ActionUsageDeSerializer.cs b/SysML2.NET.Serializer.Json/Core/AutoGenDeSerializer/ActionUsageDeSerializer.cs index fcd14c325..e912ad902 100644 --- a/SysML2.NET.Serializer.Json/Core/AutoGenDeSerializer/ActionUsageDeSerializer.cs +++ b/SysML2.NET.Serializer.Json/Core/AutoGenDeSerializer/ActionUsageDeSerializer.cs @@ -1355,6 +1355,26 @@ private static void DeserializeDtoIncludingDerivedProperties(SysML2.NET.Core.DTO logger.LogDebug("the nestedViewpoint Json property was not found in the ActionUsage: {Id}", dtoInstance.Id); } + if (jsonElement.TryGetProperty("occurrenceDefinition"u8, out var occurrenceDefinitionProperty)) + { + foreach (var arrayItem in occurrenceDefinitionProperty.EnumerateArray()) + { + if (arrayItem.TryGetProperty("@id"u8, out var occurrenceDefinitionExternalIdProperty)) + { + var propertyValue = occurrenceDefinitionExternalIdProperty.GetString(); + + if (propertyValue != null) + { + dtoInstance.occurrenceDefinition.Add(Guid.Parse(propertyValue)); + } + } + } + } + else + { + logger.LogDebug("the occurrenceDefinition Json property was not found in the ActionUsage: {Id}", dtoInstance.Id); + } + if (jsonElement.TryGetProperty("output"u8, out var outputProperty)) { foreach (var arrayItem in outputProperty.EnumerateArray()) diff --git a/SysML2.NET.Serializer.Json/Core/AutoGenDeSerializer/AnalysisCaseUsageDeSerializer.cs b/SysML2.NET.Serializer.Json/Core/AutoGenDeSerializer/AnalysisCaseUsageDeSerializer.cs index b5ec9e080..1e717234f 100644 --- a/SysML2.NET.Serializer.Json/Core/AutoGenDeSerializer/AnalysisCaseUsageDeSerializer.cs +++ b/SysML2.NET.Serializer.Json/Core/AutoGenDeSerializer/AnalysisCaseUsageDeSerializer.cs @@ -115,6 +115,26 @@ internal static IAnalysisCaseUsage DeSerialize(JsonElement jsonElement, Serializ /// private static void DeserializeDtoIncludingDerivedProperties(SysML2.NET.Core.DTO.Systems.AnalysisCases.AnalysisCaseUsage dtoInstance, JsonElement jsonElement, ILogger logger) { + if (jsonElement.TryGetProperty("actionDefinition"u8, out var actionDefinitionProperty)) + { + foreach (var arrayItem in actionDefinitionProperty.EnumerateArray()) + { + if (arrayItem.TryGetProperty("@id"u8, out var actionDefinitionExternalIdProperty)) + { + var propertyValue = actionDefinitionExternalIdProperty.GetString(); + + if (propertyValue != null) + { + dtoInstance.actionDefinition.Add(Guid.Parse(propertyValue)); + } + } + } + } + else + { + logger.LogDebug("the actionDefinition Json property was not found in the AnalysisCaseUsage: {Id}", dtoInstance.Id); + } + if (jsonElement.TryGetProperty("actorParameter"u8, out var actorParameterProperty)) { foreach (var arrayItem in actorParameterProperty.EnumerateArray()) @@ -1415,6 +1435,26 @@ private static void DeserializeDtoIncludingDerivedProperties(SysML2.NET.Core.DTO logger.LogDebug("the objectiveRequirement Json property was not found in the AnalysisCaseUsage: {Id}", dtoInstance.Id); } + if (jsonElement.TryGetProperty("occurrenceDefinition"u8, out var occurrenceDefinitionProperty)) + { + foreach (var arrayItem in occurrenceDefinitionProperty.EnumerateArray()) + { + if (arrayItem.TryGetProperty("@id"u8, out var occurrenceDefinitionExternalIdProperty)) + { + var propertyValue = occurrenceDefinitionExternalIdProperty.GetString(); + + if (propertyValue != null) + { + dtoInstance.occurrenceDefinition.Add(Guid.Parse(propertyValue)); + } + } + } + } + else + { + logger.LogDebug("the occurrenceDefinition Json property was not found in the AnalysisCaseUsage: {Id}", dtoInstance.Id); + } + if (jsonElement.TryGetProperty("output"u8, out var outputProperty)) { foreach (var arrayItem in outputProperty.EnumerateArray()) diff --git a/SysML2.NET.Serializer.Json/Core/AutoGenDeSerializer/AssignmentActionUsageDeSerializer.cs b/SysML2.NET.Serializer.Json/Core/AutoGenDeSerializer/AssignmentActionUsageDeSerializer.cs index 66020f985..924a31874 100644 --- a/SysML2.NET.Serializer.Json/Core/AutoGenDeSerializer/AssignmentActionUsageDeSerializer.cs +++ b/SysML2.NET.Serializer.Json/Core/AutoGenDeSerializer/AssignmentActionUsageDeSerializer.cs @@ -1355,6 +1355,26 @@ private static void DeserializeDtoIncludingDerivedProperties(SysML2.NET.Core.DTO logger.LogDebug("the nestedViewpoint Json property was not found in the AssignmentActionUsage: {Id}", dtoInstance.Id); } + if (jsonElement.TryGetProperty("occurrenceDefinition"u8, out var occurrenceDefinitionProperty)) + { + foreach (var arrayItem in occurrenceDefinitionProperty.EnumerateArray()) + { + if (arrayItem.TryGetProperty("@id"u8, out var occurrenceDefinitionExternalIdProperty)) + { + var propertyValue = occurrenceDefinitionExternalIdProperty.GetString(); + + if (propertyValue != null) + { + dtoInstance.occurrenceDefinition.Add(Guid.Parse(propertyValue)); + } + } + } + } + else + { + logger.LogDebug("the occurrenceDefinition Json property was not found in the AssignmentActionUsage: {Id}", dtoInstance.Id); + } + if (jsonElement.TryGetProperty("output"u8, out var outputProperty)) { foreach (var arrayItem in outputProperty.EnumerateArray()) diff --git a/SysML2.NET.Serializer.Json/Core/AutoGenDeSerializer/CalculationUsageDeSerializer.cs b/SysML2.NET.Serializer.Json/Core/AutoGenDeSerializer/CalculationUsageDeSerializer.cs index b21652de2..6ed308f7d 100644 --- a/SysML2.NET.Serializer.Json/Core/AutoGenDeSerializer/CalculationUsageDeSerializer.cs +++ b/SysML2.NET.Serializer.Json/Core/AutoGenDeSerializer/CalculationUsageDeSerializer.cs @@ -115,6 +115,26 @@ internal static ICalculationUsage DeSerialize(JsonElement jsonElement, Serializa /// private static void DeserializeDtoIncludingDerivedProperties(SysML2.NET.Core.DTO.Systems.Calculations.CalculationUsage dtoInstance, JsonElement jsonElement, ILogger logger) { + if (jsonElement.TryGetProperty("actionDefinition"u8, out var actionDefinitionProperty)) + { + foreach (var arrayItem in actionDefinitionProperty.EnumerateArray()) + { + if (arrayItem.TryGetProperty("@id"u8, out var actionDefinitionExternalIdProperty)) + { + var propertyValue = actionDefinitionExternalIdProperty.GetString(); + + if (propertyValue != null) + { + dtoInstance.actionDefinition.Add(Guid.Parse(propertyValue)); + } + } + } + } + else + { + logger.LogDebug("the actionDefinition Json property was not found in the CalculationUsage: {Id}", dtoInstance.Id); + } + if (jsonElement.TryGetProperty("aliasIds"u8, out var aliasIdsProperty)) { foreach (var arrayItem in aliasIdsProperty.EnumerateArray()) @@ -1371,6 +1391,26 @@ private static void DeserializeDtoIncludingDerivedProperties(SysML2.NET.Core.DTO logger.LogDebug("the nestedViewpoint Json property was not found in the CalculationUsage: {Id}", dtoInstance.Id); } + if (jsonElement.TryGetProperty("occurrenceDefinition"u8, out var occurrenceDefinitionProperty)) + { + foreach (var arrayItem in occurrenceDefinitionProperty.EnumerateArray()) + { + if (arrayItem.TryGetProperty("@id"u8, out var occurrenceDefinitionExternalIdProperty)) + { + var propertyValue = occurrenceDefinitionExternalIdProperty.GetString(); + + if (propertyValue != null) + { + dtoInstance.occurrenceDefinition.Add(Guid.Parse(propertyValue)); + } + } + } + } + else + { + logger.LogDebug("the occurrenceDefinition Json property was not found in the CalculationUsage: {Id}", dtoInstance.Id); + } + if (jsonElement.TryGetProperty("output"u8, out var outputProperty)) { foreach (var arrayItem in outputProperty.EnumerateArray()) diff --git a/SysML2.NET.Serializer.Json/Core/AutoGenDeSerializer/CaseUsageDeSerializer.cs b/SysML2.NET.Serializer.Json/Core/AutoGenDeSerializer/CaseUsageDeSerializer.cs index c34e4ddb5..03120ebb9 100644 --- a/SysML2.NET.Serializer.Json/Core/AutoGenDeSerializer/CaseUsageDeSerializer.cs +++ b/SysML2.NET.Serializer.Json/Core/AutoGenDeSerializer/CaseUsageDeSerializer.cs @@ -115,6 +115,26 @@ internal static ICaseUsage DeSerialize(JsonElement jsonElement, SerializationMod /// private static void DeserializeDtoIncludingDerivedProperties(SysML2.NET.Core.DTO.Systems.Cases.CaseUsage dtoInstance, JsonElement jsonElement, ILogger logger) { + if (jsonElement.TryGetProperty("actionDefinition"u8, out var actionDefinitionProperty)) + { + foreach (var arrayItem in actionDefinitionProperty.EnumerateArray()) + { + if (arrayItem.TryGetProperty("@id"u8, out var actionDefinitionExternalIdProperty)) + { + var propertyValue = actionDefinitionExternalIdProperty.GetString(); + + if (propertyValue != null) + { + dtoInstance.actionDefinition.Add(Guid.Parse(propertyValue)); + } + } + } + } + else + { + logger.LogDebug("the actionDefinition Json property was not found in the CaseUsage: {Id}", dtoInstance.Id); + } + if (jsonElement.TryGetProperty("actorParameter"u8, out var actorParameterProperty)) { foreach (var arrayItem in actorParameterProperty.EnumerateArray()) @@ -1415,6 +1435,26 @@ private static void DeserializeDtoIncludingDerivedProperties(SysML2.NET.Core.DTO logger.LogDebug("the objectiveRequirement Json property was not found in the CaseUsage: {Id}", dtoInstance.Id); } + if (jsonElement.TryGetProperty("occurrenceDefinition"u8, out var occurrenceDefinitionProperty)) + { + foreach (var arrayItem in occurrenceDefinitionProperty.EnumerateArray()) + { + if (arrayItem.TryGetProperty("@id"u8, out var occurrenceDefinitionExternalIdProperty)) + { + var propertyValue = occurrenceDefinitionExternalIdProperty.GetString(); + + if (propertyValue != null) + { + dtoInstance.occurrenceDefinition.Add(Guid.Parse(propertyValue)); + } + } + } + } + else + { + logger.LogDebug("the occurrenceDefinition Json property was not found in the CaseUsage: {Id}", dtoInstance.Id); + } + if (jsonElement.TryGetProperty("output"u8, out var outputProperty)) { foreach (var arrayItem in outputProperty.EnumerateArray()) diff --git a/SysML2.NET.Serializer.Json/Core/AutoGenDeSerializer/DecisionNodeDeSerializer.cs b/SysML2.NET.Serializer.Json/Core/AutoGenDeSerializer/DecisionNodeDeSerializer.cs index c45417c15..72de03179 100644 --- a/SysML2.NET.Serializer.Json/Core/AutoGenDeSerializer/DecisionNodeDeSerializer.cs +++ b/SysML2.NET.Serializer.Json/Core/AutoGenDeSerializer/DecisionNodeDeSerializer.cs @@ -1355,6 +1355,26 @@ private static void DeserializeDtoIncludingDerivedProperties(SysML2.NET.Core.DTO logger.LogDebug("the nestedViewpoint Json property was not found in the DecisionNode: {Id}", dtoInstance.Id); } + if (jsonElement.TryGetProperty("occurrenceDefinition"u8, out var occurrenceDefinitionProperty)) + { + foreach (var arrayItem in occurrenceDefinitionProperty.EnumerateArray()) + { + if (arrayItem.TryGetProperty("@id"u8, out var occurrenceDefinitionExternalIdProperty)) + { + var propertyValue = occurrenceDefinitionExternalIdProperty.GetString(); + + if (propertyValue != null) + { + dtoInstance.occurrenceDefinition.Add(Guid.Parse(propertyValue)); + } + } + } + } + else + { + logger.LogDebug("the occurrenceDefinition Json property was not found in the DecisionNode: {Id}", dtoInstance.Id); + } + if (jsonElement.TryGetProperty("output"u8, out var outputProperty)) { foreach (var arrayItem in outputProperty.EnumerateArray()) diff --git a/SysML2.NET.Serializer.Json/Core/AutoGenDeSerializer/ExhibitStateUsageDeSerializer.cs b/SysML2.NET.Serializer.Json/Core/AutoGenDeSerializer/ExhibitStateUsageDeSerializer.cs index 8970fbbba..b82987960 100644 --- a/SysML2.NET.Serializer.Json/Core/AutoGenDeSerializer/ExhibitStateUsageDeSerializer.cs +++ b/SysML2.NET.Serializer.Json/Core/AutoGenDeSerializer/ExhibitStateUsageDeSerializer.cs @@ -1444,6 +1444,26 @@ private static void DeserializeDtoIncludingDerivedProperties(SysML2.NET.Core.DTO logger.LogDebug("the nestedViewpoint Json property was not found in the ExhibitStateUsage: {Id}", dtoInstance.Id); } + if (jsonElement.TryGetProperty("occurrenceDefinition"u8, out var occurrenceDefinitionProperty)) + { + foreach (var arrayItem in occurrenceDefinitionProperty.EnumerateArray()) + { + if (arrayItem.TryGetProperty("@id"u8, out var occurrenceDefinitionExternalIdProperty)) + { + var propertyValue = occurrenceDefinitionExternalIdProperty.GetString(); + + if (propertyValue != null) + { + dtoInstance.occurrenceDefinition.Add(Guid.Parse(propertyValue)); + } + } + } + } + else + { + logger.LogDebug("the occurrenceDefinition Json property was not found in the ExhibitStateUsage: {Id}", dtoInstance.Id); + } + if (jsonElement.TryGetProperty("output"u8, out var outputProperty)) { foreach (var arrayItem in outputProperty.EnumerateArray()) diff --git a/SysML2.NET.Serializer.Json/Core/AutoGenDeSerializer/FlowUsageDeSerializer.cs b/SysML2.NET.Serializer.Json/Core/AutoGenDeSerializer/FlowUsageDeSerializer.cs index 96a13be1f..3ac00bbea 100644 --- a/SysML2.NET.Serializer.Json/Core/AutoGenDeSerializer/FlowUsageDeSerializer.cs +++ b/SysML2.NET.Serializer.Json/Core/AutoGenDeSerializer/FlowUsageDeSerializer.cs @@ -115,6 +115,26 @@ internal static IFlowUsage DeSerialize(JsonElement jsonElement, SerializationMod /// private static void DeserializeDtoIncludingDerivedProperties(SysML2.NET.Core.DTO.Systems.Flows.FlowUsage dtoInstance, JsonElement jsonElement, ILogger logger) { + if (jsonElement.TryGetProperty("actionDefinition"u8, out var actionDefinitionProperty)) + { + foreach (var arrayItem in actionDefinitionProperty.EnumerateArray()) + { + if (arrayItem.TryGetProperty("@id"u8, out var actionDefinitionExternalIdProperty)) + { + var propertyValue = actionDefinitionExternalIdProperty.GetString(); + + if (propertyValue != null) + { + dtoInstance.actionDefinition.Add(Guid.Parse(propertyValue)); + } + } + } + } + else + { + logger.LogDebug("the actionDefinition Json property was not found in the FlowUsage: {Id}", dtoInstance.Id); + } + if (jsonElement.TryGetProperty("aliasIds"u8, out var aliasIdsProperty)) { foreach (var arrayItem in aliasIdsProperty.EnumerateArray()) @@ -1411,6 +1431,26 @@ private static void DeserializeDtoIncludingDerivedProperties(SysML2.NET.Core.DTO logger.LogDebug("the nestedViewpoint Json property was not found in the FlowUsage: {Id}", dtoInstance.Id); } + if (jsonElement.TryGetProperty("occurrenceDefinition"u8, out var occurrenceDefinitionProperty)) + { + foreach (var arrayItem in occurrenceDefinitionProperty.EnumerateArray()) + { + if (arrayItem.TryGetProperty("@id"u8, out var occurrenceDefinitionExternalIdProperty)) + { + var propertyValue = occurrenceDefinitionExternalIdProperty.GetString(); + + if (propertyValue != null) + { + dtoInstance.occurrenceDefinition.Add(Guid.Parse(propertyValue)); + } + } + } + } + else + { + logger.LogDebug("the occurrenceDefinition Json property was not found in the FlowUsage: {Id}", dtoInstance.Id); + } + if (jsonElement.TryGetProperty("output"u8, out var outputProperty)) { foreach (var arrayItem in outputProperty.EnumerateArray()) diff --git a/SysML2.NET.Serializer.Json/Core/AutoGenDeSerializer/ForLoopActionUsageDeSerializer.cs b/SysML2.NET.Serializer.Json/Core/AutoGenDeSerializer/ForLoopActionUsageDeSerializer.cs index 5eac00052..93c4aa5c0 100644 --- a/SysML2.NET.Serializer.Json/Core/AutoGenDeSerializer/ForLoopActionUsageDeSerializer.cs +++ b/SysML2.NET.Serializer.Json/Core/AutoGenDeSerializer/ForLoopActionUsageDeSerializer.cs @@ -1405,6 +1405,26 @@ private static void DeserializeDtoIncludingDerivedProperties(SysML2.NET.Core.DTO logger.LogDebug("the nestedViewpoint Json property was not found in the ForLoopActionUsage: {Id}", dtoInstance.Id); } + if (jsonElement.TryGetProperty("occurrenceDefinition"u8, out var occurrenceDefinitionProperty)) + { + foreach (var arrayItem in occurrenceDefinitionProperty.EnumerateArray()) + { + if (arrayItem.TryGetProperty("@id"u8, out var occurrenceDefinitionExternalIdProperty)) + { + var propertyValue = occurrenceDefinitionExternalIdProperty.GetString(); + + if (propertyValue != null) + { + dtoInstance.occurrenceDefinition.Add(Guid.Parse(propertyValue)); + } + } + } + } + else + { + logger.LogDebug("the occurrenceDefinition Json property was not found in the ForLoopActionUsage: {Id}", dtoInstance.Id); + } + if (jsonElement.TryGetProperty("output"u8, out var outputProperty)) { foreach (var arrayItem in outputProperty.EnumerateArray()) diff --git a/SysML2.NET.Serializer.Json/Core/AutoGenDeSerializer/ForkNodeDeSerializer.cs b/SysML2.NET.Serializer.Json/Core/AutoGenDeSerializer/ForkNodeDeSerializer.cs index b1e92f0ee..f911cbda2 100644 --- a/SysML2.NET.Serializer.Json/Core/AutoGenDeSerializer/ForkNodeDeSerializer.cs +++ b/SysML2.NET.Serializer.Json/Core/AutoGenDeSerializer/ForkNodeDeSerializer.cs @@ -1355,6 +1355,26 @@ private static void DeserializeDtoIncludingDerivedProperties(SysML2.NET.Core.DTO logger.LogDebug("the nestedViewpoint Json property was not found in the ForkNode: {Id}", dtoInstance.Id); } + if (jsonElement.TryGetProperty("occurrenceDefinition"u8, out var occurrenceDefinitionProperty)) + { + foreach (var arrayItem in occurrenceDefinitionProperty.EnumerateArray()) + { + if (arrayItem.TryGetProperty("@id"u8, out var occurrenceDefinitionExternalIdProperty)) + { + var propertyValue = occurrenceDefinitionExternalIdProperty.GetString(); + + if (propertyValue != null) + { + dtoInstance.occurrenceDefinition.Add(Guid.Parse(propertyValue)); + } + } + } + } + else + { + logger.LogDebug("the occurrenceDefinition Json property was not found in the ForkNode: {Id}", dtoInstance.Id); + } + if (jsonElement.TryGetProperty("output"u8, out var outputProperty)) { foreach (var arrayItem in outputProperty.EnumerateArray()) diff --git a/SysML2.NET.Serializer.Json/Core/AutoGenDeSerializer/IfActionUsageDeSerializer.cs b/SysML2.NET.Serializer.Json/Core/AutoGenDeSerializer/IfActionUsageDeSerializer.cs index 40cc3a2f5..e8c5a6cfe 100644 --- a/SysML2.NET.Serializer.Json/Core/AutoGenDeSerializer/IfActionUsageDeSerializer.cs +++ b/SysML2.NET.Serializer.Json/Core/AutoGenDeSerializer/IfActionUsageDeSerializer.cs @@ -1404,6 +1404,26 @@ private static void DeserializeDtoIncludingDerivedProperties(SysML2.NET.Core.DTO logger.LogDebug("the nestedViewpoint Json property was not found in the IfActionUsage: {Id}", dtoInstance.Id); } + if (jsonElement.TryGetProperty("occurrenceDefinition"u8, out var occurrenceDefinitionProperty)) + { + foreach (var arrayItem in occurrenceDefinitionProperty.EnumerateArray()) + { + if (arrayItem.TryGetProperty("@id"u8, out var occurrenceDefinitionExternalIdProperty)) + { + var propertyValue = occurrenceDefinitionExternalIdProperty.GetString(); + + if (propertyValue != null) + { + dtoInstance.occurrenceDefinition.Add(Guid.Parse(propertyValue)); + } + } + } + } + else + { + logger.LogDebug("the occurrenceDefinition Json property was not found in the IfActionUsage: {Id}", dtoInstance.Id); + } + if (jsonElement.TryGetProperty("output"u8, out var outputProperty)) { foreach (var arrayItem in outputProperty.EnumerateArray()) diff --git a/SysML2.NET.Serializer.Json/Core/AutoGenDeSerializer/IncludeUseCaseUsageDeSerializer.cs b/SysML2.NET.Serializer.Json/Core/AutoGenDeSerializer/IncludeUseCaseUsageDeSerializer.cs index a900b8948..dcd9d599f 100644 --- a/SysML2.NET.Serializer.Json/Core/AutoGenDeSerializer/IncludeUseCaseUsageDeSerializer.cs +++ b/SysML2.NET.Serializer.Json/Core/AutoGenDeSerializer/IncludeUseCaseUsageDeSerializer.cs @@ -115,6 +115,26 @@ internal static IIncludeUseCaseUsage DeSerialize(JsonElement jsonElement, Serial /// private static void DeserializeDtoIncludingDerivedProperties(SysML2.NET.Core.DTO.Systems.UseCases.IncludeUseCaseUsage dtoInstance, JsonElement jsonElement, ILogger logger) { + if (jsonElement.TryGetProperty("actionDefinition"u8, out var actionDefinitionProperty)) + { + foreach (var arrayItem in actionDefinitionProperty.EnumerateArray()) + { + if (arrayItem.TryGetProperty("@id"u8, out var actionDefinitionExternalIdProperty)) + { + var propertyValue = actionDefinitionExternalIdProperty.GetString(); + + if (propertyValue != null) + { + dtoInstance.actionDefinition.Add(Guid.Parse(propertyValue)); + } + } + } + } + else + { + logger.LogDebug("the actionDefinition Json property was not found in the IncludeUseCaseUsage: {Id}", dtoInstance.Id); + } + if (jsonElement.TryGetProperty("actorParameter"u8, out var actorParameterProperty)) { foreach (var arrayItem in actorParameterProperty.EnumerateArray()) @@ -1411,6 +1431,26 @@ private static void DeserializeDtoIncludingDerivedProperties(SysML2.NET.Core.DTO logger.LogDebug("the objectiveRequirement Json property was not found in the IncludeUseCaseUsage: {Id}", dtoInstance.Id); } + if (jsonElement.TryGetProperty("occurrenceDefinition"u8, out var occurrenceDefinitionProperty)) + { + foreach (var arrayItem in occurrenceDefinitionProperty.EnumerateArray()) + { + if (arrayItem.TryGetProperty("@id"u8, out var occurrenceDefinitionExternalIdProperty)) + { + var propertyValue = occurrenceDefinitionExternalIdProperty.GetString(); + + if (propertyValue != null) + { + dtoInstance.occurrenceDefinition.Add(Guid.Parse(propertyValue)); + } + } + } + } + else + { + logger.LogDebug("the occurrenceDefinition Json property was not found in the IncludeUseCaseUsage: {Id}", dtoInstance.Id); + } + if (jsonElement.TryGetProperty("output"u8, out var outputProperty)) { foreach (var arrayItem in outputProperty.EnumerateArray()) diff --git a/SysML2.NET.Serializer.Json/Core/AutoGenDeSerializer/JoinNodeDeSerializer.cs b/SysML2.NET.Serializer.Json/Core/AutoGenDeSerializer/JoinNodeDeSerializer.cs index 30ebfc2ea..1b55be06a 100644 --- a/SysML2.NET.Serializer.Json/Core/AutoGenDeSerializer/JoinNodeDeSerializer.cs +++ b/SysML2.NET.Serializer.Json/Core/AutoGenDeSerializer/JoinNodeDeSerializer.cs @@ -1355,6 +1355,26 @@ private static void DeserializeDtoIncludingDerivedProperties(SysML2.NET.Core.DTO logger.LogDebug("the nestedViewpoint Json property was not found in the JoinNode: {Id}", dtoInstance.Id); } + if (jsonElement.TryGetProperty("occurrenceDefinition"u8, out var occurrenceDefinitionProperty)) + { + foreach (var arrayItem in occurrenceDefinitionProperty.EnumerateArray()) + { + if (arrayItem.TryGetProperty("@id"u8, out var occurrenceDefinitionExternalIdProperty)) + { + var propertyValue = occurrenceDefinitionExternalIdProperty.GetString(); + + if (propertyValue != null) + { + dtoInstance.occurrenceDefinition.Add(Guid.Parse(propertyValue)); + } + } + } + } + else + { + logger.LogDebug("the occurrenceDefinition Json property was not found in the JoinNode: {Id}", dtoInstance.Id); + } + if (jsonElement.TryGetProperty("output"u8, out var outputProperty)) { foreach (var arrayItem in outputProperty.EnumerateArray()) diff --git a/SysML2.NET.Serializer.Json/Core/AutoGenDeSerializer/MergeNodeDeSerializer.cs b/SysML2.NET.Serializer.Json/Core/AutoGenDeSerializer/MergeNodeDeSerializer.cs index ccf17d1d2..5c4de4558 100644 --- a/SysML2.NET.Serializer.Json/Core/AutoGenDeSerializer/MergeNodeDeSerializer.cs +++ b/SysML2.NET.Serializer.Json/Core/AutoGenDeSerializer/MergeNodeDeSerializer.cs @@ -1355,6 +1355,26 @@ private static void DeserializeDtoIncludingDerivedProperties(SysML2.NET.Core.DTO logger.LogDebug("the nestedViewpoint Json property was not found in the MergeNode: {Id}", dtoInstance.Id); } + if (jsonElement.TryGetProperty("occurrenceDefinition"u8, out var occurrenceDefinitionProperty)) + { + foreach (var arrayItem in occurrenceDefinitionProperty.EnumerateArray()) + { + if (arrayItem.TryGetProperty("@id"u8, out var occurrenceDefinitionExternalIdProperty)) + { + var propertyValue = occurrenceDefinitionExternalIdProperty.GetString(); + + if (propertyValue != null) + { + dtoInstance.occurrenceDefinition.Add(Guid.Parse(propertyValue)); + } + } + } + } + else + { + logger.LogDebug("the occurrenceDefinition Json property was not found in the MergeNode: {Id}", dtoInstance.Id); + } + if (jsonElement.TryGetProperty("output"u8, out var outputProperty)) { foreach (var arrayItem in outputProperty.EnumerateArray()) diff --git a/SysML2.NET.Serializer.Json/Core/AutoGenDeSerializer/MetadataUsageDeSerializer.cs b/SysML2.NET.Serializer.Json/Core/AutoGenDeSerializer/MetadataUsageDeSerializer.cs index 8fdc663f7..7b88f4b8e 100644 --- a/SysML2.NET.Serializer.Json/Core/AutoGenDeSerializer/MetadataUsageDeSerializer.cs +++ b/SysML2.NET.Serializer.Json/Core/AutoGenDeSerializer/MetadataUsageDeSerializer.cs @@ -770,6 +770,26 @@ private static void DeserializeDtoIncludingDerivedProperties(SysML2.NET.Core.DTO logger.LogDebug("the isVariation Json property was not found in the MetadataUsage: {Id}", dtoInstance.Id); } + if (jsonElement.TryGetProperty("itemDefinition"u8, out var itemDefinitionProperty)) + { + foreach (var arrayItem in itemDefinitionProperty.EnumerateArray()) + { + if (arrayItem.TryGetProperty("@id"u8, out var itemDefinitionExternalIdProperty)) + { + var propertyValue = itemDefinitionExternalIdProperty.GetString(); + + if (propertyValue != null) + { + dtoInstance.itemDefinition.Add(Guid.Parse(propertyValue)); + } + } + } + } + else + { + logger.LogDebug("the itemDefinition Json property was not found in the MetadataUsage: {Id}", dtoInstance.Id); + } + if (jsonElement.TryGetProperty("mayTimeVary"u8, out var mayTimeVaryProperty)) { if (mayTimeVaryProperty.ValueKind != JsonValueKind.Null) diff --git a/SysML2.NET.Serializer.Json/Core/AutoGenDeSerializer/PerformActionUsageDeSerializer.cs b/SysML2.NET.Serializer.Json/Core/AutoGenDeSerializer/PerformActionUsageDeSerializer.cs index 510d8f96a..7308f303f 100644 --- a/SysML2.NET.Serializer.Json/Core/AutoGenDeSerializer/PerformActionUsageDeSerializer.cs +++ b/SysML2.NET.Serializer.Json/Core/AutoGenDeSerializer/PerformActionUsageDeSerializer.cs @@ -1355,6 +1355,26 @@ private static void DeserializeDtoIncludingDerivedProperties(SysML2.NET.Core.DTO logger.LogDebug("the nestedViewpoint Json property was not found in the PerformActionUsage: {Id}", dtoInstance.Id); } + if (jsonElement.TryGetProperty("occurrenceDefinition"u8, out var occurrenceDefinitionProperty)) + { + foreach (var arrayItem in occurrenceDefinitionProperty.EnumerateArray()) + { + if (arrayItem.TryGetProperty("@id"u8, out var occurrenceDefinitionExternalIdProperty)) + { + var propertyValue = occurrenceDefinitionExternalIdProperty.GetString(); + + if (propertyValue != null) + { + dtoInstance.occurrenceDefinition.Add(Guid.Parse(propertyValue)); + } + } + } + } + else + { + logger.LogDebug("the occurrenceDefinition Json property was not found in the PerformActionUsage: {Id}", dtoInstance.Id); + } + if (jsonElement.TryGetProperty("output"u8, out var outputProperty)) { foreach (var arrayItem in outputProperty.EnumerateArray()) diff --git a/SysML2.NET.Serializer.Json/Core/AutoGenDeSerializer/SendActionUsageDeSerializer.cs b/SysML2.NET.Serializer.Json/Core/AutoGenDeSerializer/SendActionUsageDeSerializer.cs index 9c874bcc9..91ac55b18 100644 --- a/SysML2.NET.Serializer.Json/Core/AutoGenDeSerializer/SendActionUsageDeSerializer.cs +++ b/SysML2.NET.Serializer.Json/Core/AutoGenDeSerializer/SendActionUsageDeSerializer.cs @@ -1355,6 +1355,26 @@ private static void DeserializeDtoIncludingDerivedProperties(SysML2.NET.Core.DTO logger.LogDebug("the nestedViewpoint Json property was not found in the SendActionUsage: {Id}", dtoInstance.Id); } + if (jsonElement.TryGetProperty("occurrenceDefinition"u8, out var occurrenceDefinitionProperty)) + { + foreach (var arrayItem in occurrenceDefinitionProperty.EnumerateArray()) + { + if (arrayItem.TryGetProperty("@id"u8, out var occurrenceDefinitionExternalIdProperty)) + { + var propertyValue = occurrenceDefinitionExternalIdProperty.GetString(); + + if (propertyValue != null) + { + dtoInstance.occurrenceDefinition.Add(Guid.Parse(propertyValue)); + } + } + } + } + else + { + logger.LogDebug("the occurrenceDefinition Json property was not found in the SendActionUsage: {Id}", dtoInstance.Id); + } + if (jsonElement.TryGetProperty("output"u8, out var outputProperty)) { foreach (var arrayItem in outputProperty.EnumerateArray()) @@ -2063,8 +2083,7 @@ private static void DeserializeDtoIncludingDerivedProperties(SysML2.NET.Core.DTO { if (payloadArgumentProperty.ValueKind == JsonValueKind.Null) { - dtoInstance.payloadArgument = Guid.Empty; - logger.LogDebug($"the SendActionUsage.payloadArgument property was not found in the Json. The value is set to Guid.Empty"); + dtoInstance.payloadArgument = null; } else { diff --git a/SysML2.NET.Serializer.Json/Core/AutoGenDeSerializer/StateUsageDeSerializer.cs b/SysML2.NET.Serializer.Json/Core/AutoGenDeSerializer/StateUsageDeSerializer.cs index 8e6fb3493..20062a703 100644 --- a/SysML2.NET.Serializer.Json/Core/AutoGenDeSerializer/StateUsageDeSerializer.cs +++ b/SysML2.NET.Serializer.Json/Core/AutoGenDeSerializer/StateUsageDeSerializer.cs @@ -1419,6 +1419,26 @@ private static void DeserializeDtoIncludingDerivedProperties(SysML2.NET.Core.DTO logger.LogDebug("the nestedViewpoint Json property was not found in the StateUsage: {Id}", dtoInstance.Id); } + if (jsonElement.TryGetProperty("occurrenceDefinition"u8, out var occurrenceDefinitionProperty)) + { + foreach (var arrayItem in occurrenceDefinitionProperty.EnumerateArray()) + { + if (arrayItem.TryGetProperty("@id"u8, out var occurrenceDefinitionExternalIdProperty)) + { + var propertyValue = occurrenceDefinitionExternalIdProperty.GetString(); + + if (propertyValue != null) + { + dtoInstance.occurrenceDefinition.Add(Guid.Parse(propertyValue)); + } + } + } + } + else + { + logger.LogDebug("the occurrenceDefinition Json property was not found in the StateUsage: {Id}", dtoInstance.Id); + } + if (jsonElement.TryGetProperty("output"u8, out var outputProperty)) { foreach (var arrayItem in outputProperty.EnumerateArray()) diff --git a/SysML2.NET.Serializer.Json/Core/AutoGenDeSerializer/SuccessionFlowUsageDeSerializer.cs b/SysML2.NET.Serializer.Json/Core/AutoGenDeSerializer/SuccessionFlowUsageDeSerializer.cs index f85d4fb51..da5e6cb44 100644 --- a/SysML2.NET.Serializer.Json/Core/AutoGenDeSerializer/SuccessionFlowUsageDeSerializer.cs +++ b/SysML2.NET.Serializer.Json/Core/AutoGenDeSerializer/SuccessionFlowUsageDeSerializer.cs @@ -115,6 +115,26 @@ internal static ISuccessionFlowUsage DeSerialize(JsonElement jsonElement, Serial /// private static void DeserializeDtoIncludingDerivedProperties(SysML2.NET.Core.DTO.Systems.Flows.SuccessionFlowUsage dtoInstance, JsonElement jsonElement, ILogger logger) { + if (jsonElement.TryGetProperty("actionDefinition"u8, out var actionDefinitionProperty)) + { + foreach (var arrayItem in actionDefinitionProperty.EnumerateArray()) + { + if (arrayItem.TryGetProperty("@id"u8, out var actionDefinitionExternalIdProperty)) + { + var propertyValue = actionDefinitionExternalIdProperty.GetString(); + + if (propertyValue != null) + { + dtoInstance.actionDefinition.Add(Guid.Parse(propertyValue)); + } + } + } + } + else + { + logger.LogDebug("the actionDefinition Json property was not found in the SuccessionFlowUsage: {Id}", dtoInstance.Id); + } + if (jsonElement.TryGetProperty("aliasIds"u8, out var aliasIdsProperty)) { foreach (var arrayItem in aliasIdsProperty.EnumerateArray()) @@ -1411,6 +1431,26 @@ private static void DeserializeDtoIncludingDerivedProperties(SysML2.NET.Core.DTO logger.LogDebug("the nestedViewpoint Json property was not found in the SuccessionFlowUsage: {Id}", dtoInstance.Id); } + if (jsonElement.TryGetProperty("occurrenceDefinition"u8, out var occurrenceDefinitionProperty)) + { + foreach (var arrayItem in occurrenceDefinitionProperty.EnumerateArray()) + { + if (arrayItem.TryGetProperty("@id"u8, out var occurrenceDefinitionExternalIdProperty)) + { + var propertyValue = occurrenceDefinitionExternalIdProperty.GetString(); + + if (propertyValue != null) + { + dtoInstance.occurrenceDefinition.Add(Guid.Parse(propertyValue)); + } + } + } + } + else + { + logger.LogDebug("the occurrenceDefinition Json property was not found in the SuccessionFlowUsage: {Id}", dtoInstance.Id); + } + if (jsonElement.TryGetProperty("output"u8, out var outputProperty)) { foreach (var arrayItem in outputProperty.EnumerateArray()) diff --git a/SysML2.NET.Serializer.Json/Core/AutoGenDeSerializer/TerminateActionUsageDeSerializer.cs b/SysML2.NET.Serializer.Json/Core/AutoGenDeSerializer/TerminateActionUsageDeSerializer.cs index bda12c276..58dcf8464 100644 --- a/SysML2.NET.Serializer.Json/Core/AutoGenDeSerializer/TerminateActionUsageDeSerializer.cs +++ b/SysML2.NET.Serializer.Json/Core/AutoGenDeSerializer/TerminateActionUsageDeSerializer.cs @@ -1355,6 +1355,26 @@ private static void DeserializeDtoIncludingDerivedProperties(SysML2.NET.Core.DTO logger.LogDebug("the nestedViewpoint Json property was not found in the TerminateActionUsage: {Id}", dtoInstance.Id); } + if (jsonElement.TryGetProperty("occurrenceDefinition"u8, out var occurrenceDefinitionProperty)) + { + foreach (var arrayItem in occurrenceDefinitionProperty.EnumerateArray()) + { + if (arrayItem.TryGetProperty("@id"u8, out var occurrenceDefinitionExternalIdProperty)) + { + var propertyValue = occurrenceDefinitionExternalIdProperty.GetString(); + + if (propertyValue != null) + { + dtoInstance.occurrenceDefinition.Add(Guid.Parse(propertyValue)); + } + } + } + } + else + { + logger.LogDebug("the occurrenceDefinition Json property was not found in the TerminateActionUsage: {Id}", dtoInstance.Id); + } + if (jsonElement.TryGetProperty("output"u8, out var outputProperty)) { foreach (var arrayItem in outputProperty.EnumerateArray()) diff --git a/SysML2.NET.Serializer.Json/Core/AutoGenDeSerializer/TransitionUsageDeSerializer.cs b/SysML2.NET.Serializer.Json/Core/AutoGenDeSerializer/TransitionUsageDeSerializer.cs index a176d0537..939879bf5 100644 --- a/SysML2.NET.Serializer.Json/Core/AutoGenDeSerializer/TransitionUsageDeSerializer.cs +++ b/SysML2.NET.Serializer.Json/Core/AutoGenDeSerializer/TransitionUsageDeSerializer.cs @@ -1395,6 +1395,26 @@ private static void DeserializeDtoIncludingDerivedProperties(SysML2.NET.Core.DTO logger.LogDebug("the nestedViewpoint Json property was not found in the TransitionUsage: {Id}", dtoInstance.Id); } + if (jsonElement.TryGetProperty("occurrenceDefinition"u8, out var occurrenceDefinitionProperty)) + { + foreach (var arrayItem in occurrenceDefinitionProperty.EnumerateArray()) + { + if (arrayItem.TryGetProperty("@id"u8, out var occurrenceDefinitionExternalIdProperty)) + { + var propertyValue = occurrenceDefinitionExternalIdProperty.GetString(); + + if (propertyValue != null) + { + dtoInstance.occurrenceDefinition.Add(Guid.Parse(propertyValue)); + } + } + } + } + else + { + logger.LogDebug("the occurrenceDefinition Json property was not found in the TransitionUsage: {Id}", dtoInstance.Id); + } + if (jsonElement.TryGetProperty("output"u8, out var outputProperty)) { foreach (var arrayItem in outputProperty.EnumerateArray()) diff --git a/SysML2.NET.Serializer.Json/Core/AutoGenDeSerializer/UseCaseUsageDeSerializer.cs b/SysML2.NET.Serializer.Json/Core/AutoGenDeSerializer/UseCaseUsageDeSerializer.cs index a11a7132c..c8d797896 100644 --- a/SysML2.NET.Serializer.Json/Core/AutoGenDeSerializer/UseCaseUsageDeSerializer.cs +++ b/SysML2.NET.Serializer.Json/Core/AutoGenDeSerializer/UseCaseUsageDeSerializer.cs @@ -115,6 +115,26 @@ internal static IUseCaseUsage DeSerialize(JsonElement jsonElement, Serialization /// private static void DeserializeDtoIncludingDerivedProperties(SysML2.NET.Core.DTO.Systems.UseCases.UseCaseUsage dtoInstance, JsonElement jsonElement, ILogger logger) { + if (jsonElement.TryGetProperty("actionDefinition"u8, out var actionDefinitionProperty)) + { + foreach (var arrayItem in actionDefinitionProperty.EnumerateArray()) + { + if (arrayItem.TryGetProperty("@id"u8, out var actionDefinitionExternalIdProperty)) + { + var propertyValue = actionDefinitionExternalIdProperty.GetString(); + + if (propertyValue != null) + { + dtoInstance.actionDefinition.Add(Guid.Parse(propertyValue)); + } + } + } + } + else + { + logger.LogDebug("the actionDefinition Json property was not found in the UseCaseUsage: {Id}", dtoInstance.Id); + } + if (jsonElement.TryGetProperty("actorParameter"u8, out var actorParameterProperty)) { foreach (var arrayItem in actorParameterProperty.EnumerateArray()) @@ -1411,6 +1431,26 @@ private static void DeserializeDtoIncludingDerivedProperties(SysML2.NET.Core.DTO logger.LogDebug("the objectiveRequirement Json property was not found in the UseCaseUsage: {Id}", dtoInstance.Id); } + if (jsonElement.TryGetProperty("occurrenceDefinition"u8, out var occurrenceDefinitionProperty)) + { + foreach (var arrayItem in occurrenceDefinitionProperty.EnumerateArray()) + { + if (arrayItem.TryGetProperty("@id"u8, out var occurrenceDefinitionExternalIdProperty)) + { + var propertyValue = occurrenceDefinitionExternalIdProperty.GetString(); + + if (propertyValue != null) + { + dtoInstance.occurrenceDefinition.Add(Guid.Parse(propertyValue)); + } + } + } + } + else + { + logger.LogDebug("the occurrenceDefinition Json property was not found in the UseCaseUsage: {Id}", dtoInstance.Id); + } + if (jsonElement.TryGetProperty("output"u8, out var outputProperty)) { foreach (var arrayItem in outputProperty.EnumerateArray()) diff --git a/SysML2.NET.Serializer.Json/Core/AutoGenDeSerializer/VerificationCaseUsageDeSerializer.cs b/SysML2.NET.Serializer.Json/Core/AutoGenDeSerializer/VerificationCaseUsageDeSerializer.cs index c8c93610e..069f64965 100644 --- a/SysML2.NET.Serializer.Json/Core/AutoGenDeSerializer/VerificationCaseUsageDeSerializer.cs +++ b/SysML2.NET.Serializer.Json/Core/AutoGenDeSerializer/VerificationCaseUsageDeSerializer.cs @@ -115,6 +115,26 @@ internal static IVerificationCaseUsage DeSerialize(JsonElement jsonElement, Seri /// private static void DeserializeDtoIncludingDerivedProperties(SysML2.NET.Core.DTO.Systems.VerificationCases.VerificationCaseUsage dtoInstance, JsonElement jsonElement, ILogger logger) { + if (jsonElement.TryGetProperty("actionDefinition"u8, out var actionDefinitionProperty)) + { + foreach (var arrayItem in actionDefinitionProperty.EnumerateArray()) + { + if (arrayItem.TryGetProperty("@id"u8, out var actionDefinitionExternalIdProperty)) + { + var propertyValue = actionDefinitionExternalIdProperty.GetString(); + + if (propertyValue != null) + { + dtoInstance.actionDefinition.Add(Guid.Parse(propertyValue)); + } + } + } + } + else + { + logger.LogDebug("the actionDefinition Json property was not found in the VerificationCaseUsage: {Id}", dtoInstance.Id); + } + if (jsonElement.TryGetProperty("actorParameter"u8, out var actorParameterProperty)) { foreach (var arrayItem in actorParameterProperty.EnumerateArray()) @@ -1415,6 +1435,26 @@ private static void DeserializeDtoIncludingDerivedProperties(SysML2.NET.Core.DTO logger.LogDebug("the objectiveRequirement Json property was not found in the VerificationCaseUsage: {Id}", dtoInstance.Id); } + if (jsonElement.TryGetProperty("occurrenceDefinition"u8, out var occurrenceDefinitionProperty)) + { + foreach (var arrayItem in occurrenceDefinitionProperty.EnumerateArray()) + { + if (arrayItem.TryGetProperty("@id"u8, out var occurrenceDefinitionExternalIdProperty)) + { + var propertyValue = occurrenceDefinitionExternalIdProperty.GetString(); + + if (propertyValue != null) + { + dtoInstance.occurrenceDefinition.Add(Guid.Parse(propertyValue)); + } + } + } + } + else + { + logger.LogDebug("the occurrenceDefinition Json property was not found in the VerificationCaseUsage: {Id}", dtoInstance.Id); + } + if (jsonElement.TryGetProperty("output"u8, out var outputProperty)) { foreach (var arrayItem in outputProperty.EnumerateArray()) diff --git a/SysML2.NET.Serializer.Json/Core/AutoGenDeSerializer/WhileLoopActionUsageDeSerializer.cs b/SysML2.NET.Serializer.Json/Core/AutoGenDeSerializer/WhileLoopActionUsageDeSerializer.cs index 7f6d21437..66347b1a6 100644 --- a/SysML2.NET.Serializer.Json/Core/AutoGenDeSerializer/WhileLoopActionUsageDeSerializer.cs +++ b/SysML2.NET.Serializer.Json/Core/AutoGenDeSerializer/WhileLoopActionUsageDeSerializer.cs @@ -1380,6 +1380,26 @@ private static void DeserializeDtoIncludingDerivedProperties(SysML2.NET.Core.DTO logger.LogDebug("the nestedViewpoint Json property was not found in the WhileLoopActionUsage: {Id}", dtoInstance.Id); } + if (jsonElement.TryGetProperty("occurrenceDefinition"u8, out var occurrenceDefinitionProperty)) + { + foreach (var arrayItem in occurrenceDefinitionProperty.EnumerateArray()) + { + if (arrayItem.TryGetProperty("@id"u8, out var occurrenceDefinitionExternalIdProperty)) + { + var propertyValue = occurrenceDefinitionExternalIdProperty.GetString(); + + if (propertyValue != null) + { + dtoInstance.occurrenceDefinition.Add(Guid.Parse(propertyValue)); + } + } + } + } + else + { + logger.LogDebug("the occurrenceDefinition Json property was not found in the WhileLoopActionUsage: {Id}", dtoInstance.Id); + } + if (jsonElement.TryGetProperty("output"u8, out var outputProperty)) { foreach (var arrayItem in outputProperty.EnumerateArray()) diff --git a/SysML2.NET.Serializer.Json/Core/AutoGenSerializer/SendActionUsageSerializer.cs b/SysML2.NET.Serializer.Json/Core/AutoGenSerializer/SendActionUsageSerializer.cs index 5a9d8b265..1ae9c14c8 100644 --- a/SysML2.NET.Serializer.Json/Core/AutoGenSerializer/SendActionUsageSerializer.cs +++ b/SysML2.NET.Serializer.Json/Core/AutoGenSerializer/SendActionUsageSerializer.cs @@ -1218,10 +1218,18 @@ private static void SerializeAsJsonWithDerivedProperties(ISendActionUsage iSendA writer.WriteEndArray(); writer.WritePropertyName("payloadArgument"u8); - writer.WriteStartObject(); - writer.WritePropertyName("@id"u8); - writer.WriteStringValue(iSendActionUsage.payloadArgument); - writer.WriteEndObject(); + + if (iSendActionUsage.payloadArgument.HasValue) + { + writer.WriteStartObject(); + writer.WritePropertyName("@id"u8); + writer.WriteStringValue(iSendActionUsage.payloadArgument.Value); + writer.WriteEndObject(); + } + else + { + writer.WriteNullValue(); + } writer.WritePropertyName("portionKind"u8); From 71df50dfbc01ca20d7d5c59879036bc45666ae06 Mon Sep 17 00:00:00 2001 From: atheate Date: Mon, 8 Jun 2026 11:06:40 +0200 Subject: [PATCH 3/4] XMI --- .../Readers/AutoGenReaders/ActionUsageReader.cs | 1 + .../Readers/AutoGenReaders/DecisionNodeReader.cs | 1 + .../Readers/AutoGenReaders/ExhibitStateUsageReader.cs | 1 + .../Readers/AutoGenReaders/FlowUsageReader.cs | 1 + .../Readers/AutoGenReaders/ForkNodeReader.cs | 1 + .../Readers/AutoGenReaders/JoinNodeReader.cs | 1 + .../Readers/AutoGenReaders/MergeNodeReader.cs | 1 + .../Readers/AutoGenReaders/MetadataAccessExpressionReader.cs | 1 + .../Readers/AutoGenReaders/PerformActionUsageReader.cs | 1 + .../Readers/AutoGenReaders/StateUsageReader.cs | 1 + .../Readers/AutoGenReaders/SuccessionFlowUsageReader.cs | 1 + .../Writers/AutoGenWriters/ActionUsageWriter.cs | 1 + .../Writers/AutoGenWriters/DecisionNodeWriter.cs | 1 + .../Writers/AutoGenWriters/ExhibitStateUsageWriter.cs | 1 + .../Writers/AutoGenWriters/FlowUsageWriter.cs | 1 + .../Writers/AutoGenWriters/ForkNodeWriter.cs | 1 + .../Writers/AutoGenWriters/JoinNodeWriter.cs | 1 + .../Writers/AutoGenWriters/MergeNodeWriter.cs | 1 + .../Writers/AutoGenWriters/MetadataAccessExpressionWriter.cs | 1 + .../Writers/AutoGenWriters/PerformActionUsageWriter.cs | 1 + .../Writers/AutoGenWriters/StateUsageWriter.cs | 1 + .../Writers/AutoGenWriters/SuccessionFlowUsageWriter.cs | 1 + 22 files changed, 22 insertions(+) diff --git a/SysML2.NET.Serializer.Xmi/Readers/AutoGenReaders/ActionUsageReader.cs b/SysML2.NET.Serializer.Xmi/Readers/AutoGenReaders/ActionUsageReader.cs index e10dcc4df..2710c436c 100644 --- a/SysML2.NET.Serializer.Xmi/Readers/AutoGenReaders/ActionUsageReader.cs +++ b/SysML2.NET.Serializer.Xmi/Readers/AutoGenReaders/ActionUsageReader.cs @@ -41,6 +41,7 @@ namespace SysML2.NET.Serializer.Xmi.Readers using SysML2.NET.Core.POCO.Core.Types; using SysML2.NET.Core.POCO.Kernel.Behaviors; using SysML2.NET.Core.POCO.Kernel.Classes; + using SysML2.NET.Core.POCO.Kernel.Functions; using SysML2.NET.Core.POCO.Root.Annotations; using SysML2.NET.Core.POCO.Root.Elements; using SysML2.NET.Core.POCO.Root.Namespaces; diff --git a/SysML2.NET.Serializer.Xmi/Readers/AutoGenReaders/DecisionNodeReader.cs b/SysML2.NET.Serializer.Xmi/Readers/AutoGenReaders/DecisionNodeReader.cs index cb0331b16..57bfba2eb 100644 --- a/SysML2.NET.Serializer.Xmi/Readers/AutoGenReaders/DecisionNodeReader.cs +++ b/SysML2.NET.Serializer.Xmi/Readers/AutoGenReaders/DecisionNodeReader.cs @@ -41,6 +41,7 @@ namespace SysML2.NET.Serializer.Xmi.Readers using SysML2.NET.Core.POCO.Core.Types; using SysML2.NET.Core.POCO.Kernel.Behaviors; using SysML2.NET.Core.POCO.Kernel.Classes; + using SysML2.NET.Core.POCO.Kernel.Functions; using SysML2.NET.Core.POCO.Root.Annotations; using SysML2.NET.Core.POCO.Root.Elements; using SysML2.NET.Core.POCO.Root.Namespaces; diff --git a/SysML2.NET.Serializer.Xmi/Readers/AutoGenReaders/ExhibitStateUsageReader.cs b/SysML2.NET.Serializer.Xmi/Readers/AutoGenReaders/ExhibitStateUsageReader.cs index 3c84e9398..26aa89862 100644 --- a/SysML2.NET.Serializer.Xmi/Readers/AutoGenReaders/ExhibitStateUsageReader.cs +++ b/SysML2.NET.Serializer.Xmi/Readers/AutoGenReaders/ExhibitStateUsageReader.cs @@ -41,6 +41,7 @@ namespace SysML2.NET.Serializer.Xmi.Readers using SysML2.NET.Core.POCO.Core.Types; using SysML2.NET.Core.POCO.Kernel.Behaviors; using SysML2.NET.Core.POCO.Kernel.Classes; + using SysML2.NET.Core.POCO.Kernel.Functions; using SysML2.NET.Core.POCO.Root.Annotations; using SysML2.NET.Core.POCO.Root.Elements; using SysML2.NET.Core.POCO.Root.Namespaces; diff --git a/SysML2.NET.Serializer.Xmi/Readers/AutoGenReaders/FlowUsageReader.cs b/SysML2.NET.Serializer.Xmi/Readers/AutoGenReaders/FlowUsageReader.cs index ba517add3..579a25945 100644 --- a/SysML2.NET.Serializer.Xmi/Readers/AutoGenReaders/FlowUsageReader.cs +++ b/SysML2.NET.Serializer.Xmi/Readers/AutoGenReaders/FlowUsageReader.cs @@ -43,6 +43,7 @@ namespace SysML2.NET.Serializer.Xmi.Readers using SysML2.NET.Core.POCO.Kernel.Behaviors; using SysML2.NET.Core.POCO.Kernel.Classes; using SysML2.NET.Core.POCO.Kernel.Connectors; + using SysML2.NET.Core.POCO.Kernel.Functions; using SysML2.NET.Core.POCO.Kernel.Interactions; using SysML2.NET.Core.POCO.Root.Annotations; using SysML2.NET.Core.POCO.Root.Elements; diff --git a/SysML2.NET.Serializer.Xmi/Readers/AutoGenReaders/ForkNodeReader.cs b/SysML2.NET.Serializer.Xmi/Readers/AutoGenReaders/ForkNodeReader.cs index 7a7ed8f78..841a1836b 100644 --- a/SysML2.NET.Serializer.Xmi/Readers/AutoGenReaders/ForkNodeReader.cs +++ b/SysML2.NET.Serializer.Xmi/Readers/AutoGenReaders/ForkNodeReader.cs @@ -41,6 +41,7 @@ namespace SysML2.NET.Serializer.Xmi.Readers using SysML2.NET.Core.POCO.Core.Types; using SysML2.NET.Core.POCO.Kernel.Behaviors; using SysML2.NET.Core.POCO.Kernel.Classes; + using SysML2.NET.Core.POCO.Kernel.Functions; using SysML2.NET.Core.POCO.Root.Annotations; using SysML2.NET.Core.POCO.Root.Elements; using SysML2.NET.Core.POCO.Root.Namespaces; diff --git a/SysML2.NET.Serializer.Xmi/Readers/AutoGenReaders/JoinNodeReader.cs b/SysML2.NET.Serializer.Xmi/Readers/AutoGenReaders/JoinNodeReader.cs index 261324ee4..597f29097 100644 --- a/SysML2.NET.Serializer.Xmi/Readers/AutoGenReaders/JoinNodeReader.cs +++ b/SysML2.NET.Serializer.Xmi/Readers/AutoGenReaders/JoinNodeReader.cs @@ -41,6 +41,7 @@ namespace SysML2.NET.Serializer.Xmi.Readers using SysML2.NET.Core.POCO.Core.Types; using SysML2.NET.Core.POCO.Kernel.Behaviors; using SysML2.NET.Core.POCO.Kernel.Classes; + using SysML2.NET.Core.POCO.Kernel.Functions; using SysML2.NET.Core.POCO.Root.Annotations; using SysML2.NET.Core.POCO.Root.Elements; using SysML2.NET.Core.POCO.Root.Namespaces; diff --git a/SysML2.NET.Serializer.Xmi/Readers/AutoGenReaders/MergeNodeReader.cs b/SysML2.NET.Serializer.Xmi/Readers/AutoGenReaders/MergeNodeReader.cs index d1d3a8faf..04386c968 100644 --- a/SysML2.NET.Serializer.Xmi/Readers/AutoGenReaders/MergeNodeReader.cs +++ b/SysML2.NET.Serializer.Xmi/Readers/AutoGenReaders/MergeNodeReader.cs @@ -41,6 +41,7 @@ namespace SysML2.NET.Serializer.Xmi.Readers using SysML2.NET.Core.POCO.Core.Types; using SysML2.NET.Core.POCO.Kernel.Behaviors; using SysML2.NET.Core.POCO.Kernel.Classes; + using SysML2.NET.Core.POCO.Kernel.Functions; using SysML2.NET.Core.POCO.Root.Annotations; using SysML2.NET.Core.POCO.Root.Elements; using SysML2.NET.Core.POCO.Root.Namespaces; diff --git a/SysML2.NET.Serializer.Xmi/Readers/AutoGenReaders/MetadataAccessExpressionReader.cs b/SysML2.NET.Serializer.Xmi/Readers/AutoGenReaders/MetadataAccessExpressionReader.cs index 5d7ba59bb..3dd134a89 100644 --- a/SysML2.NET.Serializer.Xmi/Readers/AutoGenReaders/MetadataAccessExpressionReader.cs +++ b/SysML2.NET.Serializer.Xmi/Readers/AutoGenReaders/MetadataAccessExpressionReader.cs @@ -39,6 +39,7 @@ namespace SysML2.NET.Serializer.Xmi.Readers using SysML2.NET.Core.POCO.Core.Types; using SysML2.NET.Core.POCO.Kernel.Behaviors; using SysML2.NET.Core.POCO.Kernel.Functions; + using SysML2.NET.Core.POCO.Kernel.Metadata; using SysML2.NET.Core.POCO.Root.Annotations; using SysML2.NET.Core.POCO.Root.Elements; using SysML2.NET.Core.POCO.Root.Namespaces; diff --git a/SysML2.NET.Serializer.Xmi/Readers/AutoGenReaders/PerformActionUsageReader.cs b/SysML2.NET.Serializer.Xmi/Readers/AutoGenReaders/PerformActionUsageReader.cs index 55199b615..b3067d261 100644 --- a/SysML2.NET.Serializer.Xmi/Readers/AutoGenReaders/PerformActionUsageReader.cs +++ b/SysML2.NET.Serializer.Xmi/Readers/AutoGenReaders/PerformActionUsageReader.cs @@ -41,6 +41,7 @@ namespace SysML2.NET.Serializer.Xmi.Readers using SysML2.NET.Core.POCO.Core.Types; using SysML2.NET.Core.POCO.Kernel.Behaviors; using SysML2.NET.Core.POCO.Kernel.Classes; + using SysML2.NET.Core.POCO.Kernel.Functions; using SysML2.NET.Core.POCO.Root.Annotations; using SysML2.NET.Core.POCO.Root.Elements; using SysML2.NET.Core.POCO.Root.Namespaces; diff --git a/SysML2.NET.Serializer.Xmi/Readers/AutoGenReaders/StateUsageReader.cs b/SysML2.NET.Serializer.Xmi/Readers/AutoGenReaders/StateUsageReader.cs index dfd2c8e5d..8fabae3f8 100644 --- a/SysML2.NET.Serializer.Xmi/Readers/AutoGenReaders/StateUsageReader.cs +++ b/SysML2.NET.Serializer.Xmi/Readers/AutoGenReaders/StateUsageReader.cs @@ -41,6 +41,7 @@ namespace SysML2.NET.Serializer.Xmi.Readers using SysML2.NET.Core.POCO.Core.Types; using SysML2.NET.Core.POCO.Kernel.Behaviors; using SysML2.NET.Core.POCO.Kernel.Classes; + using SysML2.NET.Core.POCO.Kernel.Functions; using SysML2.NET.Core.POCO.Root.Annotations; using SysML2.NET.Core.POCO.Root.Elements; using SysML2.NET.Core.POCO.Root.Namespaces; diff --git a/SysML2.NET.Serializer.Xmi/Readers/AutoGenReaders/SuccessionFlowUsageReader.cs b/SysML2.NET.Serializer.Xmi/Readers/AutoGenReaders/SuccessionFlowUsageReader.cs index 6814fc8eb..ad83721c9 100644 --- a/SysML2.NET.Serializer.Xmi/Readers/AutoGenReaders/SuccessionFlowUsageReader.cs +++ b/SysML2.NET.Serializer.Xmi/Readers/AutoGenReaders/SuccessionFlowUsageReader.cs @@ -43,6 +43,7 @@ namespace SysML2.NET.Serializer.Xmi.Readers using SysML2.NET.Core.POCO.Kernel.Behaviors; using SysML2.NET.Core.POCO.Kernel.Classes; using SysML2.NET.Core.POCO.Kernel.Connectors; + using SysML2.NET.Core.POCO.Kernel.Functions; using SysML2.NET.Core.POCO.Kernel.Interactions; using SysML2.NET.Core.POCO.Root.Annotations; using SysML2.NET.Core.POCO.Root.Elements; diff --git a/SysML2.NET.Serializer.Xmi/Writers/AutoGenWriters/ActionUsageWriter.cs b/SysML2.NET.Serializer.Xmi/Writers/AutoGenWriters/ActionUsageWriter.cs index bf7cf9a75..c7b3a4efd 100644 --- a/SysML2.NET.Serializer.Xmi/Writers/AutoGenWriters/ActionUsageWriter.cs +++ b/SysML2.NET.Serializer.Xmi/Writers/AutoGenWriters/ActionUsageWriter.cs @@ -41,6 +41,7 @@ namespace SysML2.NET.Serializer.Xmi.Writers using SysML2.NET.Core.POCO.Core.Types; using SysML2.NET.Core.POCO.Kernel.Behaviors; using SysML2.NET.Core.POCO.Kernel.Classes; + using SysML2.NET.Core.POCO.Kernel.Functions; using SysML2.NET.Core.POCO.Root.Annotations; using SysML2.NET.Core.POCO.Root.Elements; using SysML2.NET.Core.POCO.Root.Namespaces; diff --git a/SysML2.NET.Serializer.Xmi/Writers/AutoGenWriters/DecisionNodeWriter.cs b/SysML2.NET.Serializer.Xmi/Writers/AutoGenWriters/DecisionNodeWriter.cs index ea35f4609..34b0a2051 100644 --- a/SysML2.NET.Serializer.Xmi/Writers/AutoGenWriters/DecisionNodeWriter.cs +++ b/SysML2.NET.Serializer.Xmi/Writers/AutoGenWriters/DecisionNodeWriter.cs @@ -41,6 +41,7 @@ namespace SysML2.NET.Serializer.Xmi.Writers using SysML2.NET.Core.POCO.Core.Types; using SysML2.NET.Core.POCO.Kernel.Behaviors; using SysML2.NET.Core.POCO.Kernel.Classes; + using SysML2.NET.Core.POCO.Kernel.Functions; using SysML2.NET.Core.POCO.Root.Annotations; using SysML2.NET.Core.POCO.Root.Elements; using SysML2.NET.Core.POCO.Root.Namespaces; diff --git a/SysML2.NET.Serializer.Xmi/Writers/AutoGenWriters/ExhibitStateUsageWriter.cs b/SysML2.NET.Serializer.Xmi/Writers/AutoGenWriters/ExhibitStateUsageWriter.cs index 4cb1c0547..b957fdb30 100644 --- a/SysML2.NET.Serializer.Xmi/Writers/AutoGenWriters/ExhibitStateUsageWriter.cs +++ b/SysML2.NET.Serializer.Xmi/Writers/AutoGenWriters/ExhibitStateUsageWriter.cs @@ -41,6 +41,7 @@ namespace SysML2.NET.Serializer.Xmi.Writers using SysML2.NET.Core.POCO.Core.Types; using SysML2.NET.Core.POCO.Kernel.Behaviors; using SysML2.NET.Core.POCO.Kernel.Classes; + using SysML2.NET.Core.POCO.Kernel.Functions; using SysML2.NET.Core.POCO.Root.Annotations; using SysML2.NET.Core.POCO.Root.Elements; using SysML2.NET.Core.POCO.Root.Namespaces; diff --git a/SysML2.NET.Serializer.Xmi/Writers/AutoGenWriters/FlowUsageWriter.cs b/SysML2.NET.Serializer.Xmi/Writers/AutoGenWriters/FlowUsageWriter.cs index 4f7d999c8..80cae09d6 100644 --- a/SysML2.NET.Serializer.Xmi/Writers/AutoGenWriters/FlowUsageWriter.cs +++ b/SysML2.NET.Serializer.Xmi/Writers/AutoGenWriters/FlowUsageWriter.cs @@ -43,6 +43,7 @@ namespace SysML2.NET.Serializer.Xmi.Writers using SysML2.NET.Core.POCO.Kernel.Behaviors; using SysML2.NET.Core.POCO.Kernel.Classes; using SysML2.NET.Core.POCO.Kernel.Connectors; + using SysML2.NET.Core.POCO.Kernel.Functions; using SysML2.NET.Core.POCO.Kernel.Interactions; using SysML2.NET.Core.POCO.Root.Annotations; using SysML2.NET.Core.POCO.Root.Elements; diff --git a/SysML2.NET.Serializer.Xmi/Writers/AutoGenWriters/ForkNodeWriter.cs b/SysML2.NET.Serializer.Xmi/Writers/AutoGenWriters/ForkNodeWriter.cs index 9fab02c53..31f7a0d2f 100644 --- a/SysML2.NET.Serializer.Xmi/Writers/AutoGenWriters/ForkNodeWriter.cs +++ b/SysML2.NET.Serializer.Xmi/Writers/AutoGenWriters/ForkNodeWriter.cs @@ -41,6 +41,7 @@ namespace SysML2.NET.Serializer.Xmi.Writers using SysML2.NET.Core.POCO.Core.Types; using SysML2.NET.Core.POCO.Kernel.Behaviors; using SysML2.NET.Core.POCO.Kernel.Classes; + using SysML2.NET.Core.POCO.Kernel.Functions; using SysML2.NET.Core.POCO.Root.Annotations; using SysML2.NET.Core.POCO.Root.Elements; using SysML2.NET.Core.POCO.Root.Namespaces; diff --git a/SysML2.NET.Serializer.Xmi/Writers/AutoGenWriters/JoinNodeWriter.cs b/SysML2.NET.Serializer.Xmi/Writers/AutoGenWriters/JoinNodeWriter.cs index 80054946c..c685418d8 100644 --- a/SysML2.NET.Serializer.Xmi/Writers/AutoGenWriters/JoinNodeWriter.cs +++ b/SysML2.NET.Serializer.Xmi/Writers/AutoGenWriters/JoinNodeWriter.cs @@ -41,6 +41,7 @@ namespace SysML2.NET.Serializer.Xmi.Writers using SysML2.NET.Core.POCO.Core.Types; using SysML2.NET.Core.POCO.Kernel.Behaviors; using SysML2.NET.Core.POCO.Kernel.Classes; + using SysML2.NET.Core.POCO.Kernel.Functions; using SysML2.NET.Core.POCO.Root.Annotations; using SysML2.NET.Core.POCO.Root.Elements; using SysML2.NET.Core.POCO.Root.Namespaces; diff --git a/SysML2.NET.Serializer.Xmi/Writers/AutoGenWriters/MergeNodeWriter.cs b/SysML2.NET.Serializer.Xmi/Writers/AutoGenWriters/MergeNodeWriter.cs index 7ace31e4b..a0aba3689 100644 --- a/SysML2.NET.Serializer.Xmi/Writers/AutoGenWriters/MergeNodeWriter.cs +++ b/SysML2.NET.Serializer.Xmi/Writers/AutoGenWriters/MergeNodeWriter.cs @@ -41,6 +41,7 @@ namespace SysML2.NET.Serializer.Xmi.Writers using SysML2.NET.Core.POCO.Core.Types; using SysML2.NET.Core.POCO.Kernel.Behaviors; using SysML2.NET.Core.POCO.Kernel.Classes; + using SysML2.NET.Core.POCO.Kernel.Functions; using SysML2.NET.Core.POCO.Root.Annotations; using SysML2.NET.Core.POCO.Root.Elements; using SysML2.NET.Core.POCO.Root.Namespaces; diff --git a/SysML2.NET.Serializer.Xmi/Writers/AutoGenWriters/MetadataAccessExpressionWriter.cs b/SysML2.NET.Serializer.Xmi/Writers/AutoGenWriters/MetadataAccessExpressionWriter.cs index cef6a1ac1..087a9c29d 100644 --- a/SysML2.NET.Serializer.Xmi/Writers/AutoGenWriters/MetadataAccessExpressionWriter.cs +++ b/SysML2.NET.Serializer.Xmi/Writers/AutoGenWriters/MetadataAccessExpressionWriter.cs @@ -39,6 +39,7 @@ namespace SysML2.NET.Serializer.Xmi.Writers using SysML2.NET.Core.POCO.Core.Types; using SysML2.NET.Core.POCO.Kernel.Behaviors; using SysML2.NET.Core.POCO.Kernel.Functions; + using SysML2.NET.Core.POCO.Kernel.Metadata; using SysML2.NET.Core.POCO.Root.Annotations; using SysML2.NET.Core.POCO.Root.Elements; using SysML2.NET.Core.POCO.Root.Namespaces; diff --git a/SysML2.NET.Serializer.Xmi/Writers/AutoGenWriters/PerformActionUsageWriter.cs b/SysML2.NET.Serializer.Xmi/Writers/AutoGenWriters/PerformActionUsageWriter.cs index 147a8a721..67df80812 100644 --- a/SysML2.NET.Serializer.Xmi/Writers/AutoGenWriters/PerformActionUsageWriter.cs +++ b/SysML2.NET.Serializer.Xmi/Writers/AutoGenWriters/PerformActionUsageWriter.cs @@ -41,6 +41,7 @@ namespace SysML2.NET.Serializer.Xmi.Writers using SysML2.NET.Core.POCO.Core.Types; using SysML2.NET.Core.POCO.Kernel.Behaviors; using SysML2.NET.Core.POCO.Kernel.Classes; + using SysML2.NET.Core.POCO.Kernel.Functions; using SysML2.NET.Core.POCO.Root.Annotations; using SysML2.NET.Core.POCO.Root.Elements; using SysML2.NET.Core.POCO.Root.Namespaces; diff --git a/SysML2.NET.Serializer.Xmi/Writers/AutoGenWriters/StateUsageWriter.cs b/SysML2.NET.Serializer.Xmi/Writers/AutoGenWriters/StateUsageWriter.cs index b3ac380bc..38b467486 100644 --- a/SysML2.NET.Serializer.Xmi/Writers/AutoGenWriters/StateUsageWriter.cs +++ b/SysML2.NET.Serializer.Xmi/Writers/AutoGenWriters/StateUsageWriter.cs @@ -41,6 +41,7 @@ namespace SysML2.NET.Serializer.Xmi.Writers using SysML2.NET.Core.POCO.Core.Types; using SysML2.NET.Core.POCO.Kernel.Behaviors; using SysML2.NET.Core.POCO.Kernel.Classes; + using SysML2.NET.Core.POCO.Kernel.Functions; using SysML2.NET.Core.POCO.Root.Annotations; using SysML2.NET.Core.POCO.Root.Elements; using SysML2.NET.Core.POCO.Root.Namespaces; diff --git a/SysML2.NET.Serializer.Xmi/Writers/AutoGenWriters/SuccessionFlowUsageWriter.cs b/SysML2.NET.Serializer.Xmi/Writers/AutoGenWriters/SuccessionFlowUsageWriter.cs index 24247196b..b09219b17 100644 --- a/SysML2.NET.Serializer.Xmi/Writers/AutoGenWriters/SuccessionFlowUsageWriter.cs +++ b/SysML2.NET.Serializer.Xmi/Writers/AutoGenWriters/SuccessionFlowUsageWriter.cs @@ -43,6 +43,7 @@ namespace SysML2.NET.Serializer.Xmi.Writers using SysML2.NET.Core.POCO.Kernel.Behaviors; using SysML2.NET.Core.POCO.Kernel.Classes; using SysML2.NET.Core.POCO.Kernel.Connectors; + using SysML2.NET.Core.POCO.Kernel.Functions; using SysML2.NET.Core.POCO.Kernel.Interactions; using SysML2.NET.Core.POCO.Root.Annotations; using SysML2.NET.Core.POCO.Root.Elements; From bf70688d95f023e08535608c2b5532a970d88803 Mon Sep 17 00:00:00 2001 From: atheate Date: Mon, 8 Jun 2026 11:22:46 +0200 Subject: [PATCH 4/4] Expected Classes --- .../UML/Core/AutoGenDto/Association.cs | 10 +-- .../UML/Core/AutoGenDto/Dependency.cs | 5 +- .../Core/AutoGenDto/EnumerationDefinition.cs | 12 +-- .../Expected/UML/Core/AutoGenDto/Feature.cs | 35 ++++----- .../Expected/UML/Core/AutoGenDto/Flow.cs | 10 +-- .../UML/Core/AutoGenDto/IDependency.cs | 5 +- .../Expected/UML/Core/AutoGenDto/IFeature.cs | 25 +++--- .../UML/Core/AutoGenDto/IMembership.cs | 9 +-- .../Core/AutoGenDto/IReferenceSubsetting.cs | 4 +- .../UML/Core/AutoGenDto/IRelationship.cs | 16 ++-- .../Core/AutoGenDto/ITextualRepresentation.cs | 44 +++++------ .../Expected/UML/Core/AutoGenDto/IUsage.cs | 27 ++++--- .../UML/Core/AutoGenDto/LiteralInteger.cs | 10 +-- .../UML/Core/AutoGenDto/LiteralRational.cs | 10 +-- .../UML/Core/AutoGenDto/Membership.cs | 9 +-- .../UML/Core/AutoGenDto/MultiplicityRange.cs | 10 +-- .../Core/AutoGenDto/ReferenceSubsetting.cs | 4 +- .../UML/Core/AutoGenDto/RequirementUsage.cs | 22 +++--- .../UML/Core/AutoGenDto/SelectExpression.cs | 14 ++-- .../Core/AutoGenDto/TextualRepresentation.cs | 44 +++++------ .../Expected/UML/Core/AutoGenDto/Usage.cs | 37 +++++---- .../UML/Core/AutoGenPoco/AnnotatingElement.cs | 4 +- .../UML/Core/AutoGenPoco/Association.cs | 27 ++++--- .../UML/Core/AutoGenPoco/Dependency.cs | 9 +-- .../Core/AutoGenPoco/EnumerationDefinition.cs | 29 ++++--- .../Expected/UML/Core/AutoGenPoco/Feature.cs | 76 +++++++++--------- .../UML/Core/AutoGenPoco/FeatureTyping.cs | 4 +- .../Expected/UML/Core/AutoGenPoco/Flow.cs | 51 ++++++------ .../AutoGenPoco/FramedConcernMembership.cs | 4 +- .../UML/Core/AutoGenPoco/IDependency.cs | 5 +- .../Expected/UML/Core/AutoGenPoco/IElement.cs | 4 +- .../Expected/UML/Core/AutoGenPoco/IFeature.cs | 49 ++++++------ .../UML/Core/AutoGenPoco/IMembership.cs | 9 +-- .../Core/AutoGenPoco/IReferenceSubsetting.cs | 4 +- .../UML/Core/AutoGenPoco/IRelationship.cs | 16 ++-- .../AutoGenPoco/ITextualRepresentation.cs | 44 +++++------ .../Expected/UML/Core/AutoGenPoco/IUsage.cs | 27 ++++--- .../UML/Core/AutoGenPoco/LiteralInteger.cs | 61 +++++++-------- .../UML/Core/AutoGenPoco/LiteralRational.cs | 61 +++++++-------- .../UML/Core/AutoGenPoco/Membership.cs | 13 ++-- .../UML/Core/AutoGenPoco/MultiplicityRange.cs | 51 ++++++------ .../UML/Core/AutoGenPoco/OwningMembership.cs | 4 +- .../Core/AutoGenPoco/ReferenceSubsetting.cs | 8 +- .../UML/Core/AutoGenPoco/RequirementUsage.cs | 73 +++++++++-------- .../UML/Core/AutoGenPoco/SelectExpression.cs | 68 ++++++++-------- .../UML/Core/AutoGenPoco/Subclassification.cs | 4 +- .../Core/AutoGenPoco/TextualRepresentation.cs | 48 ++++++------ .../Expected/UML/Core/AutoGenPoco/Usage.cs | 78 +++++++++---------- 48 files changed, 566 insertions(+), 627 deletions(-) diff --git a/SysML2.NET.CodeGenerator.Tests/Expected/UML/Core/AutoGenDto/Association.cs b/SysML2.NET.CodeGenerator.Tests/Expected/UML/Core/AutoGenDto/Association.cs index 0591208e3..6685e36ff 100644 --- a/SysML2.NET.CodeGenerator.Tests/Expected/UML/Core/AutoGenDto/Association.cs +++ b/SysML2.NET.CodeGenerator.Tests/Expected/UML/Core/AutoGenDto/Association.cs @@ -235,11 +235,11 @@ public partial class Association : IAssociation /// /// Whether all things that meet the classification conditions of this Type must be classified by the - /// Type. (A Type gives conditions that must be met by whatever it - /// classifies, but when isSufficient is false, things may meet those conditions but still not be - /// classified by the Type. For example, a Type Car that is not sufficient could require everything it - /// classifies to have four wheels, but not all four wheeled things would classify as cars. However, if - /// the Type Car were sufficient, it would classify all four-wheeled things.) + /// Type.(A Type gives conditions that must be met by whatever it classifies, but when isSufficient + /// is false, things may meet those conditions but still not be classified by the Type. For example, a + /// Type Car that is not sufficient could require everything it classifies to have four wheels, but not + /// all four wheeled things would classify as cars. However, if the Type Car were sufficient, it would + /// classify all four-wheeled things.) /// [Property(xmiId: "_18_5_3_b9102da_1564072709069_937523_30797", aggregation: AggregationKind.None, lowerValue: 1, upperValue: 1, isOrdered: false, isReadOnly: false, isDerived: false, isDerivedUnion: false, isUnique: true, defaultValue: "false")] [Implements(implementation: "IType.IsSufficient")] diff --git a/SysML2.NET.CodeGenerator.Tests/Expected/UML/Core/AutoGenDto/Dependency.cs b/SysML2.NET.CodeGenerator.Tests/Expected/UML/Core/AutoGenDto/Dependency.cs index 8e5c3a9ed..7bccb04dc 100644 --- a/SysML2.NET.CodeGenerator.Tests/Expected/UML/Core/AutoGenDto/Dependency.cs +++ b/SysML2.NET.CodeGenerator.Tests/Expected/UML/Core/AutoGenDto/Dependency.cs @@ -34,9 +34,8 @@ namespace SysML2.NET.Core.DTO.Root.Dependencies /// /// A Dependency is a Relationship that indicates that one or more client Elements require one more /// supplier Elements for their complete specification. In general, this means that a change to one of - /// the supplier Elements may necessitate a change to, or re-specification of, the client Elements. - /// Note that a Dependency is entirely a model-level Relationship, without - /// instance-level semantics. + /// the supplier Elements may necessitate a change to, or re-specification of, the client Elements.Note + /// that a Dependency is entirely a model-level Relationship, without instance-level semantics. /// [Class(xmiId: "_19_0_2_12e503d9_1594006219028_628649_74", isAbstract: false, isFinalSpecialization: false, isActive: false)] [GeneratedCode("SysML2.NET", "latest")] diff --git a/SysML2.NET.CodeGenerator.Tests/Expected/UML/Core/AutoGenDto/EnumerationDefinition.cs b/SysML2.NET.CodeGenerator.Tests/Expected/UML/Core/AutoGenDto/EnumerationDefinition.cs index f510f2901..e851a82b8 100644 --- a/SysML2.NET.CodeGenerator.Tests/Expected/UML/Core/AutoGenDto/EnumerationDefinition.cs +++ b/SysML2.NET.CodeGenerator.Tests/Expected/UML/Core/AutoGenDto/EnumerationDefinition.cs @@ -232,11 +232,11 @@ public partial class EnumerationDefinition : IEnumerationDefinition /// /// Whether all things that meet the classification conditions of this Type must be classified by the - /// Type. (A Type gives conditions that must be met by whatever it - /// classifies, but when isSufficient is false, things may meet those conditions but still not be - /// classified by the Type. For example, a Type Car that is not sufficient could require everything it - /// classifies to have four wheels, but not all four wheeled things would classify as cars. However, if - /// the Type Car were sufficient, it would classify all four-wheeled things.) + /// Type.(A Type gives conditions that must be met by whatever it classifies, but when isSufficient + /// is false, things may meet those conditions but still not be classified by the Type. For example, a + /// Type Car that is not sufficient could require everything it classifies to have four wheels, but not + /// all four wheeled things would classify as cars. However, if the Type Car were sufficient, it would + /// classify all four-wheeled things.) /// [Property(xmiId: "_18_5_3_b9102da_1564072709069_937523_30797", aggregation: AggregationKind.None, lowerValue: 1, upperValue: 1, isOrdered: false, isReadOnly: false, isDerived: false, isDerivedUnion: false, isUnique: true, defaultValue: "false")] [Implements(implementation: "IType.IsSufficient")] @@ -531,7 +531,7 @@ bool Systems.DefinitionAndUsage.IDefinition.IsVariation public List ownedMembership { get; internal set; } = []; /// - /// The MetadataUsages that are ownedUsages of this Definition. + /// The MetadataUsages that are ownedMembers of this Definition. /// [Property(xmiId: "_19_0_4_12e503d9_1661488358064_457109_2881", aggregation: AggregationKind.None, lowerValue: 0, upperValue: int.MaxValue, isOrdered: true, isReadOnly: false, isDerived: true, isDerivedUnion: false, isUnique: true, defaultValue: null)] [SubsettedProperty(propertyName: "_19_0_2_12e503d9_1591482567975_649284_3005")] diff --git a/SysML2.NET.CodeGenerator.Tests/Expected/UML/Core/AutoGenDto/Feature.cs b/SysML2.NET.CodeGenerator.Tests/Expected/UML/Core/AutoGenDto/Feature.cs index ee6fb8c63..6d3056380 100644 --- a/SysML2.NET.CodeGenerator.Tests/Expected/UML/Core/AutoGenDto/Feature.cs +++ b/SysML2.NET.CodeGenerator.Tests/Expected/UML/Core/AutoGenDto/Feature.cs @@ -36,19 +36,18 @@ namespace SysML2.NET.Core.DTO.Core.Features /// A Feature is a Type that classifies relations between multiple things (in the universe). The domain /// of the relation is the intersection of the featuringTypes of the Feature. (The domain of a Feature /// with no featuringTyps is implicitly the most general Type Base::Anything from the Kernel Semantic - /// Library.) The co-domain of the relation is the intersection of the types of the Feature. - /// In the simplest cases, the featuringTypes and types are Classifiers and the Feature - /// relates two things, one from the domain and one from the range. Examples include cars paired with - /// wheels, people paired with other people, and cars paired with numbers representing the car length. - /// Since Features are Types, their featuringTypes and types can be Features. In - /// this case, the Feature effectively classifies relations between relations, which can be interpreted - /// as the sequence of things related by the domain Feature concatenated with the sequence of things - /// related by the co-domain Feature. The values of a Feature for a given - /// instance of its domain are all the instances of its co-domain that are related to that domain - /// instance by the Feature. The values of a Feature with chainingFeatures are the same as values of the - /// last Feature in the chain, which can be found by starting with values of the first Feature, then - /// using those values as domain instances to obtain valus of the second Feature, and so on, to values - /// of the last Feature. + /// Library.) The co-domain of the relation is the intersection of the types of the Feature.In the + /// simplest cases, the featuringTypes and types are Classifiers and the Feature relates two things, one + /// from the domain and one from the range. Examples include cars paired with wheels, people paired with + /// other people, and cars paired with numbers representing the car length.Since Features are Types, + /// their featuringTypes and types can be Features. In this case, the Feature effectively classifies + /// relations between relations, which can be interpreted as the sequence of things related by the + /// domain Feature concatenated with the sequence of things related by the co-domain Feature.The values + /// of a Feature for a given instance of its domain are all the instances of its co-domain that are + /// related to that domain instance by the Feature. The values of a Feature with chainingFeatures are + /// the same as values of the last Feature in the chain, which can be found by starting with values of + /// the first Feature, then using those values as domain instances to obtain valus of the second + /// Feature, and so on, to values of the last Feature. /// [Class(xmiId: "_18_5_3_12e503d9_1533160651684_893483_42160", isAbstract: false, isFinalSpecialization: false, isActive: false)] [GeneratedCode("SysML2.NET", "latest")] @@ -339,11 +338,11 @@ public partial class Feature : IFeature /// /// Whether all things that meet the classification conditions of this Type must be classified by the - /// Type. (A Type gives conditions that must be met by whatever it - /// classifies, but when isSufficient is false, things may meet those conditions but still not be - /// classified by the Type. For example, a Type Car that is not sufficient could require everything it - /// classifies to have four wheels, but not all four wheeled things would classify as cars. However, if - /// the Type Car were sufficient, it would classify all four-wheeled things.) + /// Type.(A Type gives conditions that must be met by whatever it classifies, but when isSufficient + /// is false, things may meet those conditions but still not be classified by the Type. For example, a + /// Type Car that is not sufficient could require everything it classifies to have four wheels, but not + /// all four wheeled things would classify as cars. However, if the Type Car were sufficient, it would + /// classify all four-wheeled things.) /// [Property(xmiId: "_18_5_3_b9102da_1564072709069_937523_30797", aggregation: AggregationKind.None, lowerValue: 1, upperValue: 1, isOrdered: false, isReadOnly: false, isDerived: false, isDerivedUnion: false, isUnique: true, defaultValue: "false")] [Implements(implementation: "IType.IsSufficient")] diff --git a/SysML2.NET.CodeGenerator.Tests/Expected/UML/Core/AutoGenDto/Flow.cs b/SysML2.NET.CodeGenerator.Tests/Expected/UML/Core/AutoGenDto/Flow.cs index 291fb075a..c8653a839 100644 --- a/SysML2.NET.CodeGenerator.Tests/Expected/UML/Core/AutoGenDto/Flow.cs +++ b/SysML2.NET.CodeGenerator.Tests/Expected/UML/Core/AutoGenDto/Flow.cs @@ -391,11 +391,11 @@ public partial class Flow : IFlow /// /// Whether all things that meet the classification conditions of this Type must be classified by the - /// Type. (A Type gives conditions that must be met by whatever it - /// classifies, but when isSufficient is false, things may meet those conditions but still not be - /// classified by the Type. For example, a Type Car that is not sufficient could require everything it - /// classifies to have four wheels, but not all four wheeled things would classify as cars. However, if - /// the Type Car were sufficient, it would classify all four-wheeled things.) + /// Type.(A Type gives conditions that must be met by whatever it classifies, but when isSufficient + /// is false, things may meet those conditions but still not be classified by the Type. For example, a + /// Type Car that is not sufficient could require everything it classifies to have four wheels, but not + /// all four wheeled things would classify as cars. However, if the Type Car were sufficient, it would + /// classify all four-wheeled things.) /// [Property(xmiId: "_18_5_3_b9102da_1564072709069_937523_30797", aggregation: AggregationKind.None, lowerValue: 1, upperValue: 1, isOrdered: false, isReadOnly: false, isDerived: false, isDerivedUnion: false, isUnique: true, defaultValue: "false")] [Implements(implementation: "IType.IsSufficient")] diff --git a/SysML2.NET.CodeGenerator.Tests/Expected/UML/Core/AutoGenDto/IDependency.cs b/SysML2.NET.CodeGenerator.Tests/Expected/UML/Core/AutoGenDto/IDependency.cs index 8b39fda3f..b97d27a78 100644 --- a/SysML2.NET.CodeGenerator.Tests/Expected/UML/Core/AutoGenDto/IDependency.cs +++ b/SysML2.NET.CodeGenerator.Tests/Expected/UML/Core/AutoGenDto/IDependency.cs @@ -34,9 +34,8 @@ namespace SysML2.NET.Core.DTO.Root.Dependencies /// /// A Dependency is a Relationship that indicates that one or more client Elements require one more /// supplier Elements for their complete specification. In general, this means that a change to one of - /// the supplier Elements may necessitate a change to, or re-specification of, the client Elements. - /// Note that a Dependency is entirely a model-level Relationship, without - /// instance-level semantics. + /// the supplier Elements may necessitate a change to, or re-specification of, the client Elements.Note + /// that a Dependency is entirely a model-level Relationship, without instance-level semantics. /// [Class(xmiId: "_19_0_2_12e503d9_1594006219028_628649_74", isAbstract: false, isFinalSpecialization: false, isActive: false)] [GeneratedCode("SysML2.NET", "latest")] diff --git a/SysML2.NET.CodeGenerator.Tests/Expected/UML/Core/AutoGenDto/IFeature.cs b/SysML2.NET.CodeGenerator.Tests/Expected/UML/Core/AutoGenDto/IFeature.cs index e9d271387..f1199488a 100644 --- a/SysML2.NET.CodeGenerator.Tests/Expected/UML/Core/AutoGenDto/IFeature.cs +++ b/SysML2.NET.CodeGenerator.Tests/Expected/UML/Core/AutoGenDto/IFeature.cs @@ -36,19 +36,18 @@ namespace SysML2.NET.Core.DTO.Core.Features /// A Feature is a Type that classifies relations between multiple things (in the universe). The domain /// of the relation is the intersection of the featuringTypes of the Feature. (The domain of a Feature /// with no featuringTyps is implicitly the most general Type Base::Anything from the Kernel Semantic - /// Library.) The co-domain of the relation is the intersection of the types of the Feature. - /// In the simplest cases, the featuringTypes and types are Classifiers and the Feature - /// relates two things, one from the domain and one from the range. Examples include cars paired with - /// wheels, people paired with other people, and cars paired with numbers representing the car length. - /// Since Features are Types, their featuringTypes and types can be Features. In - /// this case, the Feature effectively classifies relations between relations, which can be interpreted - /// as the sequence of things related by the domain Feature concatenated with the sequence of things - /// related by the co-domain Feature. The values of a Feature for a given - /// instance of its domain are all the instances of its co-domain that are related to that domain - /// instance by the Feature. The values of a Feature with chainingFeatures are the same as values of the - /// last Feature in the chain, which can be found by starting with values of the first Feature, then - /// using those values as domain instances to obtain valus of the second Feature, and so on, to values - /// of the last Feature. + /// Library.) The co-domain of the relation is the intersection of the types of the Feature.In the + /// simplest cases, the featuringTypes and types are Classifiers and the Feature relates two things, one + /// from the domain and one from the range. Examples include cars paired with wheels, people paired with + /// other people, and cars paired with numbers representing the car length.Since Features are Types, + /// their featuringTypes and types can be Features. In this case, the Feature effectively classifies + /// relations between relations, which can be interpreted as the sequence of things related by the + /// domain Feature concatenated with the sequence of things related by the co-domain Feature.The values + /// of a Feature for a given instance of its domain are all the instances of its co-domain that are + /// related to that domain instance by the Feature. The values of a Feature with chainingFeatures are + /// the same as values of the last Feature in the chain, which can be found by starting with values of + /// the first Feature, then using those values as domain instances to obtain valus of the second + /// Feature, and so on, to values of the last Feature. /// [Class(xmiId: "_18_5_3_12e503d9_1533160651684_893483_42160", isAbstract: false, isFinalSpecialization: false, isActive: false)] [GeneratedCode("SysML2.NET", "latest")] diff --git a/SysML2.NET.CodeGenerator.Tests/Expected/UML/Core/AutoGenDto/IMembership.cs b/SysML2.NET.CodeGenerator.Tests/Expected/UML/Core/AutoGenDto/IMembership.cs index 4767743b6..de0fadb7b 100644 --- a/SysML2.NET.CodeGenerator.Tests/Expected/UML/Core/AutoGenDto/IMembership.cs +++ b/SysML2.NET.CodeGenerator.Tests/Expected/UML/Core/AutoGenDto/IMembership.cs @@ -36,11 +36,10 @@ namespace SysML2.NET.Core.DTO.Root.Namespaces /// A Membership is a Relationship between a Namespace and an Element that indicates the Element is a /// member of (i.e., is contained in) the Namespace. Any memberNames specify how the memberElement is /// identified in the Namespace and the visibility specifies whether or not the memberElement is - /// publicly visible from outside the Namespace. If a Membership is an - /// OwningMembership, then it owns its memberElement, which becomes an ownedMember of the - /// membershipOwningNamespace. Otherwise, the memberNames of a Membership are effectively aliases within - /// the membershipOwningNamespace for an Element with a separate OwningMembership in the same or a - /// different Namespace. + /// publicly visible from outside the Namespace.If a Membership is an OwningMembership, then it owns its + /// memberElement, which becomes an ownedMember of the membershipOwningNamespace. Otherwise, the + /// memberNames of a Membership are effectively aliases within the membershipOwningNamespace for an + /// Element with a separate OwningMembership in the same or a different Namespace. /// [Class(xmiId: "_18_5_3_12e503d9_1533160651680_888716_42152", isAbstract: false, isFinalSpecialization: false, isActive: false)] [GeneratedCode("SysML2.NET", "latest")] diff --git a/SysML2.NET.CodeGenerator.Tests/Expected/UML/Core/AutoGenDto/IReferenceSubsetting.cs b/SysML2.NET.CodeGenerator.Tests/Expected/UML/Core/AutoGenDto/IReferenceSubsetting.cs index 4fc07e3c2..836808b88 100644 --- a/SysML2.NET.CodeGenerator.Tests/Expected/UML/Core/AutoGenDto/IReferenceSubsetting.cs +++ b/SysML2.NET.CodeGenerator.Tests/Expected/UML/Core/AutoGenDto/IReferenceSubsetting.cs @@ -35,8 +35,8 @@ namespace SysML2.NET.Core.DTO.Core.Features /// distinguished from other Features subsetted by the referencingFeature. ReferenceSubsetting has the /// same semantics as Subsetting, but the referencedFeature may have a special purpose relative to the /// referencingFeature. For instance, ReferenceSubsetting is used to identify the relatedFeatures of a - /// Connector. ReferenceSubsetting is always an ownedRelationship of its - /// referencingFeature. A Feature can have at most one ownedReferenceSubsetting. + /// Connector.ReferenceSubsetting is always an ownedRelationship of its referencingFeature. A Feature + /// can have at most one ownedReferenceSubsetting. /// [Class(xmiId: "_19_0_4_12e503d9_1661554793960_500657_60", isAbstract: false, isFinalSpecialization: false, isActive: false)] [GeneratedCode("SysML2.NET", "latest")] diff --git a/SysML2.NET.CodeGenerator.Tests/Expected/UML/Core/AutoGenDto/IRelationship.cs b/SysML2.NET.CodeGenerator.Tests/Expected/UML/Core/AutoGenDto/IRelationship.cs index 10380dee9..229c131ca 100644 --- a/SysML2.NET.CodeGenerator.Tests/Expected/UML/Core/AutoGenDto/IRelationship.cs +++ b/SysML2.NET.CodeGenerator.Tests/Expected/UML/Core/AutoGenDto/IRelationship.cs @@ -35,14 +35,14 @@ namespace SysML2.NET.Core.DTO.Root.Elements /// in which case those ownedRelatedElements will be deleted from a model if their owningRelationship /// is. A Relationship may also be owned by another Element, in which case the ownedRelatedElements of /// the Relationship are also considered to be transitively owned by the owningRelatedElement of the - /// Relationship. The relatedElements of a Relationship are divided into source - /// and target Elements. The Relationship is considered to be directed from the source to the target - /// Elements. An undirected Relationship may have either all source or all target Elements. - /// A "relationship Element" in the abstract syntax is generically any Element that - /// is an instance of either Relationship or a direct or indirect specialization of Relationship. Any - /// other kind of Element is a "non-relationship Element". It is a convention of that - /// non-relationship Elements are only related via reified relationship Elements. Any meta-associations - /// directly between non-relationship Elements must be derived from underlying reified Relationship. + /// Relationship.The relatedElements of a Relationship are divided into source and target Elements. The + /// Relationship is considered to be directed from the source to the target Elements. An undirected + /// Relationship may have either all source or all target Elements.A "relationship Element" in + /// the abstract syntax is generically any Element that is an instance of either Relationship or a + /// direct or indirect specialization of Relationship. Any other kind of Element is a + /// "non-relationship Element". It is a convention of that non-relationship Elements are only + /// related via reified relationship Elements. Any meta-associations directly between non-relationship + /// Elements must be derived from underlying reified Relationship. /// [Class(xmiId: "_18_5_3_12e503d9_1533160651700_869737_42192", isAbstract: true, isFinalSpecialization: false, isActive: false)] [GeneratedCode("SysML2.NET", "latest")] diff --git a/SysML2.NET.CodeGenerator.Tests/Expected/UML/Core/AutoGenDto/ITextualRepresentation.cs b/SysML2.NET.CodeGenerator.Tests/Expected/UML/Core/AutoGenDto/ITextualRepresentation.cs index 9605a1696..99ec33be9 100644 --- a/SysML2.NET.CodeGenerator.Tests/Expected/UML/Core/AutoGenDto/ITextualRepresentation.cs +++ b/SysML2.NET.CodeGenerator.Tests/Expected/UML/Core/AutoGenDto/ITextualRepresentation.cs @@ -35,30 +35,26 @@ namespace SysML2.NET.Core.DTO.Root.Annotations /// given language. The representedElement must be the owner of the TextualRepresentation. The named /// language can be a natural language, in which case the body is an informal representation, or an /// artificial language, in which case the body is expected to be a formal, machine-parsable - /// representation. If the named language of a TextualRepresentation is - /// machine-parsable, then the body text should be legal input text as defined for that language. The - /// interpretation of the named language string shall be case insensitive. The following language names - /// are defined to correspond to the given standard languages: - /// - /// - /// - /// - ///
kerml Kernel Modeling Language
ocl Object Constraint Language
alfAction Language for fUML
Other - /// specifications may define specific language strings, other than those shown above, to be used to - /// indicate the use of languages from those specifications in KerML TextualRepresentation. - /// If the language of a TextualRepresentation is "kerml", then the body text shall - /// be a legal representation of the representedElement in the KerML textual concrete syntax. A - /// conforming tool can use such a TextualRepresentation Annotation to record the original KerML - /// concrete syntax text from which an Element was parsed. In this case, it is a tool responsibility to - /// ensure that the body of the TextualRepresentation remains correct (or the Annotation is removed) if - /// the annotated Element changes other than by re-parsing the body text. An - /// Element with a TextualRepresentation in a language other than KerML is essentially a semantically - /// "opaque" Element specified in the other language. However, a conforming KerML tool may - /// interpret such an element consistently with the specification of the named language. + /// representation.If the named language of a TextualRepresentation is machine-parsable, then the body + /// text should be legal input text as defined for that language. The interpretation of the named + /// language string shall be case insensitive. The following language names are defined to correspond to + /// the given standard languages:
kerml Kernel Modeling Language
ocl Object Constraint + /// Language
alf Action Language for fUML
Other specifications may + /// define specific language strings, other than those shown above, to be used to indicate the use of + /// languages from those specifications in KerML TextualRepresentation.If the language of a + /// TextualRepresentation is "kerml", then the body text shall be a legal representation of + /// the representedElement in the KerML textual concrete syntax. A conforming tool can use such a + /// TextualRepresentation Annotation to record the original KerML concrete syntax text from which an + /// Element was parsed. In this case, it is a tool responsibility to ensure that the body of the + /// TextualRepresentation remains correct (or the Annotation is removed) if the annotated Element + /// changes other than by re-parsing the body text.An Element with a TextualRepresentation in a language + /// other than KerML is essentially a semantically "opaque" Element specified in the other + /// language. However, a conforming KerML tool may interpret such an element consistently with the + /// specification of the named language. /// [Class(xmiId: "_19_0_2_12e503d9_1594152214531_455349_2448", isAbstract: false, isFinalSpecialization: false, isActive: false)] [GeneratedCode("SysML2.NET", "latest")] diff --git a/SysML2.NET.CodeGenerator.Tests/Expected/UML/Core/AutoGenDto/IUsage.cs b/SysML2.NET.CodeGenerator.Tests/Expected/UML/Core/AutoGenDto/IUsage.cs index 85a4a1241..e2e647497 100644 --- a/SysML2.NET.CodeGenerator.Tests/Expected/UML/Core/AutoGenDto/IUsage.cs +++ b/SysML2.NET.CodeGenerator.Tests/Expected/UML/Core/AutoGenDto/IUsage.cs @@ -33,14 +33,13 @@ namespace SysML2.NET.Core.DTO.Systems.DefinitionAndUsage using SysML2.NET.Decorators; /// - /// A Usage is a usage of a Definition. A Usage may have nestedUsages that model - /// features that apply in the context of the owningUsage. A Usage may also have Definitions nested in - /// it, but this has no semantic significance, other than the nested scoping resulting from the Usage - /// being considered as a Namespace for any nested Definitions. However, if a - /// Usage has isVariation = true, then it represents a variation point Usage. In this case, all of its - /// members must be variant Usages, related to the Usage by VariantMembership Relationships. Rather than - /// being features of the Usage, variant Usages model different concrete alternatives that can be chosen - /// to fill in for the variation point Usage. + /// A Usage is a usage of a Definition.A Usage may have nestedUsages that model features that apply in + /// the context of the owningUsage. A Usage may also have Definitions nested in it, but this has no + /// semantic significance, other than the nested scoping resulting from the Usage being considered as a + /// Namespace for any nested Definitions.However, if a Usage has isVariation = true, then it represents + /// a variation point Usage. In this case, all of its members must be variant Usages, related to the + /// Usage by VariantMembership Relationships. Rather than being features of the Usage, variant Usages + /// model different concrete alternatives that can be chosen to fill in for the variation point Usage. /// [Class(xmiId: "_18_5_3_12e503d9_1565469997820_598571_19982", isAbstract: false, isFinalSpecialization: false, isActive: false)] [GeneratedCode("SysML2.NET", "latest")] @@ -79,9 +78,9 @@ public partial interface IUsage : IFeature /// Whether this Usage may be time varying (that is, whether it is featured by the snapshots of its /// owningType, rather than being featured by the owningType itself). However, if isConstant is also /// true, then the value of the Usage is nevertheless constant over the entire duration of an instance - /// of its owningType (that is, it has the same value on all snapshots). The - /// property mayTimeVary redefines the KerML property Feature::isVariable, making it derived. The - /// property isConstant is inherited from Feature. + /// of its owningType (that is, it has the same value on all snapshots).The property mayTimeVary + /// redefines the KerML property Feature::isVariable, making it derived. The property isConstant is + /// inherited from Feature. /// [Property(xmiId: "_2022x_2_12e503d9_1737227200362_771035_69", aggregation: AggregationKind.None, lowerValue: 1, upperValue: 1, isOrdered: false, isReadOnly: false, isDerived: true, isDerivedUnion: false, isUnique: true, defaultValue: null)] [RedefinedProperty(propertyName: "_2022x_2_12e503d9_1725998273002_23711_212")] @@ -138,8 +137,8 @@ public partial interface IUsage : IFeature /// /// The ConnectorAsUsages that are nestedUsages of this Usage. Note that this list includes - /// BindingConnectorAsUsages, SuccessionAsUsages, and FlowConnectionUsages because these are - /// ConnectorAsUsages even though they are not ConnectionUsages. + /// BindingConnectorAsUsages, SuccessionAsUsages, and FlowUsages because these are ConnectorAsUsages + /// even though they are not ConnectionUsages. /// [Property(xmiId: "_19_0_2_12e503d9_1591479754895_422988_1242", aggregation: AggregationKind.None, lowerValue: 0, upperValue: int.MaxValue, isOrdered: true, isReadOnly: false, isDerived: true, isDerivedUnion: false, isUnique: true, defaultValue: null)] [SubsettedProperty(propertyName: "_18_5_3_12e503d9_1565472757327_162097_21259")] @@ -181,7 +180,7 @@ public partial interface IUsage : IFeature List nestedItem { get; } /// - /// The MetadataUsages that are nestedUsages of this of this Usage. + /// The MetadataUsages that are ownedMembers of this of this Usage. /// [Property(xmiId: "_19_0_4_12e503d9_1661488589862_120785_2970", aggregation: AggregationKind.None, lowerValue: 0, upperValue: int.MaxValue, isOrdered: true, isReadOnly: false, isDerived: true, isDerivedUnion: false, isUnique: true, defaultValue: null)] [SubsettedProperty(propertyName: "_19_0_2_12e503d9_1591482421103_284620_2978")] diff --git a/SysML2.NET.CodeGenerator.Tests/Expected/UML/Core/AutoGenDto/LiteralInteger.cs b/SysML2.NET.CodeGenerator.Tests/Expected/UML/Core/AutoGenDto/LiteralInteger.cs index 57ee46ffc..1a3182af5 100644 --- a/SysML2.NET.CodeGenerator.Tests/Expected/UML/Core/AutoGenDto/LiteralInteger.cs +++ b/SysML2.NET.CodeGenerator.Tests/Expected/UML/Core/AutoGenDto/LiteralInteger.cs @@ -350,11 +350,11 @@ public partial class LiteralInteger : ILiteralInteger /// /// Whether all things that meet the classification conditions of this Type must be classified by the - /// Type. (A Type gives conditions that must be met by whatever it - /// classifies, but when isSufficient is false, things may meet those conditions but still not be - /// classified by the Type. For example, a Type Car that is not sufficient could require everything it - /// classifies to have four wheels, but not all four wheeled things would classify as cars. However, if - /// the Type Car were sufficient, it would classify all four-wheeled things.) + /// Type.(A Type gives conditions that must be met by whatever it classifies, but when isSufficient + /// is false, things may meet those conditions but still not be classified by the Type. For example, a + /// Type Car that is not sufficient could require everything it classifies to have four wheels, but not + /// all four wheeled things would classify as cars. However, if the Type Car were sufficient, it would + /// classify all four-wheeled things.) /// [Property(xmiId: "_18_5_3_b9102da_1564072709069_937523_30797", aggregation: AggregationKind.None, lowerValue: 1, upperValue: 1, isOrdered: false, isReadOnly: false, isDerived: false, isDerivedUnion: false, isUnique: true, defaultValue: "false")] [Implements(implementation: "IType.IsSufficient")] diff --git a/SysML2.NET.CodeGenerator.Tests/Expected/UML/Core/AutoGenDto/LiteralRational.cs b/SysML2.NET.CodeGenerator.Tests/Expected/UML/Core/AutoGenDto/LiteralRational.cs index e25e7f09b..77842e477 100644 --- a/SysML2.NET.CodeGenerator.Tests/Expected/UML/Core/AutoGenDto/LiteralRational.cs +++ b/SysML2.NET.CodeGenerator.Tests/Expected/UML/Core/AutoGenDto/LiteralRational.cs @@ -350,11 +350,11 @@ public partial class LiteralRational : ILiteralRational /// /// Whether all things that meet the classification conditions of this Type must be classified by the - /// Type. (A Type gives conditions that must be met by whatever it - /// classifies, but when isSufficient is false, things may meet those conditions but still not be - /// classified by the Type. For example, a Type Car that is not sufficient could require everything it - /// classifies to have four wheels, but not all four wheeled things would classify as cars. However, if - /// the Type Car were sufficient, it would classify all four-wheeled things.) + /// Type.(A Type gives conditions that must be met by whatever it classifies, but when isSufficient + /// is false, things may meet those conditions but still not be classified by the Type. For example, a + /// Type Car that is not sufficient could require everything it classifies to have four wheels, but not + /// all four wheeled things would classify as cars. However, if the Type Car were sufficient, it would + /// classify all four-wheeled things.) /// [Property(xmiId: "_18_5_3_b9102da_1564072709069_937523_30797", aggregation: AggregationKind.None, lowerValue: 1, upperValue: 1, isOrdered: false, isReadOnly: false, isDerived: false, isDerivedUnion: false, isUnique: true, defaultValue: "false")] [Implements(implementation: "IType.IsSufficient")] diff --git a/SysML2.NET.CodeGenerator.Tests/Expected/UML/Core/AutoGenDto/Membership.cs b/SysML2.NET.CodeGenerator.Tests/Expected/UML/Core/AutoGenDto/Membership.cs index cb4cb6b55..7ca6ef727 100644 --- a/SysML2.NET.CodeGenerator.Tests/Expected/UML/Core/AutoGenDto/Membership.cs +++ b/SysML2.NET.CodeGenerator.Tests/Expected/UML/Core/AutoGenDto/Membership.cs @@ -36,11 +36,10 @@ namespace SysML2.NET.Core.DTO.Root.Namespaces /// A Membership is a Relationship between a Namespace and an Element that indicates the Element is a /// member of (i.e., is contained in) the Namespace. Any memberNames specify how the memberElement is /// identified in the Namespace and the visibility specifies whether or not the memberElement is - /// publicly visible from outside the Namespace. If a Membership is an - /// OwningMembership, then it owns its memberElement, which becomes an ownedMember of the - /// membershipOwningNamespace. Otherwise, the memberNames of a Membership are effectively aliases within - /// the membershipOwningNamespace for an Element with a separate OwningMembership in the same or a - /// different Namespace. + /// publicly visible from outside the Namespace.If a Membership is an OwningMembership, then it owns its + /// memberElement, which becomes an ownedMember of the membershipOwningNamespace. Otherwise, the + /// memberNames of a Membership are effectively aliases within the membershipOwningNamespace for an + /// Element with a separate OwningMembership in the same or a different Namespace. /// [Class(xmiId: "_18_5_3_12e503d9_1533160651680_888716_42152", isAbstract: false, isFinalSpecialization: false, isActive: false)] [GeneratedCode("SysML2.NET", "latest")] diff --git a/SysML2.NET.CodeGenerator.Tests/Expected/UML/Core/AutoGenDto/MultiplicityRange.cs b/SysML2.NET.CodeGenerator.Tests/Expected/UML/Core/AutoGenDto/MultiplicityRange.cs index 3e0efd9aa..06ce0e518 100644 --- a/SysML2.NET.CodeGenerator.Tests/Expected/UML/Core/AutoGenDto/MultiplicityRange.cs +++ b/SysML2.NET.CodeGenerator.Tests/Expected/UML/Core/AutoGenDto/MultiplicityRange.cs @@ -339,11 +339,11 @@ public partial class MultiplicityRange : IMultiplicityRange /// /// Whether all things that meet the classification conditions of this Type must be classified by the - /// Type. (A Type gives conditions that must be met by whatever it - /// classifies, but when isSufficient is false, things may meet those conditions but still not be - /// classified by the Type. For example, a Type Car that is not sufficient could require everything it - /// classifies to have four wheels, but not all four wheeled things would classify as cars. However, if - /// the Type Car were sufficient, it would classify all four-wheeled things.) + /// Type.(A Type gives conditions that must be met by whatever it classifies, but when isSufficient + /// is false, things may meet those conditions but still not be classified by the Type. For example, a + /// Type Car that is not sufficient could require everything it classifies to have four wheels, but not + /// all four wheeled things would classify as cars. However, if the Type Car were sufficient, it would + /// classify all four-wheeled things.) /// [Property(xmiId: "_18_5_3_b9102da_1564072709069_937523_30797", aggregation: AggregationKind.None, lowerValue: 1, upperValue: 1, isOrdered: false, isReadOnly: false, isDerived: false, isDerivedUnion: false, isUnique: true, defaultValue: "false")] [Implements(implementation: "IType.IsSufficient")] diff --git a/SysML2.NET.CodeGenerator.Tests/Expected/UML/Core/AutoGenDto/ReferenceSubsetting.cs b/SysML2.NET.CodeGenerator.Tests/Expected/UML/Core/AutoGenDto/ReferenceSubsetting.cs index b5b00b4ee..44837b30d 100644 --- a/SysML2.NET.CodeGenerator.Tests/Expected/UML/Core/AutoGenDto/ReferenceSubsetting.cs +++ b/SysML2.NET.CodeGenerator.Tests/Expected/UML/Core/AutoGenDto/ReferenceSubsetting.cs @@ -35,8 +35,8 @@ namespace SysML2.NET.Core.DTO.Core.Features /// distinguished from other Features subsetted by the referencingFeature. ReferenceSubsetting has the /// same semantics as Subsetting, but the referencedFeature may have a special purpose relative to the /// referencingFeature. For instance, ReferenceSubsetting is used to identify the relatedFeatures of a - /// Connector. ReferenceSubsetting is always an ownedRelationship of its - /// referencingFeature. A Feature can have at most one ownedReferenceSubsetting. + /// Connector.ReferenceSubsetting is always an ownedRelationship of its referencingFeature. A Feature + /// can have at most one ownedReferenceSubsetting. /// [Class(xmiId: "_19_0_4_12e503d9_1661554793960_500657_60", isAbstract: false, isFinalSpecialization: false, isActive: false)] [GeneratedCode("SysML2.NET", "latest")] diff --git a/SysML2.NET.CodeGenerator.Tests/Expected/UML/Core/AutoGenDto/RequirementUsage.cs b/SysML2.NET.CodeGenerator.Tests/Expected/UML/Core/AutoGenDto/RequirementUsage.cs index 5986706c7..964430dc5 100644 --- a/SysML2.NET.CodeGenerator.Tests/Expected/UML/Core/AutoGenDto/RequirementUsage.cs +++ b/SysML2.NET.CodeGenerator.Tests/Expected/UML/Core/AutoGenDto/RequirementUsage.cs @@ -440,11 +440,11 @@ string Root.Elements.IElement.DeclaredShortName /// /// Whether all things that meet the classification conditions of this Type must be classified by the - /// Type. (A Type gives conditions that must be met by whatever it - /// classifies, but when isSufficient is false, things may meet those conditions but still not be - /// classified by the Type. For example, a Type Car that is not sufficient could require everything it - /// classifies to have four wheels, but not all four wheeled things would classify as cars. However, if - /// the Type Car were sufficient, it would classify all four-wheeled things.) + /// Type.(A Type gives conditions that must be met by whatever it classifies, but when isSufficient + /// is false, things may meet those conditions but still not be classified by the Type. For example, a + /// Type Car that is not sufficient could require everything it classifies to have four wheels, but not + /// all four wheeled things would classify as cars. However, if the Type Car were sufficient, it would + /// classify all four-wheeled things.) /// [Property(xmiId: "_18_5_3_b9102da_1564072709069_937523_30797", aggregation: AggregationKind.None, lowerValue: 1, upperValue: 1, isOrdered: false, isReadOnly: false, isDerived: false, isDerivedUnion: false, isUnique: true, defaultValue: "false")] [Implements(implementation: "IType.IsSufficient")] @@ -482,9 +482,9 @@ bool Core.Features.IFeature.IsVariable /// Whether this Usage may be time varying (that is, whether it is featured by the snapshots of its /// owningType, rather than being featured by the owningType itself). However, if isConstant is also /// true, then the value of the Usage is nevertheless constant over the entire duration of an instance - /// of its owningType (that is, it has the same value on all snapshots). The - /// property mayTimeVary redefines the KerML property Feature::isVariable, making it derived. The - /// property isConstant is inherited from Feature. + /// of its owningType (that is, it has the same value on all snapshots).The property mayTimeVary + /// redefines the KerML property Feature::isVariable, making it derived. The property isConstant is + /// inherited from Feature. /// [Property(xmiId: "_2022x_2_12e503d9_1737227200362_771035_69", aggregation: AggregationKind.None, lowerValue: 1, upperValue: 1, isOrdered: false, isReadOnly: false, isDerived: true, isDerivedUnion: false, isUnique: true, defaultValue: null)] [RedefinedProperty(propertyName: "_2022x_2_12e503d9_1725998273002_23711_212")] @@ -585,8 +585,8 @@ bool Core.Features.IFeature.IsVariable /// /// The ConnectorAsUsages that are nestedUsages of this Usage. Note that this list includes - /// BindingConnectorAsUsages, SuccessionAsUsages, and FlowConnectionUsages because these are - /// ConnectorAsUsages even though they are not ConnectionUsages. + /// BindingConnectorAsUsages, SuccessionAsUsages, and FlowUsages because these are ConnectorAsUsages + /// even though they are not ConnectionUsages. /// [Property(xmiId: "_19_0_2_12e503d9_1591479754895_422988_1242", aggregation: AggregationKind.None, lowerValue: 0, upperValue: int.MaxValue, isOrdered: true, isReadOnly: false, isDerived: true, isDerivedUnion: false, isUnique: true, defaultValue: null)] [SubsettedProperty(propertyName: "_18_5_3_12e503d9_1565472757327_162097_21259")] @@ -634,7 +634,7 @@ bool Core.Features.IFeature.IsVariable public List nestedItem { get; internal set; } = []; /// - /// The MetadataUsages that are nestedUsages of this of this Usage. + /// The MetadataUsages that are ownedMembers of this of this Usage. /// [Property(xmiId: "_19_0_4_12e503d9_1661488589862_120785_2970", aggregation: AggregationKind.None, lowerValue: 0, upperValue: int.MaxValue, isOrdered: true, isReadOnly: false, isDerived: true, isDerivedUnion: false, isUnique: true, defaultValue: null)] [SubsettedProperty(propertyName: "_19_0_2_12e503d9_1591482421103_284620_2978")] diff --git a/SysML2.NET.CodeGenerator.Tests/Expected/UML/Core/AutoGenDto/SelectExpression.cs b/SysML2.NET.CodeGenerator.Tests/Expected/UML/Core/AutoGenDto/SelectExpression.cs index 7b97786f1..b6a206d14 100644 --- a/SysML2.NET.CodeGenerator.Tests/Expected/UML/Core/AutoGenDto/SelectExpression.cs +++ b/SysML2.NET.CodeGenerator.Tests/Expected/UML/Core/AutoGenDto/SelectExpression.cs @@ -56,8 +56,8 @@ public partial class SelectExpression : ISelectExpression /// /// The Expressions whose results are bound to features of the instantiatedType. The arguments are /// ordered consistent with the order of the features, though they may not be one-to-one with all the - /// features. Note. The derivation of argument is given in - /// the concrete subclasses of InstantiationExpression. + /// features.Note. The derivation of argument is given in the concrete subclasses of + /// InstantiationExpression. /// [Property(xmiId: "_2022x_2_12e503d9_1739134437590_328753_108", aggregation: AggregationKind.None, lowerValue: 0, upperValue: int.MaxValue, isOrdered: true, isReadOnly: false, isDerived: true, isDerivedUnion: false, isUnique: true, defaultValue: null)] [Implements(implementation: "IInstantiationExpression.Argument")] @@ -368,11 +368,11 @@ public partial class SelectExpression : ISelectExpression /// /// Whether all things that meet the classification conditions of this Type must be classified by the - /// Type. (A Type gives conditions that must be met by whatever it - /// classifies, but when isSufficient is false, things may meet those conditions but still not be - /// classified by the Type. For example, a Type Car that is not sufficient could require everything it - /// classifies to have four wheels, but not all four wheeled things would classify as cars. However, if - /// the Type Car were sufficient, it would classify all four-wheeled things.) + /// Type.(A Type gives conditions that must be met by whatever it classifies, but when isSufficient + /// is false, things may meet those conditions but still not be classified by the Type. For example, a + /// Type Car that is not sufficient could require everything it classifies to have four wheels, but not + /// all four wheeled things would classify as cars. However, if the Type Car were sufficient, it would + /// classify all four-wheeled things.) /// [Property(xmiId: "_18_5_3_b9102da_1564072709069_937523_30797", aggregation: AggregationKind.None, lowerValue: 1, upperValue: 1, isOrdered: false, isReadOnly: false, isDerived: false, isDerivedUnion: false, isUnique: true, defaultValue: "false")] [Implements(implementation: "IType.IsSufficient")] diff --git a/SysML2.NET.CodeGenerator.Tests/Expected/UML/Core/AutoGenDto/TextualRepresentation.cs b/SysML2.NET.CodeGenerator.Tests/Expected/UML/Core/AutoGenDto/TextualRepresentation.cs index fb0a72df5..b7ed14feb 100644 --- a/SysML2.NET.CodeGenerator.Tests/Expected/UML/Core/AutoGenDto/TextualRepresentation.cs +++ b/SysML2.NET.CodeGenerator.Tests/Expected/UML/Core/AutoGenDto/TextualRepresentation.cs @@ -35,30 +35,26 @@ namespace SysML2.NET.Core.DTO.Root.Annotations /// given language. The representedElement must be the owner of the TextualRepresentation. The named /// language can be a natural language, in which case the body is an informal representation, or an /// artificial language, in which case the body is expected to be a formal, machine-parsable - /// representation. If the named language of a TextualRepresentation is - /// machine-parsable, then the body text should be legal input text as defined for that language. The - /// interpretation of the named language string shall be case insensitive. The following language names - /// are defined to correspond to the given standard languages: - /// - /// - /// - /// - ///
kerml Kernel Modeling Language
ocl Object Constraint Language
alfAction Language for fUML
Other - /// specifications may define specific language strings, other than those shown above, to be used to - /// indicate the use of languages from those specifications in KerML TextualRepresentation. - /// If the language of a TextualRepresentation is "kerml", then the body text shall - /// be a legal representation of the representedElement in the KerML textual concrete syntax. A - /// conforming tool can use such a TextualRepresentation Annotation to record the original KerML - /// concrete syntax text from which an Element was parsed. In this case, it is a tool responsibility to - /// ensure that the body of the TextualRepresentation remains correct (or the Annotation is removed) if - /// the annotated Element changes other than by re-parsing the body text. An - /// Element with a TextualRepresentation in a language other than KerML is essentially a semantically - /// "opaque" Element specified in the other language. However, a conforming KerML tool may - /// interpret such an element consistently with the specification of the named language. + /// representation.If the named language of a TextualRepresentation is machine-parsable, then the body + /// text should be legal input text as defined for that language. The interpretation of the named + /// language string shall be case insensitive. The following language names are defined to correspond to + /// the given standard languages:
kerml Kernel Modeling Language
ocl Object Constraint + /// Language
alf Action Language for fUML
Other specifications may + /// define specific language strings, other than those shown above, to be used to indicate the use of + /// languages from those specifications in KerML TextualRepresentation.If the language of a + /// TextualRepresentation is "kerml", then the body text shall be a legal representation of + /// the representedElement in the KerML textual concrete syntax. A conforming tool can use such a + /// TextualRepresentation Annotation to record the original KerML concrete syntax text from which an + /// Element was parsed. In this case, it is a tool responsibility to ensure that the body of the + /// TextualRepresentation remains correct (or the Annotation is removed) if the annotated Element + /// changes other than by re-parsing the body text.An Element with a TextualRepresentation in a language + /// other than KerML is essentially a semantically "opaque" Element specified in the other + /// language. However, a conforming KerML tool may interpret such an element consistently with the + /// specification of the named language. /// [Class(xmiId: "_19_0_2_12e503d9_1594152214531_455349_2448", isAbstract: false, isFinalSpecialization: false, isActive: false)] [GeneratedCode("SysML2.NET", "latest")] diff --git a/SysML2.NET.CodeGenerator.Tests/Expected/UML/Core/AutoGenDto/Usage.cs b/SysML2.NET.CodeGenerator.Tests/Expected/UML/Core/AutoGenDto/Usage.cs index 00f335fc4..238ab0a00 100644 --- a/SysML2.NET.CodeGenerator.Tests/Expected/UML/Core/AutoGenDto/Usage.cs +++ b/SysML2.NET.CodeGenerator.Tests/Expected/UML/Core/AutoGenDto/Usage.cs @@ -33,14 +33,13 @@ namespace SysML2.NET.Core.DTO.Systems.DefinitionAndUsage using SysML2.NET.Decorators; /// - /// A Usage is a usage of a Definition. A Usage may have nestedUsages that model - /// features that apply in the context of the owningUsage. A Usage may also have Definitions nested in - /// it, but this has no semantic significance, other than the nested scoping resulting from the Usage - /// being considered as a Namespace for any nested Definitions. However, if a - /// Usage has isVariation = true, then it represents a variation point Usage. In this case, all of its - /// members must be variant Usages, related to the Usage by VariantMembership Relationships. Rather than - /// being features of the Usage, variant Usages model different concrete alternatives that can be chosen - /// to fill in for the variation point Usage. + /// A Usage is a usage of a Definition.A Usage may have nestedUsages that model features that apply in + /// the context of the owningUsage. A Usage may also have Definitions nested in it, but this has no + /// semantic significance, other than the nested scoping resulting from the Usage being considered as a + /// Namespace for any nested Definitions.However, if a Usage has isVariation = true, then it represents + /// a variation point Usage. In this case, all of its members must be variant Usages, related to the + /// Usage by VariantMembership Relationships. Rather than being features of the Usage, variant Usages + /// model different concrete alternatives that can be chosen to fill in for the variation point Usage. /// [Class(xmiId: "_18_5_3_12e503d9_1565469997820_598571_19982", isAbstract: false, isFinalSpecialization: false, isActive: false)] [GeneratedCode("SysML2.NET", "latest")] @@ -356,11 +355,11 @@ public partial class Usage : IUsage /// /// Whether all things that meet the classification conditions of this Type must be classified by the - /// Type. (A Type gives conditions that must be met by whatever it - /// classifies, but when isSufficient is false, things may meet those conditions but still not be - /// classified by the Type. For example, a Type Car that is not sufficient could require everything it - /// classifies to have four wheels, but not all four wheeled things would classify as cars. However, if - /// the Type Car were sufficient, it would classify all four-wheeled things.) + /// Type.(A Type gives conditions that must be met by whatever it classifies, but when isSufficient + /// is false, things may meet those conditions but still not be classified by the Type. For example, a + /// Type Car that is not sufficient could require everything it classifies to have four wheels, but not + /// all four wheeled things would classify as cars. However, if the Type Car were sufficient, it would + /// classify all four-wheeled things.) /// [Property(xmiId: "_18_5_3_b9102da_1564072709069_937523_30797", aggregation: AggregationKind.None, lowerValue: 1, upperValue: 1, isOrdered: false, isReadOnly: false, isDerived: false, isDerivedUnion: false, isUnique: true, defaultValue: "false")] [Implements(implementation: "IType.IsSufficient")] @@ -398,9 +397,9 @@ bool Core.Features.IFeature.IsVariable /// Whether this Usage may be time varying (that is, whether it is featured by the snapshots of its /// owningType, rather than being featured by the owningType itself). However, if isConstant is also /// true, then the value of the Usage is nevertheless constant over the entire duration of an instance - /// of its owningType (that is, it has the same value on all snapshots). The - /// property mayTimeVary redefines the KerML property Feature::isVariable, making it derived. The - /// property isConstant is inherited from Feature. + /// of its owningType (that is, it has the same value on all snapshots).The property mayTimeVary + /// redefines the KerML property Feature::isVariable, making it derived. The property isConstant is + /// inherited from Feature. /// [Property(xmiId: "_2022x_2_12e503d9_1737227200362_771035_69", aggregation: AggregationKind.None, lowerValue: 1, upperValue: 1, isOrdered: false, isReadOnly: false, isDerived: true, isDerivedUnion: false, isUnique: true, defaultValue: null)] [RedefinedProperty(propertyName: "_2022x_2_12e503d9_1725998273002_23711_212")] @@ -501,8 +500,8 @@ bool Core.Features.IFeature.IsVariable /// /// The ConnectorAsUsages that are nestedUsages of this Usage. Note that this list includes - /// BindingConnectorAsUsages, SuccessionAsUsages, and FlowConnectionUsages because these are - /// ConnectorAsUsages even though they are not ConnectionUsages. + /// BindingConnectorAsUsages, SuccessionAsUsages, and FlowUsages because these are ConnectorAsUsages + /// even though they are not ConnectionUsages. /// [Property(xmiId: "_19_0_2_12e503d9_1591479754895_422988_1242", aggregation: AggregationKind.None, lowerValue: 0, upperValue: int.MaxValue, isOrdered: true, isReadOnly: false, isDerived: true, isDerivedUnion: false, isUnique: true, defaultValue: null)] [SubsettedProperty(propertyName: "_18_5_3_12e503d9_1565472757327_162097_21259")] @@ -550,7 +549,7 @@ bool Core.Features.IFeature.IsVariable public List nestedItem { get; internal set; } = []; /// - /// The MetadataUsages that are nestedUsages of this of this Usage. + /// The MetadataUsages that are ownedMembers of this of this Usage. /// [Property(xmiId: "_19_0_4_12e503d9_1661488589862_120785_2970", aggregation: AggregationKind.None, lowerValue: 0, upperValue: int.MaxValue, isOrdered: true, isReadOnly: false, isDerived: true, isDerivedUnion: false, isUnique: true, defaultValue: null)] [SubsettedProperty(propertyName: "_19_0_2_12e503d9_1591482421103_284620_2978")] diff --git a/SysML2.NET.CodeGenerator.Tests/Expected/UML/Core/AutoGenPoco/AnnotatingElement.cs b/SysML2.NET.CodeGenerator.Tests/Expected/UML/Core/AutoGenPoco/AnnotatingElement.cs index f44cb12d7..ed8705857 100644 --- a/SysML2.NET.CodeGenerator.Tests/Expected/UML/Core/AutoGenPoco/AnnotatingElement.cs +++ b/SysML2.NET.CodeGenerator.Tests/Expected/UML/Core/AutoGenPoco/AnnotatingElement.cs @@ -307,8 +307,8 @@ public AnnotatingElement() /// an owningRelationship, then return the string constructed by appending to the path of it's /// owningRelationship the character / followed by the string representation of its position in the list /// of ownedRelatedElements of the owningRelationship (indexed starting at 1). Otherwise, return the - /// empty string. (Note that this operation is overridden for Relationships - /// to use owningRelatedElement when appropriate.) + /// empty string.(Note that this operation is overridden for Relationships to use owningRelatedElement + /// when appropriate.) /// /// /// The expected diff --git a/SysML2.NET.CodeGenerator.Tests/Expected/UML/Core/AutoGenPoco/Association.cs b/SysML2.NET.CodeGenerator.Tests/Expected/UML/Core/AutoGenPoco/Association.cs index aa422657e..7305c790f 100644 --- a/SysML2.NET.CodeGenerator.Tests/Expected/UML/Core/AutoGenPoco/Association.cs +++ b/SysML2.NET.CodeGenerator.Tests/Expected/UML/Core/AutoGenPoco/Association.cs @@ -258,11 +258,11 @@ public Association() /// /// Whether all things that meet the classification conditions of this Type must be classified by the - /// Type. (A Type gives conditions that must be met by whatever it - /// classifies, but when isSufficient is false, things may meet those conditions but still not be - /// classified by the Type. For example, a Type Car that is not sufficient could require everything it - /// classifies to have four wheels, but not all four wheeled things would classify as cars. However, if - /// the Type Car were sufficient, it would classify all four-wheeled things.) + /// Type.(A Type gives conditions that must be met by whatever it classifies, but when isSufficient + /// is false, things may meet those conditions but still not be classified by the Type. For example, a + /// Type Car that is not sufficient could require everything it classifies to have four wheels, but not + /// all four wheeled things would classify as cars. However, if the Type Car were sufficient, it would + /// classify all four-wheeled things.) /// [Property(xmiId: "_18_5_3_b9102da_1564072709069_937523_30797", aggregation: AggregationKind.None, lowerValue: 1, upperValue: 1, isOrdered: false, isReadOnly: false, isDerived: false, isDerivedUnion: false, isUnique: true, defaultValue: "false")] [Implements(implementation: "IType.IsSufficient")] @@ -848,8 +848,8 @@ List Root.Elements.IRelationship.Target /// an owningRelationship, then return the string constructed by appending to the path of it's /// owningRelationship the character / followed by the string representation of its position in the list /// of ownedRelatedElements of the owningRelationship (indexed starting at 1). Otherwise, return the - /// empty string. (Note that this operation is overridden for Relationships - /// to use owningRelatedElement when appropriate.) + /// empty string.(Note that this operation is overridden for Relationships to use owningRelatedElement + /// when appropriate.) /// /// /// The expected @@ -882,13 +882,12 @@ List Root.Elements.IRelationship.Target /// /// Return a subset of memberships, removing those Memberships whose memberElements are Features and for - /// which either of the following two conditions holds:
    - ///
  1. The memberElement of the Membership is included in redefined Features of another - /// Membership in memberships.
  2. One of the redefined Features of the - /// Membership is a directly redefinedFeature of an ownedFeature of this Type.
  3. - ///
For this purpose, the redefined Features of a Membership - /// whose memberElement is a Feature includes the memberElement and all Features directly or indirectly - /// redefined by the memberElement. + /// which either of the following two conditions holds:
  1. The memberElement of the Membership is + /// included in redefined Features of another Membership in memberships.
  2. One of the redefined + /// Features of the Membership is a directly redefinedFeature of an ownedFeature of this + /// Type.
For this purpose, the redefined Features of a Membership whose memberElement is a + /// Feature includes the memberElement and all Features directly or indirectly redefined by the + /// memberElement. ///
/// /// No documentation provided diff --git a/SysML2.NET.CodeGenerator.Tests/Expected/UML/Core/AutoGenPoco/Dependency.cs b/SysML2.NET.CodeGenerator.Tests/Expected/UML/Core/AutoGenPoco/Dependency.cs index c8434d5d2..a0d1633db 100644 --- a/SysML2.NET.CodeGenerator.Tests/Expected/UML/Core/AutoGenPoco/Dependency.cs +++ b/SysML2.NET.CodeGenerator.Tests/Expected/UML/Core/AutoGenPoco/Dependency.cs @@ -38,9 +38,8 @@ namespace SysML2.NET.Core.POCO.Root.Dependencies /// /// A Dependency is a Relationship that indicates that one or more client Elements require one more /// supplier Elements for their complete specification. In general, this means that a change to one of - /// the supplier Elements may necessitate a change to, or re-specification of, the client Elements. - /// Note that a Dependency is entirely a model-level Relationship, without - /// instance-level semantics. + /// the supplier Elements may necessitate a change to, or re-specification of, the client Elements.Note + /// that a Dependency is entirely a model-level Relationship, without instance-level semantics. /// [Class(xmiId: "_19_0_2_12e503d9_1594006219028_628649_74", isAbstract: false, isFinalSpecialization: false, isActive: false)] [GeneratedCode("SysML2.NET", "latest")] @@ -383,8 +382,8 @@ List Root.Elements.IRelationship.Target /// an owningRelationship, then return the string constructed by appending to the path of it's /// owningRelationship the character / followed by the string representation of its position in the list /// of ownedRelatedElements of the owningRelationship (indexed starting at 1). Otherwise, return the - /// empty string. (Note that this operation is overridden for Relationships - /// to use owningRelatedElement when appropriate.) + /// empty string.(Note that this operation is overridden for Relationships to use owningRelatedElement + /// when appropriate.) /// /// /// The expected diff --git a/SysML2.NET.CodeGenerator.Tests/Expected/UML/Core/AutoGenPoco/EnumerationDefinition.cs b/SysML2.NET.CodeGenerator.Tests/Expected/UML/Core/AutoGenPoco/EnumerationDefinition.cs index 12e2d343e..6f165a3ad 100644 --- a/SysML2.NET.CodeGenerator.Tests/Expected/UML/Core/AutoGenPoco/EnumerationDefinition.cs +++ b/SysML2.NET.CodeGenerator.Tests/Expected/UML/Core/AutoGenPoco/EnumerationDefinition.cs @@ -273,11 +273,11 @@ public EnumerationDefinition() /// /// Whether all things that meet the classification conditions of this Type must be classified by the - /// Type. (A Type gives conditions that must be met by whatever it - /// classifies, but when isSufficient is false, things may meet those conditions but still not be - /// classified by the Type. For example, a Type Car that is not sufficient could require everything it - /// classifies to have four wheels, but not all four wheeled things would classify as cars. However, if - /// the Type Car were sufficient, it would classify all four-wheeled things.) + /// Type.(A Type gives conditions that must be met by whatever it classifies, but when isSufficient + /// is false, things may meet those conditions but still not be classified by the Type. For example, a + /// Type Car that is not sufficient could require everything it classifies to have four wheels, but not + /// all four wheeled things would classify as cars. However, if the Type Car were sufficient, it would + /// classify all four-wheeled things.) /// [Property(xmiId: "_18_5_3_b9102da_1564072709069_937523_30797", aggregation: AggregationKind.None, lowerValue: 1, upperValue: 1, isOrdered: false, isReadOnly: false, isDerived: false, isDerivedUnion: false, isUnique: true, defaultValue: "false")] [Implements(implementation: "IType.IsSufficient")] @@ -572,7 +572,7 @@ bool Systems.DefinitionAndUsage.IDefinition.IsVariation public List ownedMembership => this.ComputeOwnedMembership(); /// - /// The MetadataUsages that are ownedUsages of this Definition. + /// The MetadataUsages that are ownedMembers of this Definition. /// [Property(xmiId: "_19_0_4_12e503d9_1661488358064_457109_2881", aggregation: AggregationKind.None, lowerValue: 0, upperValue: int.MaxValue, isOrdered: true, isReadOnly: false, isDerived: true, isDerivedUnion: false, isUnique: true, defaultValue: null)] [SubsettedProperty(propertyName: "_19_0_2_12e503d9_1591482567975_649284_3005")] @@ -1040,8 +1040,8 @@ bool Systems.DefinitionAndUsage.IDefinition.IsVariation /// an owningRelationship, then return the string constructed by appending to the path of it's /// owningRelationship the character / followed by the string representation of its position in the list /// of ownedRelatedElements of the owningRelationship (indexed starting at 1). Otherwise, return the - /// empty string. (Note that this operation is overridden for Relationships - /// to use owningRelatedElement when appropriate.) + /// empty string.(Note that this operation is overridden for Relationships to use owningRelatedElement + /// when appropriate.) /// /// /// The expected @@ -1063,13 +1063,12 @@ bool Systems.DefinitionAndUsage.IDefinition.IsVariation /// /// Return a subset of memberships, removing those Memberships whose memberElements are Features and for - /// which either of the following two conditions holds:
    - ///
  1. The memberElement of the Membership is included in redefined Features of another - /// Membership in memberships.
  2. One of the redefined Features of the - /// Membership is a directly redefinedFeature of an ownedFeature of this Type.
  3. - ///
For this purpose, the redefined Features of a Membership - /// whose memberElement is a Feature includes the memberElement and all Features directly or indirectly - /// redefined by the memberElement. + /// which either of the following two conditions holds:
  1. The memberElement of the Membership is + /// included in redefined Features of another Membership in memberships.
  2. One of the redefined + /// Features of the Membership is a directly redefinedFeature of an ownedFeature of this + /// Type.
For this purpose, the redefined Features of a Membership whose memberElement is a + /// Feature includes the memberElement and all Features directly or indirectly redefined by the + /// memberElement. ///
/// /// No documentation provided diff --git a/SysML2.NET.CodeGenerator.Tests/Expected/UML/Core/AutoGenPoco/Feature.cs b/SysML2.NET.CodeGenerator.Tests/Expected/UML/Core/AutoGenPoco/Feature.cs index b965864d8..0101b070b 100644 --- a/SysML2.NET.CodeGenerator.Tests/Expected/UML/Core/AutoGenPoco/Feature.cs +++ b/SysML2.NET.CodeGenerator.Tests/Expected/UML/Core/AutoGenPoco/Feature.cs @@ -42,19 +42,18 @@ namespace SysML2.NET.Core.POCO.Core.Features /// A Feature is a Type that classifies relations between multiple things (in the universe). The domain /// of the relation is the intersection of the featuringTypes of the Feature. (The domain of a Feature /// with no featuringTyps is implicitly the most general Type Base::Anything from the Kernel Semantic - /// Library.) The co-domain of the relation is the intersection of the types of the Feature. - /// In the simplest cases, the featuringTypes and types are Classifiers and the Feature - /// relates two things, one from the domain and one from the range. Examples include cars paired with - /// wheels, people paired with other people, and cars paired with numbers representing the car length. - /// Since Features are Types, their featuringTypes and types can be Features. In - /// this case, the Feature effectively classifies relations between relations, which can be interpreted - /// as the sequence of things related by the domain Feature concatenated with the sequence of things - /// related by the co-domain Feature. The values of a Feature for a given - /// instance of its domain are all the instances of its co-domain that are related to that domain - /// instance by the Feature. The values of a Feature with chainingFeatures are the same as values of the - /// last Feature in the chain, which can be found by starting with values of the first Feature, then - /// using those values as domain instances to obtain valus of the second Feature, and so on, to values - /// of the last Feature. + /// Library.) The co-domain of the relation is the intersection of the types of the Feature.In the + /// simplest cases, the featuringTypes and types are Classifiers and the Feature relates two things, one + /// from the domain and one from the range. Examples include cars paired with wheels, people paired with + /// other people, and cars paired with numbers representing the car length.Since Features are Types, + /// their featuringTypes and types can be Features. In this case, the Feature effectively classifies + /// relations between relations, which can be interpreted as the sequence of things related by the + /// domain Feature concatenated with the sequence of things related by the co-domain Feature.The values + /// of a Feature for a given instance of its domain are all the instances of its co-domain that are + /// related to that domain instance by the Feature. The values of a Feature with chainingFeatures are + /// the same as values of the last Feature in the chain, which can be found by starting with values of + /// the first Feature, then using those values as domain instances to obtain valus of the second + /// Feature, and so on, to values of the last Feature. /// [Class(xmiId: "_18_5_3_12e503d9_1533160651684_893483_42160", isAbstract: false, isFinalSpecialization: false, isActive: false)] [GeneratedCode("SysML2.NET", "latest")] @@ -356,11 +355,11 @@ public Feature() /// /// Whether all things that meet the classification conditions of this Type must be classified by the - /// Type. (A Type gives conditions that must be met by whatever it - /// classifies, but when isSufficient is false, things may meet those conditions but still not be - /// classified by the Type. For example, a Type Car that is not sufficient could require everything it - /// classifies to have four wheels, but not all four wheeled things would classify as cars. However, if - /// the Type Car were sufficient, it would classify all four-wheeled things.) + /// Type.(A Type gives conditions that must be met by whatever it classifies, but when isSufficient + /// is false, things may meet those conditions but still not be classified by the Type. For example, a + /// Type Car that is not sufficient could require everything it classifies to have four wheels, but not + /// all four wheeled things would classify as cars. However, if the Type Car were sufficient, it would + /// classify all four-wheeled things.) /// [Property(xmiId: "_18_5_3_b9102da_1564072709069_937523_30797", aggregation: AggregationKind.None, lowerValue: 1, upperValue: 1, isOrdered: false, isReadOnly: false, isDerived: false, isDerivedUnion: false, isUnique: true, defaultValue: "false")] [Implements(implementation: "IType.IsSufficient")] @@ -843,9 +842,8 @@ public Feature() public FeatureDirectionKind? DirectionOfExcluding(IFeature feature, List excluded) => this.ComputeDirectionOfExcludingOperation(feature, excluded); /// - /// If a Feature has no declaredName or declaredShortName , then its - /// effective name is given by the effective name of the Feature returned by the namingFeature() - /// operation, if any. + /// If a Feature has no declaredName or declaredShortName, then its effective name is given by the + /// effective name of the Feature returned by the namingFeature() operation, if any. /// /// /// The expected @@ -950,11 +948,10 @@ public Feature() /// /// A Feature is compatible with an otherType if it either directly or indirectly specializes the - /// otherType or if the otherType is also a Feature and all of the following are true. - ///
  1. Neither this Feature or the otherType have any - /// ownedFeatures.
  2. This Feature directly or indirectly redefines a - /// Feature that is also directly or indirectly redefined by the otherType.
  3. - ///
  4. This Feature can access the otherType.
+ /// otherType or if the otherType is also a Feature and all of the following are true.
  1. Neither + /// this Feature or the otherType have any ownedFeatures.
  2. This Feature directly or indirectly + /// redefines a Feature that is also directly or indirectly redefined by the otherType.
  3. This + /// Feature can access the otherType.
///
/// /// No documentation provided @@ -1103,8 +1100,8 @@ public Feature() /// an owningRelationship, then return the string constructed by appending to the path of it's /// owningRelationship the character / followed by the string representation of its position in the list /// of ownedRelatedElements of the owningRelationship (indexed starting at 1). Otherwise, return the - /// empty string. (Note that this operation is overridden for Relationships - /// to use owningRelatedElement when appropriate.) + /// empty string.(Note that this operation is overridden for Relationships to use owningRelatedElement + /// when appropriate.) /// /// /// The expected @@ -1149,13 +1146,12 @@ public Feature() /// /// Return a subset of memberships, removing those Memberships whose memberElements are Features and for - /// which either of the following two conditions holds:
    - ///
  1. The memberElement of the Membership is included in redefined Features of another - /// Membership in memberships.
  2. One of the redefined Features of the - /// Membership is a directly redefinedFeature of an ownedFeature of this Type.
  3. - ///
For this purpose, the redefined Features of a Membership - /// whose memberElement is a Feature includes the memberElement and all Features directly or indirectly - /// redefined by the memberElement. + /// which either of the following two conditions holds:
  1. The memberElement of the Membership is + /// included in redefined Features of another Membership in memberships.
  2. One of the redefined + /// Features of the Membership is a directly redefinedFeature of an ownedFeature of this + /// Type.
For this purpose, the redefined Features of a Membership whose memberElement is a + /// Feature includes the memberElement and all Features directly or indirectly redefined by the + /// memberElement. ///
/// /// No documentation provided @@ -1282,11 +1278,11 @@ public Feature() /// Return the Features used to determine the types of this Feature (other than this Feature itself). If /// this Feature is not conjugated, then the typingFeatures consist of all subsetted Features, except /// from CrossSubsetting, and the last chainingFeature (if any). If this Feature is conjugated, then the - /// typingFeatures are only its originalType (if the originalType is a Feature). - /// Note. CrossSubsetting is excluded from the determination of the type of a - /// Feature in order to avoid circularity in the construction of implied CrossSubsetting relationships. - /// The validateFeatureCrossFeatureType requires that the crossFeature of a Feature have the same type - /// as the Feature. + /// typingFeatures are only its originalType (if the originalType is a Feature).Note. + /// CrossSubsetting is excluded from the determination of the type of a Feature in order to avoid + /// circularity in the construction of implied CrossSubsetting relationships. The + /// validateFeatureCrossFeatureType requires that the crossFeature of a Feature have the same type as + /// the Feature. /// /// /// The expected collection of diff --git a/SysML2.NET.CodeGenerator.Tests/Expected/UML/Core/AutoGenPoco/FeatureTyping.cs b/SysML2.NET.CodeGenerator.Tests/Expected/UML/Core/AutoGenPoco/FeatureTyping.cs index 31c39f27c..f48990a26 100644 --- a/SysML2.NET.CodeGenerator.Tests/Expected/UML/Core/AutoGenPoco/FeatureTyping.cs +++ b/SysML2.NET.CodeGenerator.Tests/Expected/UML/Core/AutoGenPoco/FeatureTyping.cs @@ -443,8 +443,8 @@ List Root.Elements.IRelationship.Target /// an owningRelationship, then return the string constructed by appending to the path of it's /// owningRelationship the character / followed by the string representation of its position in the list /// of ownedRelatedElements of the owningRelationship (indexed starting at 1). Otherwise, return the - /// empty string. (Note that this operation is overridden for Relationships - /// to use owningRelatedElement when appropriate.) + /// empty string.(Note that this operation is overridden for Relationships to use owningRelatedElement + /// when appropriate.) /// /// /// The expected diff --git a/SysML2.NET.CodeGenerator.Tests/Expected/UML/Core/AutoGenPoco/Flow.cs b/SysML2.NET.CodeGenerator.Tests/Expected/UML/Core/AutoGenPoco/Flow.cs index fe7f78fa2..021408f50 100644 --- a/SysML2.NET.CodeGenerator.Tests/Expected/UML/Core/AutoGenPoco/Flow.cs +++ b/SysML2.NET.CodeGenerator.Tests/Expected/UML/Core/AutoGenPoco/Flow.cs @@ -416,11 +416,11 @@ public Flow() /// /// Whether all things that meet the classification conditions of this Type must be classified by the - /// Type. (A Type gives conditions that must be met by whatever it - /// classifies, but when isSufficient is false, things may meet those conditions but still not be - /// classified by the Type. For example, a Type Car that is not sufficient could require everything it - /// classifies to have four wheels, but not all four wheeled things would classify as cars. However, if - /// the Type Car were sufficient, it would classify all four-wheeled things.) + /// Type.(A Type gives conditions that must be met by whatever it classifies, but when isSufficient + /// is false, things may meet those conditions but still not be classified by the Type. For example, a + /// Type Car that is not sufficient could require everything it classifies to have four wheels, but not + /// all four wheeled things would classify as cars. However, if the Type Car were sufficient, it would + /// classify all four-wheeled things.) /// [Property(xmiId: "_18_5_3_b9102da_1564072709069_937523_30797", aggregation: AggregationKind.None, lowerValue: 1, upperValue: 1, isOrdered: false, isReadOnly: false, isDerived: false, isDerivedUnion: false, isUnique: true, defaultValue: "false")] [Implements(implementation: "IType.IsSufficient")] @@ -1029,9 +1029,8 @@ List Root.Elements.IRelationship.Target public FeatureDirectionKind? DirectionOfExcluding(IFeature feature, List excluded) => this.ComputeDirectionOfExcludingOperation(feature, excluded); /// - /// If a Feature has no declaredName or declaredShortName , then its - /// effective name is given by the effective name of the Feature returned by the namingFeature() - /// operation, if any. + /// If a Feature has no declaredName or declaredShortName, then its effective name is given by the + /// effective name of the Feature returned by the namingFeature() operation, if any. /// /// /// The expected @@ -1136,11 +1135,10 @@ List Root.Elements.IRelationship.Target /// /// A Feature is compatible with an otherType if it either directly or indirectly specializes the - /// otherType or if the otherType is also a Feature and all of the following are true. - ///
  1. Neither this Feature or the otherType have any - /// ownedFeatures.
  2. This Feature directly or indirectly redefines a - /// Feature that is also directly or indirectly redefined by the otherType.
  3. - ///
  4. This Feature can access the otherType.
+ /// otherType or if the otherType is also a Feature and all of the following are true.
  1. Neither + /// this Feature or the otherType have any ownedFeatures.
  2. This Feature directly or indirectly + /// redefines a Feature that is also directly or indirectly redefined by the otherType.
  3. This + /// Feature can access the otherType.
///
/// /// No documentation provided @@ -1298,8 +1296,8 @@ List Root.Elements.IRelationship.Target /// an owningRelationship, then return the string constructed by appending to the path of it's /// owningRelationship the character / followed by the string representation of its position in the list /// of ownedRelatedElements of the owningRelationship (indexed starting at 1). Otherwise, return the - /// empty string. (Note that this operation is overridden for Relationships - /// to use owningRelatedElement when appropriate.) + /// empty string.(Note that this operation is overridden for Relationships to use owningRelatedElement + /// when appropriate.) /// /// /// The expected @@ -1355,13 +1353,12 @@ List Root.Elements.IRelationship.Target /// /// Return a subset of memberships, removing those Memberships whose memberElements are Features and for - /// which either of the following two conditions holds:
    - ///
  1. The memberElement of the Membership is included in redefined Features of another - /// Membership in memberships.
  2. One of the redefined Features of the - /// Membership is a directly redefinedFeature of an ownedFeature of this Type.
  3. - ///
For this purpose, the redefined Features of a Membership - /// whose memberElement is a Feature includes the memberElement and all Features directly or indirectly - /// redefined by the memberElement. + /// which either of the following two conditions holds:
  1. The memberElement of the Membership is + /// included in redefined Features of another Membership in memberships.
  2. One of the redefined + /// Features of the Membership is a directly redefinedFeature of an ownedFeature of this + /// Type.
For this purpose, the redefined Features of a Membership whose memberElement is a + /// Feature includes the memberElement and all Features directly or indirectly redefined by the + /// memberElement. ///
/// /// No documentation provided @@ -1488,11 +1485,11 @@ List Root.Elements.IRelationship.Target /// Return the Features used to determine the types of this Feature (other than this Feature itself). If /// this Feature is not conjugated, then the typingFeatures consist of all subsetted Features, except /// from CrossSubsetting, and the last chainingFeature (if any). If this Feature is conjugated, then the - /// typingFeatures are only its originalType (if the originalType is a Feature). - /// Note. CrossSubsetting is excluded from the determination of the type of a - /// Feature in order to avoid circularity in the construction of implied CrossSubsetting relationships. - /// The validateFeatureCrossFeatureType requires that the crossFeature of a Feature have the same type - /// as the Feature. + /// typingFeatures are only its originalType (if the originalType is a Feature).Note. + /// CrossSubsetting is excluded from the determination of the type of a Feature in order to avoid + /// circularity in the construction of implied CrossSubsetting relationships. The + /// validateFeatureCrossFeatureType requires that the crossFeature of a Feature have the same type as + /// the Feature. /// /// /// The expected collection of diff --git a/SysML2.NET.CodeGenerator.Tests/Expected/UML/Core/AutoGenPoco/FramedConcernMembership.cs b/SysML2.NET.CodeGenerator.Tests/Expected/UML/Core/AutoGenPoco/FramedConcernMembership.cs index 3c053af75..945af9918 100644 --- a/SysML2.NET.CodeGenerator.Tests/Expected/UML/Core/AutoGenPoco/FramedConcernMembership.cs +++ b/SysML2.NET.CodeGenerator.Tests/Expected/UML/Core/AutoGenPoco/FramedConcernMembership.cs @@ -572,8 +572,8 @@ List Root.Elements.IRelationship.Target /// an owningRelationship, then return the string constructed by appending to the path of it's /// owningRelationship the character / followed by the string representation of its position in the list /// of ownedRelatedElements of the owningRelationship (indexed starting at 1). Otherwise, return the - /// empty string. (Note that this operation is overridden for Relationships - /// to use owningRelatedElement when appropriate.) + /// empty string.(Note that this operation is overridden for Relationships to use owningRelatedElement + /// when appropriate.) /// /// /// The expected diff --git a/SysML2.NET.CodeGenerator.Tests/Expected/UML/Core/AutoGenPoco/IDependency.cs b/SysML2.NET.CodeGenerator.Tests/Expected/UML/Core/AutoGenPoco/IDependency.cs index 3ce8f523a..b553f43bb 100644 --- a/SysML2.NET.CodeGenerator.Tests/Expected/UML/Core/AutoGenPoco/IDependency.cs +++ b/SysML2.NET.CodeGenerator.Tests/Expected/UML/Core/AutoGenPoco/IDependency.cs @@ -36,9 +36,8 @@ namespace SysML2.NET.Core.POCO.Root.Dependencies /// /// A Dependency is a Relationship that indicates that one or more client Elements require one more /// supplier Elements for their complete specification. In general, this means that a change to one of - /// the supplier Elements may necessitate a change to, or re-specification of, the client Elements. - /// Note that a Dependency is entirely a model-level Relationship, without - /// instance-level semantics. + /// the supplier Elements may necessitate a change to, or re-specification of, the client Elements.Note + /// that a Dependency is entirely a model-level Relationship, without instance-level semantics. /// [Class(xmiId: "_19_0_2_12e503d9_1594006219028_628649_74", isAbstract: false, isFinalSpecialization: false, isActive: false)] [GeneratedCode("SysML2.NET", "latest")] diff --git a/SysML2.NET.CodeGenerator.Tests/Expected/UML/Core/AutoGenPoco/IElement.cs b/SysML2.NET.CodeGenerator.Tests/Expected/UML/Core/AutoGenPoco/IElement.cs index 2c9fe56c7..8d565ec29 100644 --- a/SysML2.NET.CodeGenerator.Tests/Expected/UML/Core/AutoGenPoco/IElement.cs +++ b/SysML2.NET.CodeGenerator.Tests/Expected/UML/Core/AutoGenPoco/IElement.cs @@ -226,8 +226,8 @@ public partial interface IElement /// an owningRelationship, then return the string constructed by appending to the path of it's /// owningRelationship the character / followed by the string representation of its position in the list /// of ownedRelatedElements of the owningRelationship (indexed starting at 1). Otherwise, return the - /// empty string. (Note that this operation is overridden for Relationships - /// to use owningRelatedElement when appropriate.) + /// empty string.(Note that this operation is overridden for Relationships to use owningRelatedElement + /// when appropriate.) /// /// /// The expected diff --git a/SysML2.NET.CodeGenerator.Tests/Expected/UML/Core/AutoGenPoco/IFeature.cs b/SysML2.NET.CodeGenerator.Tests/Expected/UML/Core/AutoGenPoco/IFeature.cs index 15eb0b30a..ad2b54d9c 100644 --- a/SysML2.NET.CodeGenerator.Tests/Expected/UML/Core/AutoGenPoco/IFeature.cs +++ b/SysML2.NET.CodeGenerator.Tests/Expected/UML/Core/AutoGenPoco/IFeature.cs @@ -40,19 +40,18 @@ namespace SysML2.NET.Core.POCO.Core.Features /// A Feature is a Type that classifies relations between multiple things (in the universe). The domain /// of the relation is the intersection of the featuringTypes of the Feature. (The domain of a Feature /// with no featuringTyps is implicitly the most general Type Base::Anything from the Kernel Semantic - /// Library.) The co-domain of the relation is the intersection of the types of the Feature. - /// In the simplest cases, the featuringTypes and types are Classifiers and the Feature - /// relates two things, one from the domain and one from the range. Examples include cars paired with - /// wheels, people paired with other people, and cars paired with numbers representing the car length. - /// Since Features are Types, their featuringTypes and types can be Features. In - /// this case, the Feature effectively classifies relations between relations, which can be interpreted - /// as the sequence of things related by the domain Feature concatenated with the sequence of things - /// related by the co-domain Feature. The values of a Feature for a given - /// instance of its domain are all the instances of its co-domain that are related to that domain - /// instance by the Feature. The values of a Feature with chainingFeatures are the same as values of the - /// last Feature in the chain, which can be found by starting with values of the first Feature, then - /// using those values as domain instances to obtain valus of the second Feature, and so on, to values - /// of the last Feature. + /// Library.) The co-domain of the relation is the intersection of the types of the Feature.In the + /// simplest cases, the featuringTypes and types are Classifiers and the Feature relates two things, one + /// from the domain and one from the range. Examples include cars paired with wheels, people paired with + /// other people, and cars paired with numbers representing the car length.Since Features are Types, + /// their featuringTypes and types can be Features. In this case, the Feature effectively classifies + /// relations between relations, which can be interpreted as the sequence of things related by the + /// domain Feature concatenated with the sequence of things related by the co-domain Feature.The values + /// of a Feature for a given instance of its domain are all the instances of its co-domain that are + /// related to that domain instance by the Feature. The values of a Feature with chainingFeatures are + /// the same as values of the last Feature in the chain, which can be found by starting with values of + /// the first Feature, then using those values as domain instances to obtain valus of the second + /// Feature, and so on, to values of the last Feature. /// [Class(xmiId: "_18_5_3_12e503d9_1533160651684_893483_42160", isAbstract: false, isFinalSpecialization: false, isActive: false)] [GeneratedCode("SysML2.NET", "latest")] @@ -284,9 +283,8 @@ public partial interface IFeature : IType new string EffectiveShortName(); /// - /// If a Feature has no declaredName or declaredShortName , then its - /// effective name is given by the effective name of the Feature returned by the namingFeature() - /// operation, if any. + /// If a Feature has no declaredName or declaredShortName, then its effective name is given by the + /// effective name of the Feature returned by the namingFeature() operation, if any. /// /// /// The expected @@ -352,11 +350,10 @@ public partial interface IFeature : IType /// /// A Feature is compatible with an otherType if it either directly or indirectly specializes the - /// otherType or if the otherType is also a Feature and all of the following are true. - ///
  1. Neither this Feature or the otherType have any - /// ownedFeatures.
  2. This Feature directly or indirectly redefines a - /// Feature that is also directly or indirectly redefined by the otherType.
  3. - ///
  4. This Feature can access the otherType.
+ /// otherType or if the otherType is also a Feature and all of the following are true.
  1. Neither + /// this Feature or the otherType have any ownedFeatures.
  2. This Feature directly or indirectly + /// redefines a Feature that is also directly or indirectly redefined by the otherType.
  3. This + /// Feature can access the otherType.
///
/// /// No documentation provided @@ -370,11 +367,11 @@ public partial interface IFeature : IType /// Return the Features used to determine the types of this Feature (other than this Feature itself). If /// this Feature is not conjugated, then the typingFeatures consist of all subsetted Features, except /// from CrossSubsetting, and the last chainingFeature (if any). If this Feature is conjugated, then the - /// typingFeatures are only its originalType (if the originalType is a Feature). - /// Note. CrossSubsetting is excluded from the determination of the type of a - /// Feature in order to avoid circularity in the construction of implied CrossSubsetting relationships. - /// The validateFeatureCrossFeatureType requires that the crossFeature of a Feature have the same type - /// as the Feature. + /// typingFeatures are only its originalType (if the originalType is a Feature).Note. + /// CrossSubsetting is excluded from the determination of the type of a Feature in order to avoid + /// circularity in the construction of implied CrossSubsetting relationships. The + /// validateFeatureCrossFeatureType requires that the crossFeature of a Feature have the same type as + /// the Feature. /// /// /// The expected collection of diff --git a/SysML2.NET.CodeGenerator.Tests/Expected/UML/Core/AutoGenPoco/IMembership.cs b/SysML2.NET.CodeGenerator.Tests/Expected/UML/Core/AutoGenPoco/IMembership.cs index c0cc31af1..38535d68d 100644 --- a/SysML2.NET.CodeGenerator.Tests/Expected/UML/Core/AutoGenPoco/IMembership.cs +++ b/SysML2.NET.CodeGenerator.Tests/Expected/UML/Core/AutoGenPoco/IMembership.cs @@ -37,11 +37,10 @@ namespace SysML2.NET.Core.POCO.Root.Namespaces /// A Membership is a Relationship between a Namespace and an Element that indicates the Element is a /// member of (i.e., is contained in) the Namespace. Any memberNames specify how the memberElement is /// identified in the Namespace and the visibility specifies whether or not the memberElement is - /// publicly visible from outside the Namespace. If a Membership is an - /// OwningMembership, then it owns its memberElement, which becomes an ownedMember of the - /// membershipOwningNamespace. Otherwise, the memberNames of a Membership are effectively aliases within - /// the membershipOwningNamespace for an Element with a separate OwningMembership in the same or a - /// different Namespace. + /// publicly visible from outside the Namespace.If a Membership is an OwningMembership, then it owns its + /// memberElement, which becomes an ownedMember of the membershipOwningNamespace. Otherwise, the + /// memberNames of a Membership are effectively aliases within the membershipOwningNamespace for an + /// Element with a separate OwningMembership in the same or a different Namespace. /// [Class(xmiId: "_18_5_3_12e503d9_1533160651680_888716_42152", isAbstract: false, isFinalSpecialization: false, isActive: false)] [GeneratedCode("SysML2.NET", "latest")] diff --git a/SysML2.NET.CodeGenerator.Tests/Expected/UML/Core/AutoGenPoco/IReferenceSubsetting.cs b/SysML2.NET.CodeGenerator.Tests/Expected/UML/Core/AutoGenPoco/IReferenceSubsetting.cs index 5cb3dcc90..704ccb823 100644 --- a/SysML2.NET.CodeGenerator.Tests/Expected/UML/Core/AutoGenPoco/IReferenceSubsetting.cs +++ b/SysML2.NET.CodeGenerator.Tests/Expected/UML/Core/AutoGenPoco/IReferenceSubsetting.cs @@ -39,8 +39,8 @@ namespace SysML2.NET.Core.POCO.Core.Features /// distinguished from other Features subsetted by the referencingFeature. ReferenceSubsetting has the /// same semantics as Subsetting, but the referencedFeature may have a special purpose relative to the /// referencingFeature. For instance, ReferenceSubsetting is used to identify the relatedFeatures of a - /// Connector. ReferenceSubsetting is always an ownedRelationship of its - /// referencingFeature. A Feature can have at most one ownedReferenceSubsetting. + /// Connector.ReferenceSubsetting is always an ownedRelationship of its referencingFeature. A Feature + /// can have at most one ownedReferenceSubsetting. /// [Class(xmiId: "_19_0_4_12e503d9_1661554793960_500657_60", isAbstract: false, isFinalSpecialization: false, isActive: false)] [GeneratedCode("SysML2.NET", "latest")] diff --git a/SysML2.NET.CodeGenerator.Tests/Expected/UML/Core/AutoGenPoco/IRelationship.cs b/SysML2.NET.CodeGenerator.Tests/Expected/UML/Core/AutoGenPoco/IRelationship.cs index a624afbca..32a418539 100644 --- a/SysML2.NET.CodeGenerator.Tests/Expected/UML/Core/AutoGenPoco/IRelationship.cs +++ b/SysML2.NET.CodeGenerator.Tests/Expected/UML/Core/AutoGenPoco/IRelationship.cs @@ -37,14 +37,14 @@ namespace SysML2.NET.Core.POCO.Root.Elements /// in which case those ownedRelatedElements will be deleted from a model if their owningRelationship /// is. A Relationship may also be owned by another Element, in which case the ownedRelatedElements of /// the Relationship are also considered to be transitively owned by the owningRelatedElement of the - /// Relationship. The relatedElements of a Relationship are divided into source - /// and target Elements. The Relationship is considered to be directed from the source to the target - /// Elements. An undirected Relationship may have either all source or all target Elements. - /// A "relationship Element" in the abstract syntax is generically any Element that - /// is an instance of either Relationship or a direct or indirect specialization of Relationship. Any - /// other kind of Element is a "non-relationship Element". It is a convention of that - /// non-relationship Elements are only related via reified relationship Elements. Any meta-associations - /// directly between non-relationship Elements must be derived from underlying reified Relationship. + /// Relationship.The relatedElements of a Relationship are divided into source and target Elements. The + /// Relationship is considered to be directed from the source to the target Elements. An undirected + /// Relationship may have either all source or all target Elements.A "relationship Element" in + /// the abstract syntax is generically any Element that is an instance of either Relationship or a + /// direct or indirect specialization of Relationship. Any other kind of Element is a + /// "non-relationship Element". It is a convention of that non-relationship Elements are only + /// related via reified relationship Elements. Any meta-associations directly between non-relationship + /// Elements must be derived from underlying reified Relationship. /// [Class(xmiId: "_18_5_3_12e503d9_1533160651700_869737_42192", isAbstract: true, isFinalSpecialization: false, isActive: false)] [GeneratedCode("SysML2.NET", "latest")] diff --git a/SysML2.NET.CodeGenerator.Tests/Expected/UML/Core/AutoGenPoco/ITextualRepresentation.cs b/SysML2.NET.CodeGenerator.Tests/Expected/UML/Core/AutoGenPoco/ITextualRepresentation.cs index 1d1315ad9..5b29cb577 100644 --- a/SysML2.NET.CodeGenerator.Tests/Expected/UML/Core/AutoGenPoco/ITextualRepresentation.cs +++ b/SysML2.NET.CodeGenerator.Tests/Expected/UML/Core/AutoGenPoco/ITextualRepresentation.cs @@ -37,30 +37,26 @@ namespace SysML2.NET.Core.POCO.Root.Annotations /// given language. The representedElement must be the owner of the TextualRepresentation. The named /// language can be a natural language, in which case the body is an informal representation, or an /// artificial language, in which case the body is expected to be a formal, machine-parsable - /// representation. If the named language of a TextualRepresentation is - /// machine-parsable, then the body text should be legal input text as defined for that language. The - /// interpretation of the named language string shall be case insensitive. The following language names - /// are defined to correspond to the given standard languages: - /// - /// - /// - /// - ///
kerml Kernel Modeling Language
ocl Object Constraint Language
alfAction Language for fUML
Other - /// specifications may define specific language strings, other than those shown above, to be used to - /// indicate the use of languages from those specifications in KerML TextualRepresentation. - /// If the language of a TextualRepresentation is "kerml", then the body text shall - /// be a legal representation of the representedElement in the KerML textual concrete syntax. A - /// conforming tool can use such a TextualRepresentation Annotation to record the original KerML - /// concrete syntax text from which an Element was parsed. In this case, it is a tool responsibility to - /// ensure that the body of the TextualRepresentation remains correct (or the Annotation is removed) if - /// the annotated Element changes other than by re-parsing the body text. An - /// Element with a TextualRepresentation in a language other than KerML is essentially a semantically - /// "opaque" Element specified in the other language. However, a conforming KerML tool may - /// interpret such an element consistently with the specification of the named language. + /// representation.If the named language of a TextualRepresentation is machine-parsable, then the body + /// text should be legal input text as defined for that language. The interpretation of the named + /// language string shall be case insensitive. The following language names are defined to correspond to + /// the given standard languages:
kerml Kernel Modeling Language
ocl Object Constraint + /// Language
alf Action Language for fUML
Other specifications may + /// define specific language strings, other than those shown above, to be used to indicate the use of + /// languages from those specifications in KerML TextualRepresentation.If the language of a + /// TextualRepresentation is "kerml", then the body text shall be a legal representation of + /// the representedElement in the KerML textual concrete syntax. A conforming tool can use such a + /// TextualRepresentation Annotation to record the original KerML concrete syntax text from which an + /// Element was parsed. In this case, it is a tool responsibility to ensure that the body of the + /// TextualRepresentation remains correct (or the Annotation is removed) if the annotated Element + /// changes other than by re-parsing the body text.An Element with a TextualRepresentation in a language + /// other than KerML is essentially a semantically "opaque" Element specified in the other + /// language. However, a conforming KerML tool may interpret such an element consistently with the + /// specification of the named language. /// [Class(xmiId: "_19_0_2_12e503d9_1594152214531_455349_2448", isAbstract: false, isFinalSpecialization: false, isActive: false)] [GeneratedCode("SysML2.NET", "latest")] diff --git a/SysML2.NET.CodeGenerator.Tests/Expected/UML/Core/AutoGenPoco/IUsage.cs b/SysML2.NET.CodeGenerator.Tests/Expected/UML/Core/AutoGenPoco/IUsage.cs index 7682f5267..a31acadb7 100644 --- a/SysML2.NET.CodeGenerator.Tests/Expected/UML/Core/AutoGenPoco/IUsage.cs +++ b/SysML2.NET.CodeGenerator.Tests/Expected/UML/Core/AutoGenPoco/IUsage.cs @@ -60,14 +60,13 @@ namespace SysML2.NET.Core.POCO.Systems.DefinitionAndUsage using SysML2.NET.Decorators; /// - /// A Usage is a usage of a Definition. A Usage may have nestedUsages that model - /// features that apply in the context of the owningUsage. A Usage may also have Definitions nested in - /// it, but this has no semantic significance, other than the nested scoping resulting from the Usage - /// being considered as a Namespace for any nested Definitions. However, if a - /// Usage has isVariation = true, then it represents a variation point Usage. In this case, all of its - /// members must be variant Usages, related to the Usage by VariantMembership Relationships. Rather than - /// being features of the Usage, variant Usages model different concrete alternatives that can be chosen - /// to fill in for the variation point Usage. + /// A Usage is a usage of a Definition.A Usage may have nestedUsages that model features that apply in + /// the context of the owningUsage. A Usage may also have Definitions nested in it, but this has no + /// semantic significance, other than the nested scoping resulting from the Usage being considered as a + /// Namespace for any nested Definitions.However, if a Usage has isVariation = true, then it represents + /// a variation point Usage. In this case, all of its members must be variant Usages, related to the + /// Usage by VariantMembership Relationships. Rather than being features of the Usage, variant Usages + /// model different concrete alternatives that can be chosen to fill in for the variation point Usage. /// [Class(xmiId: "_18_5_3_12e503d9_1565469997820_598571_19982", isAbstract: false, isFinalSpecialization: false, isActive: false)] [GeneratedCode("SysML2.NET", "latest")] @@ -106,9 +105,9 @@ public partial interface IUsage : IFeature /// Whether this Usage may be time varying (that is, whether it is featured by the snapshots of its /// owningType, rather than being featured by the owningType itself). However, if isConstant is also /// true, then the value of the Usage is nevertheless constant over the entire duration of an instance - /// of its owningType (that is, it has the same value on all snapshots). The - /// property mayTimeVary redefines the KerML property Feature::isVariable, making it derived. The - /// property isConstant is inherited from Feature. + /// of its owningType (that is, it has the same value on all snapshots).The property mayTimeVary + /// redefines the KerML property Feature::isVariable, making it derived. The property isConstant is + /// inherited from Feature. /// [Property(xmiId: "_2022x_2_12e503d9_1737227200362_771035_69", aggregation: AggregationKind.None, lowerValue: 1, upperValue: 1, isOrdered: false, isReadOnly: false, isDerived: true, isDerivedUnion: false, isUnique: true, defaultValue: null)] [RedefinedProperty(propertyName: "_2022x_2_12e503d9_1725998273002_23711_212")] @@ -165,8 +164,8 @@ public partial interface IUsage : IFeature /// /// The ConnectorAsUsages that are nestedUsages of this Usage. Note that this list includes - /// BindingConnectorAsUsages, SuccessionAsUsages, and FlowConnectionUsages because these are - /// ConnectorAsUsages even though they are not ConnectionUsages. + /// BindingConnectorAsUsages, SuccessionAsUsages, and FlowUsages because these are ConnectorAsUsages + /// even though they are not ConnectionUsages. /// [Property(xmiId: "_19_0_2_12e503d9_1591479754895_422988_1242", aggregation: AggregationKind.None, lowerValue: 0, upperValue: int.MaxValue, isOrdered: true, isReadOnly: false, isDerived: true, isDerivedUnion: false, isUnique: true, defaultValue: null)] [SubsettedProperty(propertyName: "_18_5_3_12e503d9_1565472757327_162097_21259")] @@ -208,7 +207,7 @@ public partial interface IUsage : IFeature List nestedItem { get; } /// - /// The MetadataUsages that are nestedUsages of this of this Usage. + /// The MetadataUsages that are ownedMembers of this of this Usage. /// [Property(xmiId: "_19_0_4_12e503d9_1661488589862_120785_2970", aggregation: AggregationKind.None, lowerValue: 0, upperValue: int.MaxValue, isOrdered: true, isReadOnly: false, isDerived: true, isDerivedUnion: false, isUnique: true, defaultValue: null)] [SubsettedProperty(propertyName: "_19_0_2_12e503d9_1591482421103_284620_2978")] diff --git a/SysML2.NET.CodeGenerator.Tests/Expected/UML/Core/AutoGenPoco/LiteralInteger.cs b/SysML2.NET.CodeGenerator.Tests/Expected/UML/Core/AutoGenPoco/LiteralInteger.cs index ce10683e4..d7a75a436 100644 --- a/SysML2.NET.CodeGenerator.Tests/Expected/UML/Core/AutoGenPoco/LiteralInteger.cs +++ b/SysML2.NET.CodeGenerator.Tests/Expected/UML/Core/AutoGenPoco/LiteralInteger.cs @@ -371,11 +371,11 @@ public LiteralInteger() /// /// Whether all things that meet the classification conditions of this Type must be classified by the - /// Type. (A Type gives conditions that must be met by whatever it - /// classifies, but when isSufficient is false, things may meet those conditions but still not be - /// classified by the Type. For example, a Type Car that is not sufficient could require everything it - /// classifies to have four wheels, but not all four wheeled things would classify as cars. However, if - /// the Type Car were sufficient, it would classify all four-wheeled things.) + /// Type.(A Type gives conditions that must be met by whatever it classifies, but when isSufficient + /// is false, things may meet those conditions but still not be classified by the Type. For example, a + /// Type Car that is not sufficient could require everything it classifies to have four wheels, but not + /// all four wheeled things would classify as cars. However, if the Type Car were sufficient, it would + /// classify all four-wheeled things.) /// [Property(xmiId: "_18_5_3_b9102da_1564072709069_937523_30797", aggregation: AggregationKind.None, lowerValue: 1, upperValue: 1, isOrdered: false, isReadOnly: false, isDerived: false, isDerivedUnion: false, isUnique: true, defaultValue: "false")] [Implements(implementation: "IType.IsSufficient")] @@ -897,9 +897,8 @@ public LiteralInteger() public FeatureDirectionKind? DirectionOfExcluding(IFeature feature, List excluded) => this.ComputeDirectionOfExcludingOperation(feature, excluded); /// - /// If a Feature has no declaredName or declaredShortName , then its - /// effective name is given by the effective name of the Feature returned by the namingFeature() - /// operation, if any. + /// If a Feature has no declaredName or declaredShortName, then its effective name is given by the + /// effective name of the Feature returned by the namingFeature() operation, if any. /// /// /// The expected @@ -1029,11 +1028,10 @@ public LiteralInteger() /// /// A Feature is compatible with an otherType if it either directly or indirectly specializes the - /// otherType or if the otherType is also a Feature and all of the following are true. - ///
  1. Neither this Feature or the otherType have any - /// ownedFeatures.
  2. This Feature directly or indirectly redefines a - /// Feature that is also directly or indirectly redefined by the otherType.
  3. - ///
  4. This Feature can access the otherType.
+ /// otherType or if the otherType is also a Feature and all of the following are true.
  1. Neither + /// this Feature or the otherType have any ownedFeatures.
  2. This Feature directly or indirectly + /// redefines a Feature that is also directly or indirectly redefined by the otherType.
  3. This + /// Feature can access the otherType.
///
/// /// No documentation provided @@ -1133,11 +1131,11 @@ public LiteralInteger() /// Return whether this Expression is model-level evaluable. The visited parameter is used to track /// possible circular Feature references made from FeatureReferenceExpressions (see the redefinition of /// this operation for FeatureReferenceExpression). Such circular references are not allowed in - /// model-level evaluable expressions. An Expression that is not otherwise - /// specialized is model-level evaluable if it has no (non-implied) ownedSpecializations and all its - /// ownedFeatures are either in parameters, the result parameter or a result Expression owned via a - /// ResultExpressionMembership. The parameters must not have any ownedFeatures or a FeatureValue, and - /// the result Expression must be model-level evaluable. + /// model-level evaluable expressions.An Expression that is not otherwise specialized is model-level + /// evaluable if it has no (non-implied) ownedSpecializations and all its ownedFeatures are either in + /// parameters, the result parameter or a result Expression owned via a ResultExpressionMembership. The + /// parameters must not have any ownedFeatures or a FeatureValue, and the result Expression must be + /// model-level evaluable. /// /// /// No documentation provided @@ -1211,8 +1209,8 @@ public LiteralInteger() /// an owningRelationship, then return the string constructed by appending to the path of it's /// owningRelationship the character / followed by the string representation of its position in the list /// of ownedRelatedElements of the owningRelationship (indexed starting at 1). Otherwise, return the - /// empty string. (Note that this operation is overridden for Relationships - /// to use owningRelatedElement when appropriate.) + /// empty string.(Note that this operation is overridden for Relationships to use owningRelatedElement + /// when appropriate.) /// /// /// The expected @@ -1257,13 +1255,12 @@ public LiteralInteger() /// /// Return a subset of memberships, removing those Memberships whose memberElements are Features and for - /// which either of the following two conditions holds:
    - ///
  1. The memberElement of the Membership is included in redefined Features of another - /// Membership in memberships.
  2. One of the redefined Features of the - /// Membership is a directly redefinedFeature of an ownedFeature of this Type.
  3. - ///
For this purpose, the redefined Features of a Membership - /// whose memberElement is a Feature includes the memberElement and all Features directly or indirectly - /// redefined by the memberElement. + /// which either of the following two conditions holds:
  1. The memberElement of the Membership is + /// included in redefined Features of another Membership in memberships.
  2. One of the redefined + /// Features of the Membership is a directly redefinedFeature of an ownedFeature of this + /// Type.
For this purpose, the redefined Features of a Membership whose memberElement is a + /// Feature includes the memberElement and all Features directly or indirectly redefined by the + /// memberElement. ///
/// /// No documentation provided @@ -1390,11 +1387,11 @@ public LiteralInteger() /// Return the Features used to determine the types of this Feature (other than this Feature itself). If /// this Feature is not conjugated, then the typingFeatures consist of all subsetted Features, except /// from CrossSubsetting, and the last chainingFeature (if any). If this Feature is conjugated, then the - /// typingFeatures are only its originalType (if the originalType is a Feature). - /// Note. CrossSubsetting is excluded from the determination of the type of a - /// Feature in order to avoid circularity in the construction of implied CrossSubsetting relationships. - /// The validateFeatureCrossFeatureType requires that the crossFeature of a Feature have the same type - /// as the Feature. + /// typingFeatures are only its originalType (if the originalType is a Feature).Note. + /// CrossSubsetting is excluded from the determination of the type of a Feature in order to avoid + /// circularity in the construction of implied CrossSubsetting relationships. The + /// validateFeatureCrossFeatureType requires that the crossFeature of a Feature have the same type as + /// the Feature. /// /// /// The expected collection of diff --git a/SysML2.NET.CodeGenerator.Tests/Expected/UML/Core/AutoGenPoco/LiteralRational.cs b/SysML2.NET.CodeGenerator.Tests/Expected/UML/Core/AutoGenPoco/LiteralRational.cs index ebace2d06..b5ede0c16 100644 --- a/SysML2.NET.CodeGenerator.Tests/Expected/UML/Core/AutoGenPoco/LiteralRational.cs +++ b/SysML2.NET.CodeGenerator.Tests/Expected/UML/Core/AutoGenPoco/LiteralRational.cs @@ -371,11 +371,11 @@ public LiteralRational() /// /// Whether all things that meet the classification conditions of this Type must be classified by the - /// Type. (A Type gives conditions that must be met by whatever it - /// classifies, but when isSufficient is false, things may meet those conditions but still not be - /// classified by the Type. For example, a Type Car that is not sufficient could require everything it - /// classifies to have four wheels, but not all four wheeled things would classify as cars. However, if - /// the Type Car were sufficient, it would classify all four-wheeled things.) + /// Type.(A Type gives conditions that must be met by whatever it classifies, but when isSufficient + /// is false, things may meet those conditions but still not be classified by the Type. For example, a + /// Type Car that is not sufficient could require everything it classifies to have four wheels, but not + /// all four wheeled things would classify as cars. However, if the Type Car were sufficient, it would + /// classify all four-wheeled things.) /// [Property(xmiId: "_18_5_3_b9102da_1564072709069_937523_30797", aggregation: AggregationKind.None, lowerValue: 1, upperValue: 1, isOrdered: false, isReadOnly: false, isDerived: false, isDerivedUnion: false, isUnique: true, defaultValue: "false")] [Implements(implementation: "IType.IsSufficient")] @@ -897,9 +897,8 @@ public LiteralRational() public FeatureDirectionKind? DirectionOfExcluding(IFeature feature, List excluded) => this.ComputeDirectionOfExcludingOperation(feature, excluded); /// - /// If a Feature has no declaredName or declaredShortName , then its - /// effective name is given by the effective name of the Feature returned by the namingFeature() - /// operation, if any. + /// If a Feature has no declaredName or declaredShortName, then its effective name is given by the + /// effective name of the Feature returned by the namingFeature() operation, if any. /// /// /// The expected @@ -1029,11 +1028,10 @@ public LiteralRational() /// /// A Feature is compatible with an otherType if it either directly or indirectly specializes the - /// otherType or if the otherType is also a Feature and all of the following are true. - ///
  1. Neither this Feature or the otherType have any - /// ownedFeatures.
  2. This Feature directly or indirectly redefines a - /// Feature that is also directly or indirectly redefined by the otherType.
  3. - ///
  4. This Feature can access the otherType.
+ /// otherType or if the otherType is also a Feature and all of the following are true.
  1. Neither + /// this Feature or the otherType have any ownedFeatures.
  2. This Feature directly or indirectly + /// redefines a Feature that is also directly or indirectly redefined by the otherType.
  3. This + /// Feature can access the otherType.
///
/// /// No documentation provided @@ -1133,11 +1131,11 @@ public LiteralRational() /// Return whether this Expression is model-level evaluable. The visited parameter is used to track /// possible circular Feature references made from FeatureReferenceExpressions (see the redefinition of /// this operation for FeatureReferenceExpression). Such circular references are not allowed in - /// model-level evaluable expressions. An Expression that is not otherwise - /// specialized is model-level evaluable if it has no (non-implied) ownedSpecializations and all its - /// ownedFeatures are either in parameters, the result parameter or a result Expression owned via a - /// ResultExpressionMembership. The parameters must not have any ownedFeatures or a FeatureValue, and - /// the result Expression must be model-level evaluable. + /// model-level evaluable expressions.An Expression that is not otherwise specialized is model-level + /// evaluable if it has no (non-implied) ownedSpecializations and all its ownedFeatures are either in + /// parameters, the result parameter or a result Expression owned via a ResultExpressionMembership. The + /// parameters must not have any ownedFeatures or a FeatureValue, and the result Expression must be + /// model-level evaluable. /// /// /// No documentation provided @@ -1211,8 +1209,8 @@ public LiteralRational() /// an owningRelationship, then return the string constructed by appending to the path of it's /// owningRelationship the character / followed by the string representation of its position in the list /// of ownedRelatedElements of the owningRelationship (indexed starting at 1). Otherwise, return the - /// empty string. (Note that this operation is overridden for Relationships - /// to use owningRelatedElement when appropriate.) + /// empty string.(Note that this operation is overridden for Relationships to use owningRelatedElement + /// when appropriate.) /// /// /// The expected @@ -1257,13 +1255,12 @@ public LiteralRational() /// /// Return a subset of memberships, removing those Memberships whose memberElements are Features and for - /// which either of the following two conditions holds:
    - ///
  1. The memberElement of the Membership is included in redefined Features of another - /// Membership in memberships.
  2. One of the redefined Features of the - /// Membership is a directly redefinedFeature of an ownedFeature of this Type.
  3. - ///
For this purpose, the redefined Features of a Membership - /// whose memberElement is a Feature includes the memberElement and all Features directly or indirectly - /// redefined by the memberElement. + /// which either of the following two conditions holds:
  1. The memberElement of the Membership is + /// included in redefined Features of another Membership in memberships.
  2. One of the redefined + /// Features of the Membership is a directly redefinedFeature of an ownedFeature of this + /// Type.
For this purpose, the redefined Features of a Membership whose memberElement is a + /// Feature includes the memberElement and all Features directly or indirectly redefined by the + /// memberElement. ///
/// /// No documentation provided @@ -1390,11 +1387,11 @@ public LiteralRational() /// Return the Features used to determine the types of this Feature (other than this Feature itself). If /// this Feature is not conjugated, then the typingFeatures consist of all subsetted Features, except /// from CrossSubsetting, and the last chainingFeature (if any). If this Feature is conjugated, then the - /// typingFeatures are only its originalType (if the originalType is a Feature). - /// Note. CrossSubsetting is excluded from the determination of the type of a - /// Feature in order to avoid circularity in the construction of implied CrossSubsetting relationships. - /// The validateFeatureCrossFeatureType requires that the crossFeature of a Feature have the same type - /// as the Feature. + /// typingFeatures are only its originalType (if the originalType is a Feature).Note. + /// CrossSubsetting is excluded from the determination of the type of a Feature in order to avoid + /// circularity in the construction of implied CrossSubsetting relationships. The + /// validateFeatureCrossFeatureType requires that the crossFeature of a Feature have the same type as + /// the Feature. /// /// /// The expected collection of diff --git a/SysML2.NET.CodeGenerator.Tests/Expected/UML/Core/AutoGenPoco/Membership.cs b/SysML2.NET.CodeGenerator.Tests/Expected/UML/Core/AutoGenPoco/Membership.cs index cb63d8fe6..9e5ba361b 100644 --- a/SysML2.NET.CodeGenerator.Tests/Expected/UML/Core/AutoGenPoco/Membership.cs +++ b/SysML2.NET.CodeGenerator.Tests/Expected/UML/Core/AutoGenPoco/Membership.cs @@ -39,11 +39,10 @@ namespace SysML2.NET.Core.POCO.Root.Namespaces /// A Membership is a Relationship between a Namespace and an Element that indicates the Element is a /// member of (i.e., is contained in) the Namespace. Any memberNames specify how the memberElement is /// identified in the Namespace and the visibility specifies whether or not the memberElement is - /// publicly visible from outside the Namespace. If a Membership is an - /// OwningMembership, then it owns its memberElement, which becomes an ownedMember of the - /// membershipOwningNamespace. Otherwise, the memberNames of a Membership are effectively aliases within - /// the membershipOwningNamespace for an Element with a separate OwningMembership in the same or a - /// different Namespace. + /// publicly visible from outside the Namespace.If a Membership is an OwningMembership, then it owns its + /// memberElement, which becomes an ownedMember of the membershipOwningNamespace. Otherwise, the + /// memberNames of a Membership are effectively aliases within the membershipOwningNamespace for an + /// Element with a separate OwningMembership in the same or a different Namespace. /// [Class(xmiId: "_18_5_3_12e503d9_1533160651680_888716_42152", isAbstract: false, isFinalSpecialization: false, isActive: false)] [GeneratedCode("SysML2.NET", "latest")] @@ -432,8 +431,8 @@ List Root.Elements.IRelationship.Target /// an owningRelationship, then return the string constructed by appending to the path of it's /// owningRelationship the character / followed by the string representation of its position in the list /// of ownedRelatedElements of the owningRelationship (indexed starting at 1). Otherwise, return the - /// empty string. (Note that this operation is overridden for Relationships - /// to use owningRelatedElement when appropriate.) + /// empty string.(Note that this operation is overridden for Relationships to use owningRelatedElement + /// when appropriate.) /// /// /// The expected diff --git a/SysML2.NET.CodeGenerator.Tests/Expected/UML/Core/AutoGenPoco/MultiplicityRange.cs b/SysML2.NET.CodeGenerator.Tests/Expected/UML/Core/AutoGenPoco/MultiplicityRange.cs index e88bb7c84..bd371ae71 100644 --- a/SysML2.NET.CodeGenerator.Tests/Expected/UML/Core/AutoGenPoco/MultiplicityRange.cs +++ b/SysML2.NET.CodeGenerator.Tests/Expected/UML/Core/AutoGenPoco/MultiplicityRange.cs @@ -358,11 +358,11 @@ public MultiplicityRange() /// /// Whether all things that meet the classification conditions of this Type must be classified by the - /// Type. (A Type gives conditions that must be met by whatever it - /// classifies, but when isSufficient is false, things may meet those conditions but still not be - /// classified by the Type. For example, a Type Car that is not sufficient could require everything it - /// classifies to have four wheels, but not all four wheeled things would classify as cars. However, if - /// the Type Car were sufficient, it would classify all four-wheeled things.) + /// Type.(A Type gives conditions that must be met by whatever it classifies, but when isSufficient + /// is false, things may meet those conditions but still not be classified by the Type. For example, a + /// Type Car that is not sufficient could require everything it classifies to have four wheels, but not + /// all four wheeled things would classify as cars. However, if the Type Car were sufficient, it would + /// classify all four-wheeled things.) /// [Property(xmiId: "_18_5_3_b9102da_1564072709069_937523_30797", aggregation: AggregationKind.None, lowerValue: 1, upperValue: 1, isOrdered: false, isReadOnly: false, isDerived: false, isDerivedUnion: false, isUnique: true, defaultValue: "false")] [Implements(implementation: "IType.IsSufficient")] @@ -863,9 +863,8 @@ public MultiplicityRange() public FeatureDirectionKind? DirectionOfExcluding(IFeature feature, List excluded) => this.ComputeDirectionOfExcludingOperation(feature, excluded); /// - /// If a Feature has no declaredName or declaredShortName , then its - /// effective name is given by the effective name of the Feature returned by the namingFeature() - /// operation, if any. + /// If a Feature has no declaredName or declaredShortName, then its effective name is given by the + /// effective name of the Feature returned by the namingFeature() operation, if any. /// /// /// The expected @@ -985,11 +984,10 @@ public MultiplicityRange() /// /// A Feature is compatible with an otherType if it either directly or indirectly specializes the - /// otherType or if the otherType is also a Feature and all of the following are true. - ///
  1. Neither this Feature or the otherType have any - /// ownedFeatures.
  2. This Feature directly or indirectly redefines a - /// Feature that is also directly or indirectly redefined by the otherType.
  3. - ///
  4. This Feature can access the otherType.
+ /// otherType or if the otherType is also a Feature and all of the following are true.
  1. Neither + /// this Feature or the otherType have any ownedFeatures.
  2. This Feature directly or indirectly + /// redefines a Feature that is also directly or indirectly redefined by the otherType.
  3. This + /// Feature can access the otherType.
///
/// /// No documentation provided @@ -1138,8 +1136,8 @@ public MultiplicityRange() /// an owningRelationship, then return the string constructed by appending to the path of it's /// owningRelationship the character / followed by the string representation of its position in the list /// of ownedRelatedElements of the owningRelationship (indexed starting at 1). Otherwise, return the - /// empty string. (Note that this operation is overridden for Relationships - /// to use owningRelatedElement when appropriate.) + /// empty string.(Note that this operation is overridden for Relationships to use owningRelatedElement + /// when appropriate.) /// /// /// The expected @@ -1184,13 +1182,12 @@ public MultiplicityRange() /// /// Return a subset of memberships, removing those Memberships whose memberElements are Features and for - /// which either of the following two conditions holds:
    - ///
  1. The memberElement of the Membership is included in redefined Features of another - /// Membership in memberships.
  2. One of the redefined Features of the - /// Membership is a directly redefinedFeature of an ownedFeature of this Type.
  3. - ///
For this purpose, the redefined Features of a Membership - /// whose memberElement is a Feature includes the memberElement and all Features directly or indirectly - /// redefined by the memberElement. + /// which either of the following two conditions holds:
  1. The memberElement of the Membership is + /// included in redefined Features of another Membership in memberships.
  2. One of the redefined + /// Features of the Membership is a directly redefinedFeature of an ownedFeature of this + /// Type.
For this purpose, the redefined Features of a Membership whose memberElement is a + /// Feature includes the memberElement and all Features directly or indirectly redefined by the + /// memberElement. ///
/// /// No documentation provided @@ -1317,11 +1314,11 @@ public MultiplicityRange() /// Return the Features used to determine the types of this Feature (other than this Feature itself). If /// this Feature is not conjugated, then the typingFeatures consist of all subsetted Features, except /// from CrossSubsetting, and the last chainingFeature (if any). If this Feature is conjugated, then the - /// typingFeatures are only its originalType (if the originalType is a Feature). - /// Note. CrossSubsetting is excluded from the determination of the type of a - /// Feature in order to avoid circularity in the construction of implied CrossSubsetting relationships. - /// The validateFeatureCrossFeatureType requires that the crossFeature of a Feature have the same type - /// as the Feature. + /// typingFeatures are only its originalType (if the originalType is a Feature).Note. + /// CrossSubsetting is excluded from the determination of the type of a Feature in order to avoid + /// circularity in the construction of implied CrossSubsetting relationships. The + /// validateFeatureCrossFeatureType requires that the crossFeature of a Feature have the same type as + /// the Feature. /// /// /// The expected collection of diff --git a/SysML2.NET.CodeGenerator.Tests/Expected/UML/Core/AutoGenPoco/OwningMembership.cs b/SysML2.NET.CodeGenerator.Tests/Expected/UML/Core/AutoGenPoco/OwningMembership.cs index 076182467..985a4b9d8 100644 --- a/SysML2.NET.CodeGenerator.Tests/Expected/UML/Core/AutoGenPoco/OwningMembership.cs +++ b/SysML2.NET.CodeGenerator.Tests/Expected/UML/Core/AutoGenPoco/OwningMembership.cs @@ -486,8 +486,8 @@ List Root.Elements.IRelationship.Target /// an owningRelationship, then return the string constructed by appending to the path of it's /// owningRelationship the character / followed by the string representation of its position in the list /// of ownedRelatedElements of the owningRelationship (indexed starting at 1). Otherwise, return the - /// empty string. (Note that this operation is overridden for Relationships - /// to use owningRelatedElement when appropriate.) + /// empty string.(Note that this operation is overridden for Relationships to use owningRelatedElement + /// when appropriate.) /// /// /// The expected diff --git a/SysML2.NET.CodeGenerator.Tests/Expected/UML/Core/AutoGenPoco/ReferenceSubsetting.cs b/SysML2.NET.CodeGenerator.Tests/Expected/UML/Core/AutoGenPoco/ReferenceSubsetting.cs index 5d37c0094..2a5567acd 100644 --- a/SysML2.NET.CodeGenerator.Tests/Expected/UML/Core/AutoGenPoco/ReferenceSubsetting.cs +++ b/SysML2.NET.CodeGenerator.Tests/Expected/UML/Core/AutoGenPoco/ReferenceSubsetting.cs @@ -41,8 +41,8 @@ namespace SysML2.NET.Core.POCO.Core.Features /// distinguished from other Features subsetted by the referencingFeature. ReferenceSubsetting has the /// same semantics as Subsetting, but the referencedFeature may have a special purpose relative to the /// referencingFeature. For instance, ReferenceSubsetting is used to identify the relatedFeatures of a - /// Connector. ReferenceSubsetting is always an ownedRelationship of its - /// referencingFeature. A Feature can have at most one ownedReferenceSubsetting. + /// Connector.ReferenceSubsetting is always an ownedRelationship of its referencingFeature. A Feature + /// can have at most one ownedReferenceSubsetting. /// [Class(xmiId: "_19_0_4_12e503d9_1661554793960_500657_60", isAbstract: false, isFinalSpecialization: false, isActive: false)] [GeneratedCode("SysML2.NET", "latest")] @@ -479,8 +479,8 @@ List Root.Elements.IRelationship.Target /// an owningRelationship, then return the string constructed by appending to the path of it's /// owningRelationship the character / followed by the string representation of its position in the list /// of ownedRelatedElements of the owningRelationship (indexed starting at 1). Otherwise, return the - /// empty string. (Note that this operation is overridden for Relationships - /// to use owningRelatedElement when appropriate.) + /// empty string.(Note that this operation is overridden for Relationships to use owningRelatedElement + /// when appropriate.) /// /// /// The expected diff --git a/SysML2.NET.CodeGenerator.Tests/Expected/UML/Core/AutoGenPoco/RequirementUsage.cs b/SysML2.NET.CodeGenerator.Tests/Expected/UML/Core/AutoGenPoco/RequirementUsage.cs index c3c49c9f0..1a7bff9f3 100644 --- a/SysML2.NET.CodeGenerator.Tests/Expected/UML/Core/AutoGenPoco/RequirementUsage.cs +++ b/SysML2.NET.CodeGenerator.Tests/Expected/UML/Core/AutoGenPoco/RequirementUsage.cs @@ -483,11 +483,11 @@ string Root.Elements.IElement.DeclaredShortName /// /// Whether all things that meet the classification conditions of this Type must be classified by the - /// Type. (A Type gives conditions that must be met by whatever it - /// classifies, but when isSufficient is false, things may meet those conditions but still not be - /// classified by the Type. For example, a Type Car that is not sufficient could require everything it - /// classifies to have four wheels, but not all four wheeled things would classify as cars. However, if - /// the Type Car were sufficient, it would classify all four-wheeled things.) + /// Type.(A Type gives conditions that must be met by whatever it classifies, but when isSufficient + /// is false, things may meet those conditions but still not be classified by the Type. For example, a + /// Type Car that is not sufficient could require everything it classifies to have four wheels, but not + /// all four wheeled things would classify as cars. However, if the Type Car were sufficient, it would + /// classify all four-wheeled things.) /// [Property(xmiId: "_18_5_3_b9102da_1564072709069_937523_30797", aggregation: AggregationKind.None, lowerValue: 1, upperValue: 1, isOrdered: false, isReadOnly: false, isDerived: false, isDerivedUnion: false, isUnique: true, defaultValue: "false")] [Implements(implementation: "IType.IsSufficient")] @@ -525,9 +525,9 @@ bool Core.Features.IFeature.IsVariable /// Whether this Usage may be time varying (that is, whether it is featured by the snapshots of its /// owningType, rather than being featured by the owningType itself). However, if isConstant is also /// true, then the value of the Usage is nevertheless constant over the entire duration of an instance - /// of its owningType (that is, it has the same value on all snapshots). The - /// property mayTimeVary redefines the KerML property Feature::isVariable, making it derived. The - /// property isConstant is inherited from Feature. + /// of its owningType (that is, it has the same value on all snapshots).The property mayTimeVary + /// redefines the KerML property Feature::isVariable, making it derived. The property isConstant is + /// inherited from Feature. /// [Property(xmiId: "_2022x_2_12e503d9_1737227200362_771035_69", aggregation: AggregationKind.None, lowerValue: 1, upperValue: 1, isOrdered: false, isReadOnly: false, isDerived: true, isDerivedUnion: false, isUnique: true, defaultValue: null)] [RedefinedProperty(propertyName: "_2022x_2_12e503d9_1725998273002_23711_212")] @@ -628,8 +628,8 @@ bool Core.Features.IFeature.IsVariable /// /// The ConnectorAsUsages that are nestedUsages of this Usage. Note that this list includes - /// BindingConnectorAsUsages, SuccessionAsUsages, and FlowConnectionUsages because these are - /// ConnectorAsUsages even though they are not ConnectionUsages. + /// BindingConnectorAsUsages, SuccessionAsUsages, and FlowUsages because these are ConnectorAsUsages + /// even though they are not ConnectionUsages. /// [Property(xmiId: "_19_0_2_12e503d9_1591479754895_422988_1242", aggregation: AggregationKind.None, lowerValue: 0, upperValue: int.MaxValue, isOrdered: true, isReadOnly: false, isDerived: true, isDerivedUnion: false, isUnique: true, defaultValue: null)] [SubsettedProperty(propertyName: "_18_5_3_12e503d9_1565472757327_162097_21259")] @@ -677,7 +677,7 @@ bool Core.Features.IFeature.IsVariable public List nestedItem => this.ComputeNestedItem(); /// - /// The MetadataUsages that are nestedUsages of this of this Usage. + /// The MetadataUsages that are ownedMembers of this of this Usage. /// [Property(xmiId: "_19_0_4_12e503d9_1661488589862_120785_2970", aggregation: AggregationKind.None, lowerValue: 0, upperValue: int.MaxValue, isOrdered: true, isReadOnly: false, isDerived: true, isDerivedUnion: false, isUnique: true, defaultValue: null)] [SubsettedProperty(propertyName: "_19_0_2_12e503d9_1591482421103_284620_2978")] @@ -1369,9 +1369,8 @@ bool Core.Features.IFeature.IsVariable public FeatureDirectionKind? DirectionOfExcluding(IFeature feature, List excluded) => this.ComputeDirectionOfExcludingOperation(feature, excluded); /// - /// If a Feature has no declaredName or declaredShortName , then its - /// effective name is given by the effective name of the Feature returned by the namingFeature() - /// operation, if any. + /// If a Feature has no declaredName or declaredShortName, then its effective name is given by the + /// effective name of the Feature returned by the namingFeature() operation, if any. /// /// /// The expected @@ -1490,11 +1489,10 @@ bool Core.Features.IFeature.IsVariable /// /// A Feature is compatible with an otherType if it either directly or indirectly specializes the - /// otherType or if the otherType is also a Feature and all of the following are true. - ///
  1. Neither this Feature or the otherType have any - /// ownedFeatures.
  2. This Feature directly or indirectly redefines a - /// Feature that is also directly or indirectly redefined by the otherType.
  3. - ///
  4. This Feature can access the otherType.
+ /// otherType or if the otherType is also a Feature and all of the following are true.
  1. Neither + /// this Feature or the otherType have any ownedFeatures.
  2. This Feature directly or indirectly + /// redefines a Feature that is also directly or indirectly redefined by the otherType.
  3. This + /// Feature can access the otherType.
///
/// /// No documentation provided @@ -1594,11 +1592,11 @@ bool Core.Features.IFeature.IsVariable /// Return whether this Expression is model-level evaluable. The visited parameter is used to track /// possible circular Feature references made from FeatureReferenceExpressions (see the redefinition of /// this operation for FeatureReferenceExpression). Such circular references are not allowed in - /// model-level evaluable expressions. An Expression that is not otherwise - /// specialized is model-level evaluable if it has no (non-implied) ownedSpecializations and all its - /// ownedFeatures are either in parameters, the result parameter or a result Expression owned via a - /// ResultExpressionMembership. The parameters must not have any ownedFeatures or a FeatureValue, and - /// the result Expression must be model-level evaluable. + /// model-level evaluable expressions.An Expression that is not otherwise specialized is model-level + /// evaluable if it has no (non-implied) ownedSpecializations and all its ownedFeatures are either in + /// parameters, the result parameter or a result Expression owned via a ResultExpressionMembership. The + /// parameters must not have any ownedFeatures or a FeatureValue, and the result Expression must be + /// model-level evaluable. /// /// /// No documentation provided @@ -1691,8 +1689,8 @@ bool Core.Features.IFeature.IsVariable /// an owningRelationship, then return the string constructed by appending to the path of it's /// owningRelationship the character / followed by the string representation of its position in the list /// of ownedRelatedElements of the owningRelationship (indexed starting at 1). Otherwise, return the - /// empty string. (Note that this operation is overridden for Relationships - /// to use owningRelatedElement when appropriate.) + /// empty string.(Note that this operation is overridden for Relationships to use owningRelatedElement + /// when appropriate.) /// /// /// The expected @@ -1746,13 +1744,12 @@ bool Core.Features.IFeature.IsVariable /// /// Return a subset of memberships, removing those Memberships whose memberElements are Features and for - /// which either of the following two conditions holds:
    - ///
  1. The memberElement of the Membership is included in redefined Features of another - /// Membership in memberships.
  2. One of the redefined Features of the - /// Membership is a directly redefinedFeature of an ownedFeature of this Type.
  3. - ///
For this purpose, the redefined Features of a Membership - /// whose memberElement is a Feature includes the memberElement and all Features directly or indirectly - /// redefined by the memberElement. + /// which either of the following two conditions holds:
  1. The memberElement of the Membership is + /// included in redefined Features of another Membership in memberships.
  2. One of the redefined + /// Features of the Membership is a directly redefinedFeature of an ownedFeature of this + /// Type.
For this purpose, the redefined Features of a Membership whose memberElement is a + /// Feature includes the memberElement and all Features directly or indirectly redefined by the + /// memberElement. ///
/// /// No documentation provided @@ -1879,11 +1876,11 @@ bool Core.Features.IFeature.IsVariable /// Return the Features used to determine the types of this Feature (other than this Feature itself). If /// this Feature is not conjugated, then the typingFeatures consist of all subsetted Features, except /// from CrossSubsetting, and the last chainingFeature (if any). If this Feature is conjugated, then the - /// typingFeatures are only its originalType (if the originalType is a Feature). - /// Note. CrossSubsetting is excluded from the determination of the type of a - /// Feature in order to avoid circularity in the construction of implied CrossSubsetting relationships. - /// The validateFeatureCrossFeatureType requires that the crossFeature of a Feature have the same type - /// as the Feature. + /// typingFeatures are only its originalType (if the originalType is a Feature).Note. + /// CrossSubsetting is excluded from the determination of the type of a Feature in order to avoid + /// circularity in the construction of implied CrossSubsetting relationships. The + /// validateFeatureCrossFeatureType requires that the crossFeature of a Feature have the same type as + /// the Feature. /// /// /// The expected collection of diff --git a/SysML2.NET.CodeGenerator.Tests/Expected/UML/Core/AutoGenPoco/SelectExpression.cs b/SysML2.NET.CodeGenerator.Tests/Expected/UML/Core/AutoGenPoco/SelectExpression.cs index ef56866ed..f90c983e3 100644 --- a/SysML2.NET.CodeGenerator.Tests/Expected/UML/Core/AutoGenPoco/SelectExpression.cs +++ b/SysML2.NET.CodeGenerator.Tests/Expected/UML/Core/AutoGenPoco/SelectExpression.cs @@ -77,8 +77,8 @@ public SelectExpression() /// /// The Expressions whose results are bound to features of the instantiatedType. The arguments are /// ordered consistent with the order of the features, though they may not be one-to-one with all the - /// features. Note. The derivation of argument is given in - /// the concrete subclasses of InstantiationExpression. + /// features.Note. The derivation of argument is given in the concrete subclasses of + /// InstantiationExpression. /// [Property(xmiId: "_2022x_2_12e503d9_1739134437590_328753_108", aggregation: AggregationKind.None, lowerValue: 0, upperValue: int.MaxValue, isOrdered: true, isReadOnly: false, isDerived: true, isDerivedUnion: false, isUnique: true, defaultValue: null)] [Implements(implementation: "IInstantiationExpression.Argument")] @@ -389,11 +389,11 @@ public SelectExpression() /// /// Whether all things that meet the classification conditions of this Type must be classified by the - /// Type. (A Type gives conditions that must be met by whatever it - /// classifies, but when isSufficient is false, things may meet those conditions but still not be - /// classified by the Type. For example, a Type Car that is not sufficient could require everything it - /// classifies to have four wheels, but not all four wheeled things would classify as cars. However, if - /// the Type Car were sufficient, it would classify all four-wheeled things.) + /// Type.(A Type gives conditions that must be met by whatever it classifies, but when isSufficient + /// is false, things may meet those conditions but still not be classified by the Type. For example, a + /// Type Car that is not sufficient could require everything it classifies to have four wheels, but not + /// all four wheeled things would classify as cars. However, if the Type Car were sufficient, it would + /// classify all four-wheeled things.) /// [Property(xmiId: "_18_5_3_b9102da_1564072709069_937523_30797", aggregation: AggregationKind.None, lowerValue: 1, upperValue: 1, isOrdered: false, isReadOnly: false, isDerived: false, isDerivedUnion: false, isUnique: true, defaultValue: "false")] [Implements(implementation: "IType.IsSufficient")] @@ -931,9 +931,8 @@ string IOperatorExpression.Operator public FeatureDirectionKind? DirectionOfExcluding(IFeature feature, List excluded) => this.ComputeDirectionOfExcludingOperation(feature, excluded); /// - /// If a Feature has no declaredName or declaredShortName , then its - /// effective name is given by the effective name of the Feature returned by the namingFeature() - /// operation, if any. + /// If a Feature has no declaredName or declaredShortName, then its effective name is given by the + /// effective name of the Feature returned by the namingFeature() operation, if any. /// /// /// The expected @@ -1067,8 +1066,7 @@ string IOperatorExpression.Operator /// /// Return the Type to act as the instantiatedType for this InstantiationExpression. By default, this is /// the memberElement of the first ownedMembership that is not a FeatureMembership, which must be a - /// Type. Note. This operation is overridden in the subclass - /// OperatorExpression. + /// Type.Note. This operation is overridden in the subclass OperatorExpression. /// /// /// The expected @@ -1085,11 +1083,10 @@ string IOperatorExpression.Operator /// /// A Feature is compatible with an otherType if it either directly or indirectly specializes the - /// otherType or if the otherType is also a Feature and all of the following are true. - ///
  1. Neither this Feature or the otherType have any - /// ownedFeatures.
  2. This Feature directly or indirectly redefines a - /// Feature that is also directly or indirectly redefined by the otherType.
  3. - ///
  4. This Feature can access the otherType.
+ /// otherType or if the otherType is also a Feature and all of the following are true.
  1. Neither + /// this Feature or the otherType have any ownedFeatures.
  2. This Feature directly or indirectly + /// redefines a Feature that is also directly or indirectly redefined by the otherType.
  3. This + /// Feature can access the otherType.
///
/// /// No documentation provided @@ -1190,11 +1187,11 @@ string IOperatorExpression.Operator /// Return whether this Expression is model-level evaluable. The visited parameter is used to track /// possible circular Feature references made from FeatureReferenceExpressions (see the redefinition of /// this operation for FeatureReferenceExpression). Such circular references are not allowed in - /// model-level evaluable expressions. An Expression that is not otherwise - /// specialized is model-level evaluable if it has no (non-implied) ownedSpecializations and all its - /// ownedFeatures are either in parameters, the result parameter or a result Expression owned via a - /// ResultExpressionMembership. The parameters must not have any ownedFeatures or a FeatureValue, and - /// the result Expression must be model-level evaluable. + /// model-level evaluable expressions.An Expression that is not otherwise specialized is model-level + /// evaluable if it has no (non-implied) ownedSpecializations and all its ownedFeatures are either in + /// parameters, the result parameter or a result Expression owned via a ResultExpressionMembership. The + /// parameters must not have any ownedFeatures or a FeatureValue, and the result Expression must be + /// model-level evaluable. /// /// /// No documentation provided @@ -1268,8 +1265,8 @@ string IOperatorExpression.Operator /// an owningRelationship, then return the string constructed by appending to the path of it's /// owningRelationship the character / followed by the string representation of its position in the list /// of ownedRelatedElements of the owningRelationship (indexed starting at 1). Otherwise, return the - /// empty string. (Note that this operation is overridden for Relationships - /// to use owningRelatedElement when appropriate.) + /// empty string.(Note that this operation is overridden for Relationships to use owningRelatedElement + /// when appropriate.) /// /// /// The expected @@ -1314,13 +1311,12 @@ string IOperatorExpression.Operator /// /// Return a subset of memberships, removing those Memberships whose memberElements are Features and for - /// which either of the following two conditions holds:
    - ///
  1. The memberElement of the Membership is included in redefined Features of another - /// Membership in memberships.
  2. One of the redefined Features of the - /// Membership is a directly redefinedFeature of an ownedFeature of this Type.
  3. - ///
For this purpose, the redefined Features of a Membership - /// whose memberElement is a Feature includes the memberElement and all Features directly or indirectly - /// redefined by the memberElement. + /// which either of the following two conditions holds:
  1. The memberElement of the Membership is + /// included in redefined Features of another Membership in memberships.
  2. One of the redefined + /// Features of the Membership is a directly redefinedFeature of an ownedFeature of this + /// Type.
For this purpose, the redefined Features of a Membership whose memberElement is a + /// Feature includes the memberElement and all Features directly or indirectly redefined by the + /// memberElement. ///
/// /// No documentation provided @@ -1447,11 +1443,11 @@ string IOperatorExpression.Operator /// Return the Features used to determine the types of this Feature (other than this Feature itself). If /// this Feature is not conjugated, then the typingFeatures consist of all subsetted Features, except /// from CrossSubsetting, and the last chainingFeature (if any). If this Feature is conjugated, then the - /// typingFeatures are only its originalType (if the originalType is a Feature). - /// Note. CrossSubsetting is excluded from the determination of the type of a - /// Feature in order to avoid circularity in the construction of implied CrossSubsetting relationships. - /// The validateFeatureCrossFeatureType requires that the crossFeature of a Feature have the same type - /// as the Feature. + /// typingFeatures are only its originalType (if the originalType is a Feature).Note. + /// CrossSubsetting is excluded from the determination of the type of a Feature in order to avoid + /// circularity in the construction of implied CrossSubsetting relationships. The + /// validateFeatureCrossFeatureType requires that the crossFeature of a Feature have the same type as + /// the Feature. /// /// /// The expected collection of diff --git a/SysML2.NET.CodeGenerator.Tests/Expected/UML/Core/AutoGenPoco/Subclassification.cs b/SysML2.NET.CodeGenerator.Tests/Expected/UML/Core/AutoGenPoco/Subclassification.cs index f085dd787..e9fb6ed55 100644 --- a/SysML2.NET.CodeGenerator.Tests/Expected/UML/Core/AutoGenPoco/Subclassification.cs +++ b/SysML2.NET.CodeGenerator.Tests/Expected/UML/Core/AutoGenPoco/Subclassification.cs @@ -443,8 +443,8 @@ List Root.Elements.IRelationship.Target /// an owningRelationship, then return the string constructed by appending to the path of it's /// owningRelationship the character / followed by the string representation of its position in the list /// of ownedRelatedElements of the owningRelationship (indexed starting at 1). Otherwise, return the - /// empty string. (Note that this operation is overridden for Relationships - /// to use owningRelatedElement when appropriate.) + /// empty string.(Note that this operation is overridden for Relationships to use owningRelatedElement + /// when appropriate.) /// /// /// The expected diff --git a/SysML2.NET.CodeGenerator.Tests/Expected/UML/Core/AutoGenPoco/TextualRepresentation.cs b/SysML2.NET.CodeGenerator.Tests/Expected/UML/Core/AutoGenPoco/TextualRepresentation.cs index 3d407b630..33aa5cca9 100644 --- a/SysML2.NET.CodeGenerator.Tests/Expected/UML/Core/AutoGenPoco/TextualRepresentation.cs +++ b/SysML2.NET.CodeGenerator.Tests/Expected/UML/Core/AutoGenPoco/TextualRepresentation.cs @@ -39,30 +39,26 @@ namespace SysML2.NET.Core.POCO.Root.Annotations /// given language. The representedElement must be the owner of the TextualRepresentation. The named /// language can be a natural language, in which case the body is an informal representation, or an /// artificial language, in which case the body is expected to be a formal, machine-parsable - /// representation. If the named language of a TextualRepresentation is - /// machine-parsable, then the body text should be legal input text as defined for that language. The - /// interpretation of the named language string shall be case insensitive. The following language names - /// are defined to correspond to the given standard languages: - /// - /// - /// - /// - ///
kerml Kernel Modeling Language
ocl Object Constraint Language
alfAction Language for fUML
Other - /// specifications may define specific language strings, other than those shown above, to be used to - /// indicate the use of languages from those specifications in KerML TextualRepresentation. - /// If the language of a TextualRepresentation is "kerml", then the body text shall - /// be a legal representation of the representedElement in the KerML textual concrete syntax. A - /// conforming tool can use such a TextualRepresentation Annotation to record the original KerML - /// concrete syntax text from which an Element was parsed. In this case, it is a tool responsibility to - /// ensure that the body of the TextualRepresentation remains correct (or the Annotation is removed) if - /// the annotated Element changes other than by re-parsing the body text. An - /// Element with a TextualRepresentation in a language other than KerML is essentially a semantically - /// "opaque" Element specified in the other language. However, a conforming KerML tool may - /// interpret such an element consistently with the specification of the named language. + /// representation.If the named language of a TextualRepresentation is machine-parsable, then the body + /// text should be legal input text as defined for that language. The interpretation of the named + /// language string shall be case insensitive. The following language names are defined to correspond to + /// the given standard languages:
kerml Kernel Modeling Language
ocl Object Constraint + /// Language
alf Action Language for fUML
Other specifications may + /// define specific language strings, other than those shown above, to be used to indicate the use of + /// languages from those specifications in KerML TextualRepresentation.If the language of a + /// TextualRepresentation is "kerml", then the body text shall be a legal representation of + /// the representedElement in the KerML textual concrete syntax. A conforming tool can use such a + /// TextualRepresentation Annotation to record the original KerML concrete syntax text from which an + /// Element was parsed. In this case, it is a tool responsibility to ensure that the body of the + /// TextualRepresentation remains correct (or the Annotation is removed) if the annotated Element + /// changes other than by re-parsing the body text.An Element with a TextualRepresentation in a language + /// other than KerML is essentially a semantically "opaque" Element specified in the other + /// language. However, a conforming KerML tool may interpret such an element consistently with the + /// specification of the named language. /// [Class(xmiId: "_19_0_2_12e503d9_1594152214531_455349_2448", isAbstract: false, isFinalSpecialization: false, isActive: false)] [GeneratedCode("SysML2.NET", "latest")] @@ -356,8 +352,8 @@ public TextualRepresentation() /// an owningRelationship, then return the string constructed by appending to the path of it's /// owningRelationship the character / followed by the string representation of its position in the list /// of ownedRelatedElements of the owningRelationship (indexed starting at 1). Otherwise, return the - /// empty string. (Note that this operation is overridden for Relationships - /// to use owningRelatedElement when appropriate.) + /// empty string.(Note that this operation is overridden for Relationships to use owningRelatedElement + /// when appropriate.) /// /// /// The expected diff --git a/SysML2.NET.CodeGenerator.Tests/Expected/UML/Core/AutoGenPoco/Usage.cs b/SysML2.NET.CodeGenerator.Tests/Expected/UML/Core/AutoGenPoco/Usage.cs index a4a2fcd71..9384fb200 100644 --- a/SysML2.NET.CodeGenerator.Tests/Expected/UML/Core/AutoGenPoco/Usage.cs +++ b/SysML2.NET.CodeGenerator.Tests/Expected/UML/Core/AutoGenPoco/Usage.cs @@ -62,14 +62,13 @@ namespace SysML2.NET.Core.POCO.Systems.DefinitionAndUsage using SysML2.NET.Decorators; /// - /// A Usage is a usage of a Definition. A Usage may have nestedUsages that model - /// features that apply in the context of the owningUsage. A Usage may also have Definitions nested in - /// it, but this has no semantic significance, other than the nested scoping resulting from the Usage - /// being considered as a Namespace for any nested Definitions. However, if a - /// Usage has isVariation = true, then it represents a variation point Usage. In this case, all of its - /// members must be variant Usages, related to the Usage by VariantMembership Relationships. Rather than - /// being features of the Usage, variant Usages model different concrete alternatives that can be chosen - /// to fill in for the variation point Usage. + /// A Usage is a usage of a Definition.A Usage may have nestedUsages that model features that apply in + /// the context of the owningUsage. A Usage may also have Definitions nested in it, but this has no + /// semantic significance, other than the nested scoping resulting from the Usage being considered as a + /// Namespace for any nested Definitions.However, if a Usage has isVariation = true, then it represents + /// a variation point Usage. In this case, all of its members must be variant Usages, related to the + /// Usage by VariantMembership Relationships. Rather than being features of the Usage, variant Usages + /// model different concrete alternatives that can be chosen to fill in for the variation point Usage. /// [Class(xmiId: "_18_5_3_12e503d9_1565469997820_598571_19982", isAbstract: false, isFinalSpecialization: false, isActive: false)] [GeneratedCode("SysML2.NET", "latest")] @@ -396,11 +395,11 @@ public Usage() /// /// Whether all things that meet the classification conditions of this Type must be classified by the - /// Type. (A Type gives conditions that must be met by whatever it - /// classifies, but when isSufficient is false, things may meet those conditions but still not be - /// classified by the Type. For example, a Type Car that is not sufficient could require everything it - /// classifies to have four wheels, but not all four wheeled things would classify as cars. However, if - /// the Type Car were sufficient, it would classify all four-wheeled things.) + /// Type.(A Type gives conditions that must be met by whatever it classifies, but when isSufficient + /// is false, things may meet those conditions but still not be classified by the Type. For example, a + /// Type Car that is not sufficient could require everything it classifies to have four wheels, but not + /// all four wheeled things would classify as cars. However, if the Type Car were sufficient, it would + /// classify all four-wheeled things.) /// [Property(xmiId: "_18_5_3_b9102da_1564072709069_937523_30797", aggregation: AggregationKind.None, lowerValue: 1, upperValue: 1, isOrdered: false, isReadOnly: false, isDerived: false, isDerivedUnion: false, isUnique: true, defaultValue: "false")] [Implements(implementation: "IType.IsSufficient")] @@ -438,9 +437,9 @@ bool Core.Features.IFeature.IsVariable /// Whether this Usage may be time varying (that is, whether it is featured by the snapshots of its /// owningType, rather than being featured by the owningType itself). However, if isConstant is also /// true, then the value of the Usage is nevertheless constant over the entire duration of an instance - /// of its owningType (that is, it has the same value on all snapshots). The - /// property mayTimeVary redefines the KerML property Feature::isVariable, making it derived. The - /// property isConstant is inherited from Feature. + /// of its owningType (that is, it has the same value on all snapshots).The property mayTimeVary + /// redefines the KerML property Feature::isVariable, making it derived. The property isConstant is + /// inherited from Feature. /// [Property(xmiId: "_2022x_2_12e503d9_1737227200362_771035_69", aggregation: AggregationKind.None, lowerValue: 1, upperValue: 1, isOrdered: false, isReadOnly: false, isDerived: true, isDerivedUnion: false, isUnique: true, defaultValue: null)] [RedefinedProperty(propertyName: "_2022x_2_12e503d9_1725998273002_23711_212")] @@ -541,8 +540,8 @@ bool Core.Features.IFeature.IsVariable /// /// The ConnectorAsUsages that are nestedUsages of this Usage. Note that this list includes - /// BindingConnectorAsUsages, SuccessionAsUsages, and FlowConnectionUsages because these are - /// ConnectorAsUsages even though they are not ConnectionUsages. + /// BindingConnectorAsUsages, SuccessionAsUsages, and FlowUsages because these are ConnectorAsUsages + /// even though they are not ConnectionUsages. /// [Property(xmiId: "_19_0_2_12e503d9_1591479754895_422988_1242", aggregation: AggregationKind.None, lowerValue: 0, upperValue: int.MaxValue, isOrdered: true, isReadOnly: false, isDerived: true, isDerivedUnion: false, isUnique: true, defaultValue: null)] [SubsettedProperty(propertyName: "_18_5_3_12e503d9_1565472757327_162097_21259")] @@ -590,7 +589,7 @@ bool Core.Features.IFeature.IsVariable public List nestedItem => this.ComputeNestedItem(); /// - /// The MetadataUsages that are nestedUsages of this of this Usage. + /// The MetadataUsages that are ownedMembers of this of this Usage. /// [Property(xmiId: "_19_0_4_12e503d9_1661488589862_120785_2970", aggregation: AggregationKind.None, lowerValue: 0, upperValue: int.MaxValue, isOrdered: true, isReadOnly: false, isDerived: true, isDerivedUnion: false, isUnique: true, defaultValue: null)] [SubsettedProperty(propertyName: "_19_0_2_12e503d9_1591482421103_284620_2978")] @@ -1170,9 +1169,8 @@ bool Core.Features.IFeature.IsVariable public FeatureDirectionKind? DirectionOfExcluding(IFeature feature, List excluded) => this.ComputeDirectionOfExcludingOperation(feature, excluded); /// - /// If a Feature has no declaredName or declaredShortName , then its - /// effective name is given by the effective name of the Feature returned by the namingFeature() - /// operation, if any. + /// If a Feature has no declaredName or declaredShortName, then its effective name is given by the + /// effective name of the Feature returned by the namingFeature() operation, if any. /// /// /// The expected @@ -1277,11 +1275,10 @@ bool Core.Features.IFeature.IsVariable /// /// A Feature is compatible with an otherType if it either directly or indirectly specializes the - /// otherType or if the otherType is also a Feature and all of the following are true. - ///
  1. Neither this Feature or the otherType have any - /// ownedFeatures.
  2. This Feature directly or indirectly redefines a - /// Feature that is also directly or indirectly redefined by the otherType.
  3. - ///
  4. This Feature can access the otherType.
+ /// otherType or if the otherType is also a Feature and all of the following are true.
  1. Neither + /// this Feature or the otherType have any ownedFeatures.
  2. This Feature directly or indirectly + /// redefines a Feature that is also directly or indirectly redefined by the otherType.
  3. This + /// Feature can access the otherType.
///
/// /// No documentation provided @@ -1439,8 +1436,8 @@ bool Core.Features.IFeature.IsVariable /// an owningRelationship, then return the string constructed by appending to the path of it's /// owningRelationship the character / followed by the string representation of its position in the list /// of ownedRelatedElements of the owningRelationship (indexed starting at 1). Otherwise, return the - /// empty string. (Note that this operation is overridden for Relationships - /// to use owningRelatedElement when appropriate.) + /// empty string.(Note that this operation is overridden for Relationships to use owningRelatedElement + /// when appropriate.) /// /// /// The expected @@ -1494,13 +1491,12 @@ bool Core.Features.IFeature.IsVariable /// /// Return a subset of memberships, removing those Memberships whose memberElements are Features and for - /// which either of the following two conditions holds:
    - ///
  1. The memberElement of the Membership is included in redefined Features of another - /// Membership in memberships.
  2. One of the redefined Features of the - /// Membership is a directly redefinedFeature of an ownedFeature of this Type.
  3. - ///
For this purpose, the redefined Features of a Membership - /// whose memberElement is a Feature includes the memberElement and all Features directly or indirectly - /// redefined by the memberElement. + /// which either of the following two conditions holds:
  1. The memberElement of the Membership is + /// included in redefined Features of another Membership in memberships.
  2. One of the redefined + /// Features of the Membership is a directly redefinedFeature of an ownedFeature of this + /// Type.
For this purpose, the redefined Features of a Membership whose memberElement is a + /// Feature includes the memberElement and all Features directly or indirectly redefined by the + /// memberElement. ///
/// /// No documentation provided @@ -1627,11 +1623,11 @@ bool Core.Features.IFeature.IsVariable /// Return the Features used to determine the types of this Feature (other than this Feature itself). If /// this Feature is not conjugated, then the typingFeatures consist of all subsetted Features, except /// from CrossSubsetting, and the last chainingFeature (if any). If this Feature is conjugated, then the - /// typingFeatures are only its originalType (if the originalType is a Feature). - /// Note. CrossSubsetting is excluded from the determination of the type of a - /// Feature in order to avoid circularity in the construction of implied CrossSubsetting relationships. - /// The validateFeatureCrossFeatureType requires that the crossFeature of a Feature have the same type - /// as the Feature. + /// typingFeatures are only its originalType (if the originalType is a Feature).Note. + /// CrossSubsetting is excluded from the determination of the type of a Feature in order to avoid + /// circularity in the construction of implied CrossSubsetting relationships. The + /// validateFeatureCrossFeatureType requires that the crossFeature of a Feature have the same type as + /// the Feature. /// /// /// The expected collection of