Software Disclaimer

Class UML 2.3::InformationItem

Description:

An information item is an abstraction of all kinds of information that can be exchanged between objects. It is a kind of classifier intended for representing information in a very abstract way, one which cannot be instantiated.

Direct Superclasses: Classifier

Direct Subclasses:

Class Precedence List: InformationItem, Classifier, TemplateableElement, Type, PackageableElement, ParameterableElement, Namespace, RedefinableElement, NamedElement, Element

Properties:

represented : Classifier (0 *); -- source InformationItem
attribute : Property (0 *); -- source Classifier
collaborationUse : CollaborationUse (0 *); -- source Classifier
feature : Feature (0 *); -- source Classifier
general : Classifier (0 *); -- source Classifier
generalization : Generalization (0 *); -- source Classifier
inheritedMember : NamedElement (0 *); -- source Classifier
isAbstract : Boolean (1 1); -- source Classifier
isFinalSpecialization : Boolean (1 1); -- source Classifier
ownedTemplateSignature : RedefinableTemplateSignature (0 1); -- source Classifier
ownedUseCase : UseCase (0 *); -- source Classifier
powertypeExtent : GeneralizationSet (0 *); -- source Classifier
redefinedClassifier : Classifier (0 *); -- source Classifier

References the Classifiers that are redefined by this Classifier.
Subsets: RedefinableElement.redefinedElement

representation : CollaborationUse (0 1); -- source Classifier
substitution : Substitution (0 *); -- source Classifier
templateParameter : ClassifierTemplateParameter (0 1); -- source Classifier
useCase : UseCase (0 *); -- source Classifier
templateBinding : TemplateBinding (0 *); -- source TemplateableElement
package : Package (0 1); -- source Type
visibility : VisibilityKind (1 1); -- source PackageableElement
owningTemplateParameter : TemplateParameter (0 1); -- source ParameterableElement
elementImport : ElementImport (0 *); -- source Namespace
importedMember : PackageableElement (0 *); -- source Namespace
member : NamedElement (0 *); -- source Namespace
ownedMember : NamedElement (0 *); -- source Namespace
ownedRule : Constraint (0 *); -- source Namespace
packageImport : PackageImport (0 *); -- source Namespace
isLeaf : Boolean (1 1); -- source RedefinableElement

Indicates whether it is possible to further redefine a RedefinableElement. If the value is true, then it is not possible to further redefine the RedefinableElement. Note that this property is preserved through package merge operations; that is, the capability to redefine a RedefinableElement (i.e., isLeaf=false) must be preserved in the resulting RedefinableElement of a package merge operation where a RedefinableElement with isLeaf=false is merged with a matching RedefinableElement with isLeaf=true: the resulting RedefinableElement will have isLeaf=false. Default value is false.
Default value: FALSE

redefinedElement : RedefinableElement (0 *); -- source RedefinableElement
redefinitionContext : Classifier (0 *); -- source RedefinableElement
clientDependency : Dependency (0 *); -- source NamedElement
name : String (0 1); -- source NamedElement
nameExpression : StringExpression (0 1); -- source NamedElement
namespace : Namespace (0 1); -- source NamedElement
qualifiedName : String (0 1); -- source NamedElement
ownedComment : Comment (0 *); -- source Element
ownedElement : Element (0 *); -- source Element
owner : Element (0 1); -- source Element

Constraints:

Signature: sources_and_targets() : Boolean;
Description: The sources and targets of an information item (its related information flows) must designate subsets of the sources and targets of the representation information item, if any.The Classifiers that can realize an information item can only be of the following kind: Class, Interface, InformationItem, Signal, Component.
The OCL used here is not normative.
Editor's notes: No property informationFlow.
Expression: true
Original: (self.represented->select(p | p->oclIsKindOf(InformationItem))->forAll(p | p.informationFlow.source->forAll(q | self.informationFlow.source->include(q)) and p.informationFlow.target->forAll(q | self.informationFlow.target->include(q)))) and (self.represented->forAll(p | p->oclIsKindOf(Class) or oclIsKindOf(Interface) or oclIsKindOf(InformationItem) or oclIsKindOf(Signal) or oclIsKindOf(Component)))

Signature: not_instantiable() : Boolean;
Description: It is not instantiable.
The OCL used here is not normative.
Editor's notes: I think that this constraint confuses cmof:Classifier.isAbstract with uml:Classifier.isAbstract. The former is used in the UML metamodel to specify that populations governed by the metamodel shall not contain members of the type that are not specialized to a concrete type. The latter is used by UML modelers in *their* domain of discourse for the same purpose. No OCL is needed, rather InformationItem should be cmof:Classifier.isAbstract=true, if that is desired.
Expression: true
Original: isAbstract

Signature: has_no() : Boolean;
Description: An informationItem has no feature, no generalization, and no associations.
Expression: self.generalization->isEmpty() and self.feature->isEmpty()

Operations:

No additional operations.



Send questions or comments to [email protected].