Package org.apache.openjpa.enhance
Class PCDataGenerator
- java.lang.Object
-
- org.apache.openjpa.enhance.DynamicStorageGenerator
-
- org.apache.openjpa.enhance.PCDataGenerator
-
- Direct Known Subclasses:
DataCachePCDataGenerator
public class PCDataGenerator extends DynamicStorageGenerator
GeneratesPCData
instances which avoid primitive wrappers to optimize memory use and performance at the cost of slightly higher startup time.- Since:
- 0.3.2
- Author:
- Steve Kim, Mark Struberg rework to ASM
-
-
Nested Class Summary
Nested Classes Modifier and Type Class Description static interface
PCDataGenerator.DynamicPCData
DynamicPCData
s generated will implement this interface to simplify initialization.
-
Field Summary
Fields Modifier and Type Field Description protected static java.lang.String
POSTFIX
-
Fields inherited from class org.apache.openjpa.enhance.DynamicStorageGenerator
POLICY_EMPTY, POLICY_EXCEPTION, POLICY_SILENT
-
-
Constructor Summary
Constructors Constructor Description PCDataGenerator(OpenJPAConfiguration conf)
-
Method Summary
All Methods Static Methods Instance Methods Concrete Methods Modifier and Type Method Description protected void
addVersionMethods(ClassNodeTracker bc)
Add methods for loading and storing version data.protected void
declareClasses(ClassNodeTracker bc)
Add interface or superclass declarations to the generated class.protected void
decorate(java.lang.Object obj, ClassNodeTracker bc, int[] types)
Decorate the generated class.protected void
decorate(ClassNodeTracker bc, ClassMetaData meta)
Apply additional decoration to generated class.protected void
finish(PCDataGenerator.DynamicPCData data, ClassMetaData meta)
Perform any final actions before the pcdata is returned to client code.PCData
generatePCData(java.lang.Object oid, ClassMetaData meta)
Return aPCData
instance for the given oid and metadata.protected java.lang.String
getClassName(java.lang.Object obj)
Return a class name to use for the given user key.OpenJPAConfiguration
getConfiguration()
Return the configuration.protected int
getCreateFieldMethods(int typeCode)
Return the policy constant for how to create type methods.static java.lang.Class<?>
getType(java.lang.String className)
protected java.lang.String
getUniqueName(java.lang.Class<?> type)
Creates a unique name for the given type's pcdata implementation.protected int
replaceType(FieldMetaData fmd)
Return a validJavaTypes
constant for the given fieldprotected boolean
usesImplData(ClassMetaData meta)
Whether the given type might have cacheable class-level impl data.protected boolean
usesImplData(FieldMetaData fmd)
Whether the given field might have cacheable impl data.protected boolean
usesIntermediate(FieldMetaData fmd)
Whether the given field uses a cacheable intermediate value.-
Methods inherited from class org.apache.openjpa.enhance.DynamicStorageGenerator
addBeanField, createFactory, forType, generateStorage, getFieldAccess, getFieldName, getWrapper, getWrapper, isCompatible
-
-
-
-
Field Detail
-
POSTFIX
protected static final java.lang.String POSTFIX
- See Also:
- Constant Field Values
-
-
Constructor Detail
-
PCDataGenerator
public PCDataGenerator(OpenJPAConfiguration conf)
-
-
Method Detail
-
getConfiguration
public OpenJPAConfiguration getConfiguration()
Return the configuration.
-
generatePCData
public PCData generatePCData(java.lang.Object oid, ClassMetaData meta)
Return aPCData
instance for the given oid and metadata.
-
finish
protected void finish(PCDataGenerator.DynamicPCData data, ClassMetaData meta)
Perform any final actions before the pcdata is returned to client code.
-
getCreateFieldMethods
protected int getCreateFieldMethods(int typeCode)
Description copied from class:DynamicStorageGenerator
Return the policy constant for how to create type methods.- Overrides:
getCreateFieldMethods
in classDynamicStorageGenerator
-
declareClasses
protected void declareClasses(ClassNodeTracker bc)
Description copied from class:DynamicStorageGenerator
Add interface or superclass declarations to the generated class.- Overrides:
declareClasses
in classDynamicStorageGenerator
-
getClassName
protected final java.lang.String getClassName(java.lang.Object obj)
Description copied from class:DynamicStorageGenerator
Return a class name to use for the given user key. By default, returns the stringified key prefixed by PREFIX.- Overrides:
getClassName
in classDynamicStorageGenerator
-
getUniqueName
protected java.lang.String getUniqueName(java.lang.Class<?> type)
Creates a unique name for the given type's pcdata implementation.
-
decorate
protected final void decorate(java.lang.Object obj, ClassNodeTracker bc, int[] types)
Description copied from class:DynamicStorageGenerator
Decorate the generated class.- Overrides:
decorate
in classDynamicStorageGenerator
-
decorate
protected void decorate(ClassNodeTracker bc, ClassMetaData meta)
Apply additional decoration to generated class.
-
getType
public static java.lang.Class<?> getType(java.lang.String className)
-
addVersionMethods
protected void addVersionMethods(ClassNodeTracker bc)
Add methods for loading and storing version data.
-
replaceType
protected int replaceType(FieldMetaData fmd)
Return a validJavaTypes
constant for the given field
-
usesIntermediate
protected boolean usesIntermediate(FieldMetaData fmd)
Whether the given field uses a cacheable intermediate value.
-
usesImplData
protected boolean usesImplData(ClassMetaData meta)
Whether the given type might have cacheable class-level impl data.
-
usesImplData
protected boolean usesImplData(FieldMetaData fmd)
Whether the given field might have cacheable impl data.
-
-