if (accessibleObject.isBasicCollection(this)) {
return new BasicCollectionAccessor(accessibleObject.getAnnotation(BasicCollection.class), accessibleObject, this);
} else if (accessibleObject.isBasicMap(this)) {
return new BasicMapAccessor(accessibleObject.getAnnotation(BasicMap.class), accessibleObject, this);
} else if (accessibleObject.isArray(this)) {
return new ArrayAccessor(accessibleObject.getAnnotation(Array.class), accessibleObject, this);
} else if (accessibleObject.isElementCollection(this)) {
return new ElementCollectionAccessor(accessibleObject.getAnnotation(JPA_ELEMENT_COLLECTION), accessibleObject, this);
} else if (accessibleObject.isVersion(this)) {
return new VersionAccessor(accessibleObject.getAnnotation(JPA_VERSION), accessibleObject, this);
} else if (accessibleObject.isId(this) && ! accessibleObject.isDerivedId(this)) {