Issue 4904: Type of Pin (action-semantics-ftf) Source: International Business Machines (Mr. Sridhar Iyengar, siyengar@us.ibm.com) Nature: Uncategorized Issue Severity: Summary: [Sridhar Iyengar] 11. page 2-231: States that 'Since UML does not provide any standard Classifier that is the ancestor of all classifiers, untyped pins can be used for the purpose of accepting input of "any" type' I think you mean a standard 'class' that is an ancestor of all modelelements - not just classifiers. (This would be similar to RefBaseObject in MOF or 'Object' in smalltalk or java.lang.object in Java - is this the intent?). Note that the 'type' of Pin is a 'Classifier' in the metamodel. Resolution: Decline Revised Text: Actions taken: March 5, 2002: received issue December 11, 2002: closed issue Discussion: There is no user model (M1) standard classifier that is the supertype of all user-model classifiers, like and "any" type. A pin with no classifier has this semantics. End of Annotations:===== Summary: Type of Pin Text: [Sridhar Iyengar] 11. page 2-231: States that 'Since UML does not provide any standard Classifier that is the ancestor of all classifiers, untyped pins can be used for the purpose of accepting input of "any" type' I think you mean a standard 'class' that is an ancestor of all modelelements - not just classifiers. (This would be similar to RefBaseObject in MOF or 'Object' in smalltalk or java.lang.object in Java - is this the intent?). Note that the 'type' of Pin is a 'Classifier' in the metamodel. From: Edwin Seidewitz To: "'action-semantics-ftf@omg.org'" Subject: [Issue # 4904] Type of Pin Date: Tue, 5 Mar 2002 17:38:12 -0500 MIME-Version: 1.0 X-Mailer: Internet Mail Service (5.5.2653.19) Content-Type: multipart/alternative; boundary="----_=_NextPart_001_01C1C496.6E8234D0" X-UIDL: b9Ld9j7?!!`n8e93`@!! This is issue # 4904: > Type of Pin > [Sridhar Iyengar] 11. page 2-231: States that 'Since UML does not > provide any standard Classifier that is the ancestor of all > classifiers, > untyped pins can be used for the purpose of accepting input of "any" > type' I think you mean a standard 'class' that is an ancestor of all > modelelements - not just classifiers. (This would be similar to > RefBaseObject in MOF or 'Object' in smalltalk or java.lang.object in > Java - is this the intent?). Note that the 'type' of Pin is a > 'Classifier' in the metamodel. The specification is correct as written. The type of a Pin is required to be a Classifier. The semantics is that any value on a pin must be an instance of a classifier that is compatible (in a supertype/subtype sense) with the classifier of the pin. However, there was also a desire to be able to have pins that could hold ANY value, regardless of type. In Java one would do this by using the root Object class, which is compatible by definition with any other class. However, there is no such root classifier in UML, so instead we made the rule that, if a classifier is not specified for a pin, then there is no type restriction on the values that the pin can hold. (Note that it was an explicit decision not to restrict this to "Class", so that, for example, one could pass data elements -- which are instances of DataTypes, not Classes -- on Pins.) It is NOT intended to mean "a standard 'class' that is an ancestor of all model elements". The quoted passage has nothing to do with model elements other than classifiers. In fact, it is not even referring to elements of the metamodel. Rather, what the quoted passage is referring to is that there is not a specific classifier AT THE MODEL (M1) LEVEL that is the ancestor (in the sense of generalization/specialization) of all classifiers AT THE MODEL LEVEL. Such a classifier would, indeed, be similar to Object in Smalltalk or java.lang.object in Java -- but such root classes are not part of the metamodel, they are specific classes that the rules of the language define to be the parent of any class that is not given an explicit parent. UML (like, say, C++) has no such root class (or classifier). -- Ed Ed Seidewitz, Chief Architect InteliData Technologies Office: +1.703.259.3076 Mobile: +1.301.455.3681