org.apache.openjpa.meta
Class AbstractMetaDataDefaults

java.lang.Object
  extended by org.apache.openjpa.meta.AbstractMetaDataDefaults
All Implemented Interfaces:
CallbackModes, MetaDataDefaults
Direct Known Subclasses:
PersistenceMetaDataDefaults

public abstract class AbstractMetaDataDefaults
extends Object
implements MetaDataDefaults

Abstract implementation provides a set of generic utilities for detecting persistence meta-data of Field/Member. Also provides bean-style properties such as access style or identity type to be used by default when such information is not derivable from available meta-data.

Author:
Abe White, Pinaki Poddar

Field Summary
 
Fields inherited from interface org.apache.openjpa.event.CallbackModes
CALLBACK_FAIL_FAST, CALLBACK_IGNORE, CALLBACK_LOG, CALLBACK_RETHROW, CALLBACK_ROLLBACK
 
Constructor Summary
AbstractMetaDataDefaults()
           
 
Method Summary
 Member getBackingMember(FieldMetaData fmd)
          Gets the backing member of the given field.
 int getCallbackMode()
          What to do on lifecycle callback exceptions.
 boolean getCallbacksBeforeListeners(int type)
          If callbacks are fired before listeners for the given event type.
 int getDefaultAccessType()
          The default access type for base classes with ACCESS_UNKNOWN.
 int getDefaultIdentityType()
          The default identity type for unmapped classes without primary key fields.
protected  List<String> getFieldAccessNames(ClassMetaData meta)
          Return the list of fields in meta that use field access, or null if a list of fields is unobtainable.
static String getFieldName(Member member)
          Return the field name for the given member.
 boolean getIgnoreNonPersistent()
           
protected abstract  List<Member> getPersistentMembers(ClassMetaData meta, boolean ignoreTransient)
           
protected  List<String> getPropertyAccessNames(ClassMetaData meta)
          Return the list of methods in meta that use property access, or null if a list of methods is unobtainable.
 Class<?> getUnimplementedExceptionType()
          Return a runtime exception class to throw for un-implemented managed interface methods.
 boolean getUsePCRegistry()
          Whether to attempt to use the information from registered classes to populate metadata defaults.
static boolean isBoolean(Class<?> cls)
           
static boolean isBooleanGetter(Method method)
          Affirms if the given method matches the following signature public boolean isXXX() public Boolean isXXX()
 boolean isDataStoreObjectIdFieldUnwrapped()
          Whether the field in the object id class corresponding to a datastore id persistence-capable primary key field is the simple datastore id value of the related instance.
 boolean isDeclaredInterfacePersistent()
          Whether declared interfaces of a class are treated as persistent types.
protected abstract  boolean isDefaultPersistent(ClassMetaData meta, Member member, String name, boolean ignoreTransient)
          Return true if the given member is persistent by default.
static boolean isGetter(Method method, boolean includePrivate)
          Affirms if the given method signature matches bean-style getter method signature.
public T getXXX() where T is any non-void type.
or
public T isXXX() where T is boolean or Boolean.
static boolean isNormalGetter(Method method)
          Affirms if the given method matches the following signature public T getXXX() where T is any non-void type.
protected  boolean isReservedFieldName(String name)
          Returns true if the given field name is reserved for unmanaged fields.
protected static boolean isUserDefined(Class<?> cls)
          Helper method; returns true if the given class appears to be user-defined.
 void populate(ClassMetaData meta, int access)
          Populate the given metadata with default settings.
 void populate(ClassMetaData meta, int access, boolean ignoreTransient)
          Populate the given metadata with default settings.
protected  void populate(FieldMetaData fmd)
           
 void setCallbackMode(int mode)
           
 void setCallbackMode(int mode, boolean on)
           
 void setDataStoreObjectIdFieldUnwrapped(boolean unwrapped)
           
 void setDeclaredInterfacePersistent(boolean pers)
           
 void setDefaultAccessType(int access)
          The default access type for base classes with ACCESS_UNKNOWN.
 void setDefaultIdentityType(int identity)
          The default identity type for unmapped classes without primary key fields.
 void setIgnoreNonPersistent(boolean ignore)
          Whether to ignore members which are not persistent by default during metadata population.
 void setUsePCRegistry(boolean pcRegistry)
          Whether to attempt to use the information from registered classes to populate metadata defaults.
static boolean startsWith(String full, String head)
          Affirms if the given full string starts with the given head.
static List<String> toNames(List<? extends Member> members)
           
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 
Methods inherited from interface org.apache.openjpa.meta.MetaDataDefaults
getMemberByProperty, isAbstractMappingUniDirectional, isNonDefaultMappingAllowed
 

Constructor Detail

AbstractMetaDataDefaults

public AbstractMetaDataDefaults()
Method Detail

getUsePCRegistry

public boolean getUsePCRegistry()
Whether to attempt to use the information from registered classes to populate metadata defaults. Defaults to true.


setUsePCRegistry

public void setUsePCRegistry(boolean pcRegistry)
Whether to attempt to use the information from registered classes to populate metadata defaults. Defaults to true.


getDefaultAccessType

public int getDefaultAccessType()
The default access type for base classes with ACCESS_UNKNOWN. ACCESS_FIELD by default.

Specified by:
getDefaultAccessType in interface MetaDataDefaults

setDefaultAccessType

public void setDefaultAccessType(int access)
The default access type for base classes with ACCESS_UNKNOWN. ACCESS_FIELD by default.


getDefaultIdentityType

public int getDefaultIdentityType()
The default identity type for unmapped classes without primary key fields. ID_UNKNOWN by default.

Specified by:
getDefaultIdentityType in interface MetaDataDefaults

setDefaultIdentityType

