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
GeneratesPCDatainstances 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 interfacePCDataGenerator.DynamicPCDataDynamicPCDatas generated will implement this interface to simplify initialization.
-
Field Summary
Fields Modifier and Type Field Description protected static StringPOSTFIX-
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 voidaddVersionMethods(ClassNodeTracker bc)Add methods for loading and storing version data.protected voiddeclareClasses(ClassNodeTracker bc)Add interface or superclass declarations to the generated class.protected voiddecorate(Object obj, ClassNodeTracker bc, int[] types)Decorate the generated class.protected voiddecorate(ClassNodeTracker bc, ClassMetaData meta)Apply additional decoration to generated class.protected voidfinish(PCDataGenerator.DynamicPCData data, ClassMetaData meta)Perform any final actions before the pcdata is returned to client code.PCDatageneratePCData(Object oid, ClassMetaData meta)Return aPCDatainstance for the given oid and metadata.protected StringgetClassName(Object obj)Return a class name to use for the given user key.OpenJPAConfigurationgetConfiguration()Return the configuration.protected intgetCreateFieldMethods(int typeCode)Return the policy constant for how to create type methods.static Class<?>getType(String className)protected StringgetUniqueName(Class<?> type)Creates a unique name for the given type's pcdata implementation.protected intreplaceType(FieldMetaData fmd)Return a validJavaTypesconstant for the given fieldprotected booleanusesImplData(ClassMetaData meta)Whether the given type might have cacheable class-level impl data.protected booleanusesImplData(FieldMetaData fmd)Whether the given field might have cacheable impl data.protected booleanusesIntermediate(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 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(Object oid, ClassMetaData meta)
Return aPCDatainstance 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:DynamicStorageGeneratorReturn the policy constant for how to create type methods.- Overrides:
getCreateFieldMethodsin classDynamicStorageGenerator
-
declareClasses
protected void declareClasses(ClassNodeTracker bc)
Description copied from class:DynamicStorageGeneratorAdd interface or superclass declarations to the generated class.- Overrides:
declareClassesin classDynamicStorageGenerator
-
getClassName
protected final String getClassName(Object obj)
Description copied from class:DynamicStorageGeneratorReturn a class name to use for the given user key. By default, returns the stringified key prefixed by PREFIX.- Overrides:
getClassNamein classDynamicStorageGenerator
-
getUniqueName
protected String getUniqueName(Class<?> type)
Creates a unique name for the given type's pcdata implementation.
-
decorate
protected final void decorate(Object obj, ClassNodeTracker bc, int[] types)
Description copied from class:DynamicStorageGeneratorDecorate the generated class.- Overrides:
decoratein classDynamicStorageGenerator
-
decorate
protected void decorate(ClassNodeTracker bc, ClassMetaData meta)
Apply additional decoration to generated class.
-
addVersionMethods
protected void addVersionMethods(ClassNodeTracker bc)
Add methods for loading and storing version data.
-
replaceType
protected int replaceType(FieldMetaData fmd)
Return a validJavaTypesconstant 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.
-
-