| ActionsDefineable |
This entity supports custom actions (as defined by RoR and REST microformat:
http://microformats.org/wiki/rest/urls)
This is the more controllable version, use ActionsExecutable if you
want to use the conventions and allow the system to detect your custom actions based
on method names and annotations
This means that there are custom actions which can be invoked on entities or entity spaces,
custom actions can augment the current entity operation or they can completely
change the behavior and skip the current operation entirely
You can create methods in your entity provider which either end with "CustomAction"
or use the EntityCustomAction suffix to define the custom actions
You can describe the actions using the Describeable key: .action. = description
If you want more control then you can use ActionsExecutionControllable
|
| ActionsExecutable |
This entity supports custom actions (as defined by RoR and REST microformat:
http://microformats.org/wiki/rest/urls)
This means that there are custom actions which can be invoked on entities or entity spaces,
custom actions can augment the current entity operation or they can completely
change the behavior and skip the current operation entirely
You can create methods in your entity provider which either end with "CustomAction"
or use the EntityCustomAction suffix to define the custom actions
You can describe the actions using the Describeable key: .action. = description
If you want more control then you can use ActionsDefineable and ActionsExecutionControllable
|
| Browseable |
This indicates that this entity will participate in browse functionality for entities,
For example, it will provide lists of entities which are visible to users in locations
which can be looked through and selected
This is the root interface for browsing entities and does not do anything by itself,
you must add at least BrowseableCollection or BrowseSearchable interface to this
If your entities are nested then the nested ones will need to implement BrowseNestable
Entities which do not implement this will not appear in lists of entities which are being browsed
Internationalization keys:
{prefix}.browse = the name to show in the browse list for this entity
{prefix}.browse.description = the optional description that is viable to show in the browse list for this entity
This is one of the capability extensions for the EntityProvider interface
|
| CollectionResolvable |
This type of entity supports retrieval of entities in a collection based on a search,
this will be invoked when an entity space is accessed (/prefix) rather than accessing an individual
entity (/prefix/id)
The data is returned as a list of entity objects ( Object, Map, whatever POJO, etc.)
|
| Createable |
This entity type can be created (this is the C in CRUD),
the current user id should be used for permissions checking in most cases
This is one of the capability extensions for the EntityProvider interface
|
| CRUDable |
A convenient interface to define that this entity type supports all CRUD operations
This is one of the capability extensions for the EntityProvider interface
|
| Deleteable |
This entity type can be deleted (this is the D in CRUD),
the current user id should be used for permissions checking in most cases
This is one of the capability extensions for the EntityProvider interface
|
| Describeable |
This entity will describe itself,
this description can be accessed for display in interfaces,
the description should generally be targeted at developers
(in particular, those using REST or web services)
This is the convention interface, it will simply look for the properties file
in the classloader which your EntityProvider is located in,
the file must be named <entity-prefix>.properties (e.g. myentity.properties)
The keys inside the file must be as follows:
<entity-prefix> = This is the main description of the entity, appears at the top
<entity-prefix>.view.<viewKey> = This is a description about a particular view for an entity (viewKey from entity view constants EntityView.VIEW_LIST)
<entity-prefix>.action.<actionKey> = This is a description of a custom action for this entity (see ActionsExecutable or EntityCustomAction)
<entity-prefix>.field.<fieldName> = This is a description about a particular entity field for this entity object (see Resolvable or CollectionResolvable)
<entity-prefix>.redirect.<redirectTemplate> = This is a description about a particular redirect rule for this entity URL space (see Redirectable or EntityURLRedirect)
<entity-prefix>.<capability> = This is a description about a particular capability for this entity
Example:
myentity = This is my entity, it is used for examples only
myentity.view.show = this shows a single instance of my entity
myentity.action.copy = this makes a copy of an instance of a myentity
myentity.field.name = this is the name of the entity, it is a user displayable name
myentity.redirect.
|
| Exportable |
Indicates an entity provider has the capability of exporting entity data which is related to
other entities, note that the decision about which data to export is left up to the implementor
based on the reference supplied This is one of the capability extensions for the
EntityProvider interface
|
| Inputable |
These entities can be entered as certain input formats which are handled automatically
and translated into entity objects (of the type defined by Sampleable)
If you want to define the way the input is translated instead of using the internal methods
then use InputTranslatable
NOTE: By default all entity view requests go through to the available access providers:
EntityViewAccessProvider or HttpServletAccessProvider
|
| Outputable |
These entities can be returned as certain output formats which are handled automatically
If you want to define the data that is returned instead of using the internal methods
then use OutputFormattable
NOTE: By default all entity view requests go through to the available access providers:
EntityViewAccessProvider or HttpServletAccessProvider
NOTE: there is no internal handling of HTML, it will always redirect to the the available access provider
if there is one (if there is not one then the entity will be toStringed)
|
| Propertyable |
Allows entities handled by the entity provider which implements this interface to have meta properties
attached to them, properties can be accessed via the EntityBroker, properties will be
stored and retrieved using the internal entity property retrieval implementation
For our usage, meta properties are extra or additional properties that are attached to an entity
at runtime but are persisted so they can be retrieved later
WARNING: this should be used only for properties of entities which will be accessed very
lightly, for production level access OR the ability to control how properties are stored on your
own entities, you should use the PropertyProvideable instead
This is one of the capability extensions for the EntityProvider interface
|
| Redirectable |
This entity type has the ability to define and handle configurable URLs,
URLs like this can be handled and supported:
/gradebook/7890/student/70987 to view all the grades for a student from a course
/gradebook/6758/item/Quiz1 to view a particular item in a gradebook by it's human readable name
/gradebook/item/6857657 to maybe just a view an item by its unique id.
|
| Resolvable |
Allows the entities handled by this provider to be accessed directly as objects,
this is also the interface for "reading" entities (this is the R in CRUD)
This is also used for resolving the type of entities
This is one of the capability extensions for the EntityProvider interface
|
| Sampleable |
This entity type can be known and this allows access to a sample object which represents it,
the sample object can be of any type including a POJO, a Map, etc.
This is one of the capability extensions for the EntityProvider interface
|
| Saveable |
Convenience interface to indicates that an entity is can be saved,
i.e. it is creatable and updateable
|
| Taggable |
Allows an entity to have tags associated with it which can be searched for or simply used as a
way to link to this entity
This uses the internal tag storage mechanism or a central tag storage mechanism
to store the tag applications
This is one of the capability extensions for the EntityProvider interface
|
| Updateable |
This entity type can be updated (this is the U in CRUD),
the current user id should be used for permissions checking in most cases
This is one of the capability extensions for the EntityProvider interface
|