BeanSort (enum)
Top level object classification.
API
enum BeanSort {
VIEW_MODEL (1)
ENTITY (2)
MANAGED_BEAN_CONTRIBUTING (3)
MANAGED_BEAN_NOT_CONTRIBUTING (4)
MIXIN (5)
VALUE (6)
COLLECTION (7)
ABSTRACT (8)
PROGRAMMATIC (9)
VETOED (10)
UNKNOWN
BeanPolicy policy()
boolean isManagedBeanContributing()
boolean isManagedBeanNotContributing()
boolean isMixin()
boolean isViewModel()
boolean isValue()
boolean isCollection()
boolean isEntity()
boolean isAbstract()
boolean isProgrammatic()
boolean isVetoed()
boolean isUnknown()
boolean isManagedBeanAny()
}
1 | VIEW_MODEL
Stateful object, with a state that can be marshaled and unmarshaled. |
2 | ENTITY
Persistable object, associated with a persistence layer/context. |
3 | MANAGED_BEAN_CONTRIBUTING
Injectable object, associated with a lifecycle context (application-scoped, request-scoped, …). |
4 | MANAGED_BEAN_NOT_CONTRIBUTING
Injectable object, associated with a lifecycle context (application-scoped, request-scoped, …). |
5 | MIXIN
Object associated with an entity , viewmodel or domain-service to act as contributer of a single domain-action or domain-property or domain-collection . |
6 | VALUE
Immutable, serializable object. Values (including enums) my have object support methods, hence needs introspection. |
7 | COLLECTION
Container of objects. |
8 | ABSTRACT
A non concrete type, that is a placeholder for a concrete implementer. |
9 | PROGRAMMATIC
Type must NOT be added to the meta-model, eg. by means of org.apache.causeway.applib.annotation.Domain.Exclude or Programmatic . Consequently the specification-loader should skip introspection of those types. |
10 | VETOED
Type must not be added to the meta-model, eg. by means of javax.enterprise.inject.Vetoed or Profile . Consequently the specification-loader should skip introspection of those types. If discovered by Spring during class-path scanning, we remove the corresponding BeanDefinition . |
Members
VIEW_MODEL
Stateful object, with a state that can be marshaled and unmarshaled.
Includes classes annotated with @DomainObject , when not associated with a persistence layer.
see also #ENTITY
ENTITY
Persistable object, associated with a persistence layer/context.
Includes classes annotated with @DomainObject , when associated with a persistence layer.
see also #VIEW_MODEL
MANAGED_BEAN_CONTRIBUTING
Injectable object, associated with a lifecycle context (application-scoped, request-scoped, …).
In other words: Indicates that the class is a Spring managed bean, which IS also contributing to the UI or WEB API. Hence needs introspection.
The ServiceRegistry must be aware.
to be introspected: YES
MANAGED_BEAN_NOT_CONTRIBUTING
Injectable object, associated with a lifecycle context (application-scoped, request-scoped, …).
In other words: Indicates that the class is a Spring managed bean, which is NOT contributing to the UI or WEB API. Hence not introspected.
The ServiceRegistry must be aware regardless.
This is also the fallback BeanSort for beans originating from Bean annotated factory methods, when the bean class itself declares no annotations.
to be introspected: NO
MIXIN
Object associated with an entity , viewmodel or domain-service to act as contributer of a single domain-action or domain-property or domain-collection .
VALUE
Immutable, serializable object. Values (including enums) my have object support methods, hence needs introspection.
ABSTRACT
A non concrete type, that is a placeholder for a concrete implementer.
E.g. action return types or collection element types could be interfaces or abstract types (as discovered by reflection during introspection)
PROGRAMMATIC
Type must NOT be added to the meta-model, eg. by means of org.apache.causeway.applib.annotation.Domain.Exclude or Programmatic . Consequently the specification-loader should skip introspection of those types.
In other words: Indicates that the class is some bean, which is NOT contributing to the UI or WEB API, and also NOT managed by Spring.
ServiceRegistry will NOT be aware.
FactoryService#create(Class) will nevertheless support those programmatic beans. They may have injection points that need resolving.
VETOED
Type must not be added to the meta-model, eg. by means of javax.enterprise.inject.Vetoed or Profile . Consequently the specification-loader should skip introspection of those types. If discovered by Spring during class-path scanning, we remove the corresponding BeanDefinition .
ServiceRegistry must not be aware of those types.
FactoryService#getOrCreate(Class) must fail for those types.