Package org.datanucleus.api.jdo
Class JDOEnhancer
- java.lang.Object
-
- org.datanucleus.api.jdo.JDOEnhancer
-
- All Implemented Interfaces:
ClassFileTransformer,javax.jdo.JDOEnhancer
public class JDOEnhancer extends Object implements javax.jdo.JDOEnhancer
Implementation of a JDO-compliant Enhancer.
-
-
Constructor Summary
Constructors Constructor Description JDOEnhancer()Constructor for a JDO enhancer.JDOEnhancer(Properties props)Constructor for a JDO enhancer specifying optional properties.
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description JDOEnhanceraddClass(String className, byte[] bytes)JDOEnhanceraddClasses(String... classNames)JDOEnhanceraddFiles(String... metadataFiles)JDOEnhanceraddJar(String jarFileName)JDOEnhanceraddPersistenceUnit(String persistenceUnitName)intenhance()byte[]getEnhancedBytes(String className)byte[]getPkClassBytes(String className)DataNucleus extension returning the bytes of the generated primary key class (if any) for the specified persistent class.PropertiesgetProperties()javax.jdo.metadata.JDOMetadatanewMetadata()voidregisterMetadata(javax.jdo.metadata.JDOMetadata metadata)JDOEnhancersetClassLoader(ClassLoader loader)JDOEnhancersetOutputDirectory(String dir)JDOEnhancersetVerbose(boolean verbose)byte[]transform(ClassLoader loader, String className, Class<?> classBeingRedefined, ProtectionDomain protectionDomain, byte[] classfileBuffer)intvalidate()-
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
-
Methods inherited from interface java.lang.instrument.ClassFileTransformer
transform
-
-
-
-
Constructor Detail
-
JDOEnhancer
public JDOEnhancer()
Constructor for a JDO enhancer.
-
JDOEnhancer
public JDOEnhancer(Properties props)
Constructor for a JDO enhancer specifying optional properties.- Parameters:
props- Properties
-
-
Method Detail
-
newMetadata
public javax.jdo.metadata.JDOMetadata newMetadata()
- Specified by:
newMetadatain interfacejavax.jdo.JDOEnhancer
-
registerMetadata
public void registerMetadata(javax.jdo.metadata.JDOMetadata metadata)
- Specified by:
registerMetadatain interfacejavax.jdo.JDOEnhancer
-
addClass
public JDOEnhancer addClass(String className, byte[] bytes)
- Specified by:
addClassin interfacejavax.jdo.JDOEnhancer
-
addClasses
public JDOEnhancer addClasses(String... classNames)
- Specified by:
addClassesin interfacejavax.jdo.JDOEnhancer
-
addFiles
public JDOEnhancer addFiles(String... metadataFiles)
- Specified by:
addFilesin interfacejavax.jdo.JDOEnhancer
-
addJar
public JDOEnhancer addJar(String jarFileName)
- Specified by:
addJarin interfacejavax.jdo.JDOEnhancer
-
addPersistenceUnit
public JDOEnhancer addPersistenceUnit(String persistenceUnitName)
- Specified by:
addPersistenceUnitin interfacejavax.jdo.JDOEnhancer
-
enhance
public int enhance()
- Specified by:
enhancein interfacejavax.jdo.JDOEnhancer
-
getEnhancedBytes
public byte[] getEnhancedBytes(String className)
- Specified by:
getEnhancedBytesin interfacejavax.jdo.JDOEnhancer
-
getPkClassBytes
public byte[] getPkClassBytes(String className)
DataNucleus extension returning the bytes of the generated primary key class (if any) for the specified persistent class.- Parameters:
className- Name of the persistent class- Returns:
- Bytes of generated PK class (if any)
-
getProperties
public Properties getProperties()
- Specified by:
getPropertiesin interfacejavax.jdo.JDOEnhancer
-
setClassLoader
public JDOEnhancer setClassLoader(ClassLoader loader)
- Specified by:
setClassLoaderin interfacejavax.jdo.JDOEnhancer
-
setOutputDirectory
public JDOEnhancer setOutputDirectory(String dir)
- Specified by:
setOutputDirectoryin interfacejavax.jdo.JDOEnhancer
-
setVerbose
public JDOEnhancer setVerbose(boolean verbose)
- Specified by:
setVerbosein interfacejavax.jdo.JDOEnhancer
-
validate
public int validate()
- Specified by:
validatein interfacejavax.jdo.JDOEnhancer
-
transform
public byte[] transform(ClassLoader loader, String className, Class<?> classBeingRedefined, ProtectionDomain protectionDomain, byte[] classfileBuffer) throws IllegalClassFormatException
- Specified by:
transformin interfaceClassFileTransformer- Throws:
IllegalClassFormatException
-
-