Package org.datanucleus.api.jdo
Class JDOEnhancer
- java.lang.Object
-
- org.datanucleus.api.jdo.JDOEnhancer
-
- All Implemented Interfaces:
java.lang.instrument.ClassFileTransformer,javax.jdo.JDOEnhancer
public class JDOEnhancer extends java.lang.Object implements javax.jdo.JDOEnhancerImplementation of a JDO-compliant Enhancer.
-
-
Field Summary
Fields Modifier and Type Field Description (package private) org.datanucleus.enhancer.DataNucleusEnhancerenhancer
-
Constructor Summary
Constructors Constructor Description JDOEnhancer()Constructor for a JDO enhancer.JDOEnhancer(java.util.Properties props)Constructor for a JDO enhancer specifying optional properties.
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description JDOEnhanceraddClass(java.lang.String className, byte[] bytes)JDOEnhanceraddClasses(java.lang.String... classNames)JDOEnhanceraddFiles(java.lang.String... metadataFiles)JDOEnhanceraddJar(java.lang.String jarFileName)JDOEnhanceraddPersistenceUnit(java.lang.String persistenceUnitName)intenhance()byte[]getEnhancedBytes(java.lang.String className)byte[]getPkClassBytes(java.lang.String className)DataNucleus extension returning the bytes of the generated primary key class (if any) for the specified persistent class.java.util.PropertiesgetProperties()javax.jdo.metadata.JDOMetadatanewMetadata()voidregisterMetadata(javax.jdo.metadata.JDOMetadata metadata)JDOEnhancersetClassLoader(java.lang.ClassLoader loader)JDOEnhancersetOutputDirectory(java.lang.String dir)JDOEnhancersetVerbose(boolean verbose)byte[]transform(java.lang.ClassLoader loader, java.lang.String className, java.lang.Class<?> classBeingRedefined, java.security.ProtectionDomain protectionDomain, byte[] classfileBuffer)intvalidate()
-
-
-
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(java.lang.String className, byte[] bytes)
- Specified by:
addClassin interfacejavax.jdo.JDOEnhancer
-
addClasses
public JDOEnhancer addClasses(java.lang.String... classNames)
- Specified by:
addClassesin interfacejavax.jdo.JDOEnhancer
-
addFiles
public JDOEnhancer addFiles(java.lang.String... metadataFiles)
- Specified by:
addFilesin interfacejavax.jdo.JDOEnhancer
-
addJar
public JDOEnhancer addJar(java.lang.String jarFileName)
- Specified by:
addJarin interfacejavax.jdo.JDOEnhancer
-
addPersistenceUnit
public JDOEnhancer addPersistenceUnit(java.lang.String persistenceUnitName)
- Specified by:
addPersistenceUnitin interfacejavax.jdo.JDOEnhancer
-
enhance
public int enhance()
- Specified by:
enhancein interfacejavax.jdo.JDOEnhancer
-
getEnhancedBytes
public byte[] getEnhancedBytes(java.lang.String className)
- Specified by:
getEnhancedBytesin interfacejavax.jdo.JDOEnhancer
-
getPkClassBytes
public byte[] getPkClassBytes(java.lang.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 java.util.Properties getProperties()
- Specified by:
getPropertiesin interfacejavax.jdo.JDOEnhancer
-
setClassLoader
public JDOEnhancer setClassLoader(java.lang.ClassLoader loader)
- Specified by:
setClassLoaderin interfacejavax.jdo.JDOEnhancer
-
setOutputDirectory
public JDOEnhancer setOutputDirectory(java.lang.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(java.lang.ClassLoader loader, java.lang.String className, java.lang.Class<?> classBeingRedefined, java.security.ProtectionDomain protectionDomain, byte[] classfileBuffer) throws java.lang.instrument.IllegalClassFormatException- Specified by:
transformin interfacejava.lang.instrument.ClassFileTransformer- Throws:
java.lang.instrument.IllegalClassFormatException
-
-