Package org.apache.openjpa.persistence
Class PersistenceMetaDataDefaults
- java.lang.Object
-
- org.apache.openjpa.meta.AbstractMetaDataDefaults
-
- org.apache.openjpa.persistence.PersistenceMetaDataDefaults
-
- All Implemented Interfaces:
CallbackModes
,MetaDataDefaults
public class PersistenceMetaDataDefaults extends AbstractMetaDataDefaults
JPA-based metadata defaults.- Author:
- Patrick Linskey, Abe White, Pinaki Poddar
-
-
Field Summary
Fields Modifier and Type Field Description protected org.apache.openjpa.persistence.PersistenceMetaDataDefaults.AnnotatedFilter
annotatedFilter
protected org.apache.openjpa.persistence.PersistenceMetaDataDefaults.AccessFilter
fieldAccessFilter
protected org.apache.openjpa.persistence.PersistenceMetaDataDefaults.MemberFilter
fieldFilter
protected org.apache.openjpa.persistence.PersistenceMetaDataDefaults.GetterFilter
getterFilter
protected org.apache.openjpa.persistence.PersistenceMetaDataDefaults.MemberFilter
methodFilter
protected org.apache.openjpa.persistence.PersistenceMetaDataDefaults.TransientFilter
nonTransientFilter
protected org.apache.openjpa.persistence.PersistenceMetaDataDefaults.AccessFilter
propertyAccessFilter
Set of Inclusion Filters based on member type, access type or transient annotations.protected org.apache.openjpa.persistence.PersistenceMetaDataDefaults.SetterFilter
setterFilter
-
Fields inherited from interface org.apache.openjpa.event.CallbackModes
CALLBACK_FAIL_FAST, CALLBACK_IGNORE, CALLBACK_LOG, CALLBACK_RETHROW, CALLBACK_ROLLBACK
-
-
Constructor Summary
Constructors Constructor Description PersistenceMetaDataDefaults()
-
Method Summary
All Methods Static Methods Instance Methods Concrete Methods Modifier and Type Method Description java.lang.String
getDefaultSchema()
Returns the default schema.protected java.util.List<java.lang.String>
getFieldAccessNames(ClassMetaData meta)
Return the list of fields inmeta
that use field access, ornull
if a list of fields is unobtainable.java.lang.reflect.Member
getMemberByProperty(ClassMetaData meta, java.lang.String property, int access, boolean applyDefaultRule)
Gets either the instance field or the getter method depending upon the access style of the given meta-data.static PersistenceStrategy
getPersistenceStrategy(FieldMetaData fmd, java.lang.reflect.Member member)
Return the code for the strategy of the given member.static PersistenceStrategy
getPersistenceStrategy(FieldMetaData fmd, java.lang.reflect.Member member, boolean ignoreTransient)
Return the code for the strategy of the given member.java.util.List<java.lang.reflect.Member>
getPersistentMembers(ClassMetaData meta, boolean ignoreTransient)
Gets the members that are backing members for attributes being persisted.protected java.util.List<java.lang.String>
getPropertyAccessNames(ClassMetaData meta)
Return the list of methods inmeta
that use property access, ornull
if a list of methods is unobtainable.boolean
isAbstractMappingUniDirectional(OpenJPAConfiguration conf)
Whether the relationship in MappedSuper class must be uni-directional.java.lang.Boolean
isDefaultCascadePersistEnabled()
Whether cascade-persist was declared in the persistence unit defaults.protected boolean
isDefaultPersistent(ClassMetaData meta, java.lang.reflect.Member member, java.lang.String name)
protected boolean
isDefaultPersistent(ClassMetaData meta, java.lang.reflect.Member member, java.lang.String name, boolean ignoreTransient)
Return true if the given member is persistent by default.boolean
isNonDefaultMappingAllowed(OpenJPAConfiguration conf)
Whether non-default mapping is allowed.void
populate(ClassMetaData meta, int access)
Populates the given class metadata.void
populate(ClassMetaData meta, int access, boolean ignoreTransient)
Populates the given class metadata.protected void
populate(FieldMetaData fmd)
void
setAbstractMappingUniDirectional(OpenJPAConfiguration conf)
void
setDefaultAccessType(java.lang.String type)
Auto-configuration method for the default access type of base classes with ACCESS_UNKNOWNvoid
setDefaultCascadePersistEnabled(java.lang.Boolean bool)
void
setDefaultSchema(java.lang.String schema)
Sets the default schema.void
setNonDefaultMappingAllowed(OpenJPAConfiguration conf)
-
Methods inherited from class org.apache.openjpa.meta.AbstractMetaDataDefaults
getBackingMember, getCallbackMode, getCallbacksBeforeListeners, getDefaultAccessType, getDefaultIdentityType, getFieldName, getIgnoreNonPersistent, getUnimplementedExceptionType, getUsePCRegistry, isBoolean, isBooleanGetter, isDataStoreObjectIdFieldUnwrapped, isDeclaredInterfacePersistent, isGetter, isNormalGetter, isReservedFieldName, isUserDefined, setCallbackMode, setCallbackMode, setDataStoreObjectIdFieldUnwrapped, setDeclaredInterfacePersistent, setDefaultAccessType, setDefaultIdentityType, setIgnoreNonPersistent, setUsePCRegistry, startsWith, toNames
-
-
-
-
Field Detail
-
propertyAccessFilter
protected org.apache.openjpa.persistence.PersistenceMetaDataDefaults.AccessFilter propertyAccessFilter
Set of Inclusion Filters based on member type, access type or transient annotations. Used to determine the persistent field/methods.
-
fieldAccessFilter
protected org.apache.openjpa.persistence.PersistenceMetaDataDefaults.AccessFilter fieldAccessFilter
-
fieldFilter
protected org.apache.openjpa.persistence.PersistenceMetaDataDefaults.MemberFilter fieldFilter
-
methodFilter
protected org.apache.openjpa.persistence.PersistenceMetaDataDefaults.MemberFilter methodFilter
-
nonTransientFilter
protected org.apache.openjpa.persistence.PersistenceMetaDataDefaults.TransientFilter nonTransientFilter
-
annotatedFilter
protected org.apache.openjpa.persistence.PersistenceMetaDataDefaults.AnnotatedFilter annotatedFilter
-
getterFilter
protected org.apache.openjpa.persistence.PersistenceMetaDataDefaults.GetterFilter getterFilter
-
setterFilter
protected org.apache.openjpa.persistence.PersistenceMetaDataDefaults.SetterFilter setterFilter
-
-
Method Detail
-
getPersistenceStrategy
public static PersistenceStrategy getPersistenceStrategy(FieldMetaData fmd, java.lang.reflect.Member member)
Return the code for the strategy of the given member. Return null if no strategy.
-
getPersistenceStrategy
public static PersistenceStrategy getPersistenceStrategy(FieldMetaData fmd, java.lang.reflect.Member member, boolean ignoreTransient)
Return the code for the strategy of the given member. Return null if no strategy.
-
setDefaultAccessType
public void setDefaultAccessType(java.lang.String type)
Auto-configuration method for the default access type of base classes with ACCESS_UNKNOWN
-
populate
public void populate(ClassMetaData meta, int access)
Populates the given class metadata. The access style determines which field and/or getter method will contribute as the persistent property of the given class. If the given access is unknown, then the access type is to be determined at first.- Specified by:
populate
in interfaceMetaDataDefaults
- Overrides:
populate
in classAbstractMetaDataDefaults
access
- access type constant fromClassMetaData
- See Also:
determineAccessType(ClassMetaData)
-
populate
public void populate(ClassMetaData meta, int access, boolean ignoreTransient)
Populates the given class metadata. The access style determines which field and/or getter method will contribute as the persistent property of the given class. If the given access is unknown, then the access type is to be determined at first.- Specified by:
populate
in interfaceMetaDataDefaults
- Overrides:
populate
in classAbstractMetaDataDefaults
access
- access type constant fromClassMetaData
- See Also:
determineAccessType(ClassMetaData)
-
populate
protected void populate(FieldMetaData fmd)
- Overrides:
populate
in classAbstractMetaDataDefaults
-
getPersistentMembers
public java.util.List<java.lang.reflect.Member> getPersistentMembers(ClassMetaData meta, boolean ignoreTransient)
Gets the members that are backing members for attributes being persisted. Unlike #getPersistentFields(ClassMetaData) and #getPersistentMethods(ClassMetaData) which returns possible candidates, the result of this method is definite. Side-effect of this method is if the given class metadata has no access type set, this method will set it.- Specified by:
getPersistentMembers
in classAbstractMetaDataDefaults
-
getFieldAccessNames
protected java.util.List<java.lang.String> getFieldAccessNames(ClassMetaData meta)
Description copied from class:AbstractMetaDataDefaults
Return the list of fields inmeta
that use field access, ornull
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 inmeta
. This is used for error reporting purposes only, so need not be efficient. This implementation returnsnull
.- Overrides:
getFieldAccessNames
in classAbstractMetaDataDefaults
-
getPropertyAccessNames
protected java.util.List<java.lang.String> getPropertyAccessNames(ClassMetaData meta)
Description copied from class:AbstractMetaDataDefaults
Return the list of methods inmeta
that use property access, ornull
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 inmeta
. This is used for error reporting purposes only, so need not be efficient. This implementation returnsnull
.- Overrides:
getPropertyAccessNames
in classAbstractMetaDataDefaults
-
isDefaultPersistent
protected boolean isDefaultPersistent(ClassMetaData meta, java.lang.reflect.Member member, java.lang.String name)
-
isDefaultPersistent
protected boolean isDefaultPersistent(ClassMetaData meta, java.lang.reflect.Member member, java.lang.String name, boolean ignoreTransient)
Description copied from class:AbstractMetaDataDefaults
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.- Specified by:
isDefaultPersistent
in classAbstractMetaDataDefaults
name
- the field name fromAbstractMetaDataDefaults.getFieldName(java.lang.reflect.Member)
-
getMemberByProperty
public java.lang.reflect.Member getMemberByProperty(ClassMetaData meta, java.lang.String property, int access, boolean applyDefaultRule)
Gets either the instance field or the getter method depending upon the access style of the given meta-data.- Parameters:
meta
- is the declaring classproperty
- name of the logical attributeaccess
- whether to look for the field of getter method. If unknown, then field or property is chosen based on the access type used by the given class.applyDefaultRule
- if true and access is unknown then scans the annotation on the member to determine access.
-
isAbstractMappingUniDirectional
public boolean isAbstractMappingUniDirectional(OpenJPAConfiguration conf)
Description copied from interface:MetaDataDefaults
Whether the relationship in MappedSuper class must be uni-directional.
-
setAbstractMappingUniDirectional
public void setAbstractMappingUniDirectional(OpenJPAConfiguration conf)
-
isNonDefaultMappingAllowed
public boolean isNonDefaultMappingAllowed(OpenJPAConfiguration conf)
Description copied from interface:MetaDataDefaults
Whether non-default mapping is allowed.
-
setNonDefaultMappingAllowed
public void setNonDefaultMappingAllowed(OpenJPAConfiguration conf)
-
isDefaultCascadePersistEnabled
public java.lang.Boolean isDefaultCascadePersistEnabled()
Description copied from interface:MetaDataDefaults
Whether cascade-persist was declared in the persistence unit defaults.
-
setDefaultCascadePersistEnabled
public void setDefaultCascadePersistEnabled(java.lang.Boolean bool)
-
getDefaultSchema
public java.lang.String getDefaultSchema()
Description copied from interface:MetaDataDefaults
Returns the default schema.
-
setDefaultSchema
public void setDefaultSchema(java.lang.String schema)
Description copied from interface:MetaDataDefaults
Sets the default schema.
-
-