Daniel Keir Haywood created ISIS-2553:
-----------------------------------------

             Summary: Rationalize value types representing the metamodel, 
promote to applib if possible.
                 Key: ISIS-2553
                 URL: https://issues.apache.org/jira/browse/ISIS-2553
             Project: Isis
          Issue Type: Improvement
            Reporter: Daniel Keir Haywood
             Fix For: 2.0.0-M6


We have some duplication between classes that describe elements of our 
metamodel.  We also have a legacy of names that relate to physical aspects (eg 
PACKAGE) whereas internally we are now using logical names (derived from 
@DomainObject(objectType=), in other words ObjectSpecIdFacet) throughout.  And 
it would probably be safe to promote all of this to the applib once clean - we 
currently only expose strings.

Andi's summary of what we have:
To summarize my understanding: # {{Identifier }}(AppLib): identifies an 
application feature, that is a type (class) or a type's member (action, 
property or collection)
 # {{TypeIdentifier }}(AppLib): introduced this weekend, to effectively amend 
the {{Identifier }}with an additional field, that provides the logical name of 
the type (aka *object-type*); immutable as much as possible, but allows for 
lazy evaluation of the logical name, as it requires the meta-model to be 
populated
 # {{ObjectSpecId}}: class that wraps the logical name (String) of the 
corresponding type (aka *object-type*)
 # {{ApplicationFeatureId}}: Similar to Identifier, but splits the logical type 
name or member name into its parts: PACKAGE, CLASS, MEMBER which with logical 
name support now need to be interpreted as NAMESPACE, LOGICAL-TYPE-SIMPLE-NAME 
and MEMBER-NAME, where the member part (as I understand it) for actions only is 
that action's name with its parameter list omitted.

 

Further discussion:

* Dan - To me, it looks like TypeIdentifier and ObjectSpecId both describe a 
type (aka ObjectSpecification)
* Andi - correct
* Dan -  Meanwhile Identifier is kind of a superclass that represents either 
types or `ApplicationFeatureId`s
 
* Dan - And we perhaps should rename from PACKAGE to NAMESPACE, etc, if that's 
what these now are.
* Andi - Was my first thought today when I woke up, renaming those fields 
within ApplicationFeatureId.
 



--
This message was sent by Atlassian Jira
(v8.3.4#803005)

Reply via email to