# Class PersistentObjectDescriptorFactory

java.lang.Object
org.apache.cayenne.reflect.PersistentDescriptorFactory
org.apache.cayenne.reflect.generic.PersistentObjectDescriptorFactory

All Implemented Interfaces:
  `ClassDescriptorFactory`

public class PersistentObjectDescriptorFactory extends PersistentDescriptorFactory
A `ClassDescriptorFactory` that creates descriptors for classes implementing `Persistent`.

Since:
  3.0

- ## Field Summary

  Fields
  Modifier and Type
  Field
  Description
  `protected FaultFactory`
  `faultFactory`
  `protected ValueComparisonStrategyFactory`
  `valueComparisonStrategyFactory`

  ### Fields inherited from class PersistentDescriptorFactory

  `descriptorMap`

- ## Constructor Summary

  Constructors
  Constructor
  Description
  `PersistentObjectDescriptorFactory(ClassDescriptorMap descriptorMap, FaultFactory faultFactory, ValueComparisonStrategyFactory valueComparisonStrategyFactory)`

- ## Method Summary

  Modifier and Type
  Method
  Description
  `protected Accessor`
  `createAccessor(PersistentDescriptor descriptor, String propertyName, Class<?> propertyType)`
  Creates an accessor for the property.
  `protected void`
  `createAttributeProperty(PersistentDescriptor descriptor, ObjAttribute attribute)`
  `protected void`
  `createToManyCollectionProperty(PersistentDescriptor descriptor, ObjRelationship relationship)`
  `protected void`
  `createToManyListProperty(PersistentDescriptor descriptor, ObjRelationship relationship)`
  `protected void`
  `createToManyMapProperty(PersistentDescriptor descriptor, ObjRelationship relationship)`
  `protected void`
  `createToManySetProperty(PersistentDescriptor descriptor, ObjRelationship relationship)`
  `protected void`
  `createToOneProperty(PersistentDescriptor descriptor, ObjRelationship relationship)`
  `protected ClassDescriptor`
  `getDescriptor(ObjEntity entity, Class<?> entityClass)`

  ### Methods inherited from class PersistentDescriptorFactory

  `createDescriptor, createEmbeddableAccessor, createEmbeddableDescriptor, createEmbeddedAttributeProperty, createMapKeyAccessor, getDescriptor, indexAdditionalDbEntities, indexQualifiers, indexRootDbEntities, indexSubclassDescriptors, indexSuperclassProperties`

  ### Methods inherited from class Object

  `clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait`

- ## Field Details

  - ### faultFactory

    protected FaultFactory faultFactory

  - ### valueComparisonStrategyFactory

    protected ValueComparisonStrategyFactory valueComparisonStrategyFactory

- ## Constructor Details

  - ### PersistentObjectDescriptorFactory

    public PersistentObjectDescriptorFactory(ClassDescriptorMap descriptorMap, FaultFactory faultFactory, ValueComparisonStrategyFactory valueComparisonStrategyFactory)

- ## Method Details

  - ### getDescriptor

    protected ClassDescriptor getDescriptor(ObjEntity entity, Class<?> entityClass)
    Overrides:
      `getDescriptor` in class `PersistentDescriptorFactory`

  - ### createAttributeProperty

    protected void createAttributeProperty(PersistentDescriptor descriptor, ObjAttribute attribute)
    Overrides:
      `createAttributeProperty` in class `PersistentDescriptorFactory`

  - ### createToManyListProperty

    protected void createToManyListProperty(PersistentDescriptor descriptor, ObjRelationship relationship)
    Specified by:
      `createToManyListProperty` in class `PersistentDescriptorFactory`

  - ### createToManyMapProperty

    protected void createToManyMapProperty(PersistentDescriptor descriptor, ObjRelationship relationship)
    Specified by:
      `createToManyMapProperty` in class `PersistentDescriptorFactory`

  - ### createToManySetProperty

    protected void createToManySetProperty(PersistentDescriptor descriptor, ObjRelationship relationship)
    Specified by:
      `createToManySetProperty` in class `PersistentDescriptorFactory`

  - ### createToManyCollectionProperty

    protected void createToManyCollectionProperty(PersistentDescriptor descriptor, ObjRelationship relationship)
    Specified by:
      `createToManyCollectionProperty` in class `PersistentDescriptorFactory`

  - ### createToOneProperty

    protected void createToOneProperty(PersistentDescriptor descriptor, ObjRelationship relationship)
    Specified by:
      `createToOneProperty` in class `PersistentDescriptorFactory`

  - ### createAccessor

    protected Accessor createAccessor(PersistentDescriptor descriptor, String propertyName, Class<?> propertyType) throws PropertyException
    Description copied from class: `PersistentDescriptorFactory`
    Creates an accessor for the property.
    Overrides:
      `createAccessor` in class `PersistentDescriptorFactory`
    Throws:
      `PropertyException`