} else if (accessibleObject.isVersion(this)) {
return new VersionAccessor(accessibleObject.getAnnotation(Version.class), accessibleObject, this);
} else if (accessibleObject.isId(this) && ! accessibleObject.isDerivedId(this)) {
return new IdAccessor(accessibleObject.getAnnotation(Id.class), accessibleObject, this);
} else if (accessibleObject.isDerivedIdClass(this)) {
return new DerivedIdClassAccessor(accessibleObject, this);
} else if (accessibleObject.isBasic(this)) {
return new BasicAccessor(accessibleObject.getAnnotation(Basic.class), accessibleObject, this);
} else if (accessibleObject.isEmbedded(this)) {
return new EmbeddedAccessor(accessibleObject.getAnnotation(Embedded.class), accessibleObject, this);
} else if (accessibleObject.isEmbeddedId(this)) {