public void setDefaultIdentityType(int identity)
The default identity type for unmapped classes without primary key fields. ID_UNKNOWN by default.


getCallbackMode

public int getCallbackMode()
Description copied from interface: MetaDataDefaults
What to do on lifecycle callback exceptions.

Specified by:
getCallbackMode in interface MetaDataDefaults

setCallbackMode

public void setCallbackMode(int mode)

setCallbackMode

public void setCallbackMode(int mode,
                            boolean on)

getCallbacksBeforeListeners

public boolean getCallbacksBeforeListeners(int type)
Description copied from interface: MetaDataDefaults
If callbacks are fired before listeners for the given event type. Defaults to false.

Specified by:
getCallbacksBeforeListeners in interface MetaDataDefaults

isDeclaredInterfacePersistent

public boolean isDeclaredInterfacePersistent()
Description copied from interface: MetaDataDefaults
Whether declared interfaces of a class are treated as persistent types. Defaults to true.

Specified by:
isDeclaredInterfacePersistent in interface MetaDataDefaults

setDeclaredInterfacePersistent

public void setDeclaredInterfacePersistent(boolean pers)

isDataStoreObjectIdFieldUnwrapped

public boolean isDataStoreObjectIdFieldUnwrapped()
Description copied from interface: MetaDataDefaults
Whether the field in the object id class corresponding to a datastore id persistence-capable primary key field is the simple datastore id value of the related instance. Defaults to false.

Specified by:
isDataStoreObjectIdFieldUnwrapped in interface MetaDataDefaults

setDataStoreObjectIdFieldUnwrapped

public void setDataStoreObjectIdFieldUnwrapped(boolean unwrapped)

getIgnoreNonPersistent

public boolean getIgnoreNonPersistent()

setIgnoreNonPersistent

public void setIgnoreNonPersistent(boolean ignore)
Description copied from interface: MetaDataDefaults
Whether to ignore members which are not persistent by default during metadata population. Defaults to true.

Specified by:
setIgnoreNonPersistent in interface MetaDataDefaults

populate

public void populate(ClassMetaData meta,
                     int access)
Description copied from interface: MetaDataDefaults
Populate the given metadata with default settings.

Specified by:
populate in interface MetaDataDefaults
access - access type constant from ClassMetaData

populate

public void populate(ClassMetaData meta,
                     int access,
                     boolean ignoreTransient)
Description copied from interface: MetaDataDefaults
Populate the given metadata with default settings.

Specified by:
populate in interface MetaDataDefaults
access - access type constant from ClassMetaData

getPersistentMembers

protected abstract List<Member> getPersistentMembers(ClassMetaData meta,
                                                     boolean ignoreTransient)

populate

protected void populate(FieldMetaData fmd)

getFieldAccessNames

protected List<String> getFieldAccessNames(ClassMetaData meta)
Return the list of fields in meta that use field access, or null if a list of fields is unobtainable. An empty list should be returned if the list of fields is obtainable, but there happens to be no field access in meta. This is used for error reporting purposes only, so need not be efficient. This implementation returns null.


getPropertyAccessNames

protected List<String> getPropertyAccessNames(ClassMetaData meta)
Return the list of methods in meta that use property access, or null if a list of methods is unobtainable. An empty list should be returned if the list of methods is obtainable, but there happens to be no property access in meta. This is used for error reporting purposes only, so need not be efficient. This implementation returns null.


getFieldName

public static String getFieldName(Member member)
Return the field name for the given member. This will only be invoked on members of the right type (field vs. method). Return null if the member cannot be managed. Default behavior: For fields, returns the field name. For getter methods, returns the minus "get" or "is" with the next letter lower-cased. For other methods, returns null.


isReservedFieldName

protected boolean isReservedFieldName(String name)
Returns true if the given field name is reserved for unmanaged fields.


isDefaultPersistent

protected abstract boolean isDefaultPersistent(ClassMetaData meta,
                                               Member member,
                                               String name,
                                               boolean ignoreTransient)
Return true if the given member is persistent by default. This will only be invoked on members of the right type (field vs. method). Returns false if member is static or final by default.

Parameters:
name - the field name from getFieldName(java.lang.reflect.Member)

getBackingMember

public Member getBackingMember(FieldMetaData fmd)
Gets the backing member of the given field. If the field has not been assigned a backing member then get either the instance field or the getter method depending upon the access style of the defining class.
Defining class is used instead of declaring class because this method may be invoked during parsing phase when declaring metadata may not be available.

Specified by:
getBackingMember in interface MetaDataDefaults

getUnimplementedExceptionType

public Class<?> getUnimplementedExceptionType()
Description copied from interface: MetaDataDefaults
Return a runtime exception class to throw for un-implemented managed interface methods.

Specified by:
getUnimplementedExceptionType in interface MetaDataDefaults

isUserDefined

protected static boolean isUserDefined(Class<?> cls)
Helper method; returns true if the given class appears to be user-defined.


isNormalGetter

public static boolean isNormalGetter(Method method)
Affirms if the given method matches the following signature public T getXXX() where T is any non-void type.


isBooleanGetter

public static boolean isBooleanGetter(Method method)
Affirms if the given method matches the following signature public boolean isXXX() public Boolean isXXX()


isGetter

public static boolean isGetter(Method method,
                               boolean includePrivate)
Affirms if the given method signature matches bean-style getter method signature.
public T getXXX() where T is any non-void type.
or
public T isXXX() where T is boolean or Boolean.


startsWith

public static boolean startsWith(String full,
                                 String head)
Affirms if the given full string starts with the given head.


isBoolean

public static boolean isBoolean(Class<?> cls)

toNames

public static List<String> toNames(List<? extends Member> members)


Copyright © 2006-2010 Apache Software Foundation. All Rights Reserved.