The Descriptor API can be used to define, or amend EclipseLink descriptors through Java code. The Descriptor API classes are mainly in the org.eclipse.persistence.descriptors package. These include the following classes:
ClassDescriptor (abstract generic Descriptor API)
RelationalDescriptor (relational project-specific API)
DescriptorEventManager (event API)
DescriptorQueryManager (query API)
InheritancePolicy
InterfacePolicy
ReturningPolicy
Locking policies (various optimistic locking policies)
The Descriptor API also includes these non-relational descriptors:
org.eclipse.persistence.oxm.XMLDescriptor
org.eclipse.persistence.eis.EISDescriptor
For object-relational data type and XML projects, descriptor classes are in the org.eclipse.persistence.mappings.structures and org.eclipse.persistence.oxm packages, respectively.
The following illustrates the hierarchy of descriptor types that derive from the class org.eclipse.persistence.descriptors.ClassDescriptor.
class org.eclipse.persistence.descriptors.ClassDescriptor
class org.eclipse.persistence.descriptors.RelationalDescriptor
class org.eclipse.persistence.mappings.structures.ObjectRelationalDataTypeDescriptor
class org.eclipse.persistence.oxm.XMLDescriptor