Class Diagram
The diagram below shows a simplified version of Apache Causeway' internal metamodel.
hide empty members
skinparam class {
BackgroundColor<<desc>> Cyan
BackgroundColor<<ppt>> LightGreen
BackgroundColor<<mi>> LightPink
BackgroundColor<<role>> LightYellow
BackgroundColor<<strategy>> White
BackgroundColor<<api>> White
BackgroundColor<<spi>> White
BackgroundColor<<internal>> LightGrey
BackgroundColor<<value>> White
BackgroundColor<<entity>> LightGreen
BackgroundColor<<viewmodel>> LightPink
BackgroundColor<<mixin>> LightYellow
}
package metamodel {
class LogicalType<<value>> {
+type
}
class Object\nSpecification<<desc>> {
+objectSpecId
....
-fullyQualifiedClassName
}
class Object\nMember<<desc>> {
}
class Object\nAction<<desc>> {
}
class Object\nAssociation<<desc>> {
}
class OneToOne\nAssociation<<desc>> {
}
class OneToMany\nAssociation<<desc>> {
}
interface FacetHolder<<desc>> {
}
class Object\nActionParameter<<desc>> {
}
class OneToOne\nActionParameter<<desc>> {
}
interface Facet<<desc>> {
}
class OneToMany\nActionParameter<<desc>> {
}
}
package runtime {
class ManagedObject<<ppt>> {
+getSpecification()
+getPojo()
}
class Bookmark<<value>> {
}
}
Object\nSpecification -up-> LogicalType
Object\nSpecification -down-> "*" Object\nMember
Object\nMember ^-down- Object\nAssociation
Object\nMember ^-down- Object\nAction
Object\nAssociation ^-down- OneToOne\nAssociation
Object\nAssociation ^-down- OneToMany\nAssociation
Object\nActionParameter ^-down- OneToOne\nActionParameter
Object\nActionParameter ^-down- OneToMany\nActionParameter
Object\nAction -left-> "*" Object\nActionParameter
FacetHolder ^-.left- Object\nSpecification
FacetHolder ^-.down- Object\nMember
FacetHolder ^-.down- Object\nActionParameter
FacetHolder -right-> "*" Facet
ManagedObject -up-> Bookmark
Bookmark -right-> LogicalType
where in the metamodel package:
ObjectSpecification-
is equivalent to
java.lang.Class LogicalType-
is a value object equivalent to the
@Named#valueattribute OneToOneAssociation-
represents a scalar property
OneToManyAssociation-
represents a collection
ObjectAction-
represents an action (with multiple parameters, either scalar or list)
and in the runtime package:
Bookmark-
is equivalent to a tuple of
LogicalTypeand an Identifier, appears in URLs in the Wicket and Restful Objects viewers ManagedObject-
is equivalent to
java.lang.Object