org.apache.jdo.impl.enhancer
Interface ClassFileEnhancer

All Known Implementing Classes:
ClassFileEnhancerTimer, EnhancerFilter

public interface ClassFileEnhancer

A JDO enhancer, or byte-code enhancer, modifies the byte-codes of Java class files to enable transparent loading and storing of the fields of the persistent instances.

Author:
Martin Zaun

Method Summary
 boolean enhanceClassFile(java.io.InputStream in, java.io.OutputStream out)
          Enhances a given class according to the JDO meta-data.
 boolean enhanceClassFile(java.io.InputStream in, OutputStreamWrapper out)
          Enhances a given class according to the JDO meta-data.
 

Method Detail

enhanceClassFile

boolean enhanceClassFile(java.io.InputStream in,
                         java.io.OutputStream out)
                         throws EnhancerUserException,
                                EnhancerFatalError
Enhances a given class according to the JDO meta-data. If the input class has been enhanced or not - the output stream is always written, either with the enhanced class or with the non-enhanced class.

Parameters:
in - The byte-code of the class to be enhanced.
out - The byte-code of the enhanced class.
Returns:
true if the class has been enhanced, false otherwise.
Throws:
EnhancerUserException
EnhancerFatalError

enhanceClassFile

boolean enhanceClassFile(java.io.InputStream in,
                         OutputStreamWrapper out)
                         throws EnhancerUserException,
                                EnhancerFatalError
Enhances a given class according to the JDO meta-data. If the input class has been enhanced or not - the output stream is always written, either with the enhanced class or with the non-enhanced class.

Furthermore, the enhancer has to set the classname of the enhanced class to the output stream wrapper object (it's possible to get the input stream without knowing the classname).

Parameters:
in - The byte-code of the class to be enhanced.
out - The byte-code of the enhanced class.
Returns:
true if the class has been enhanced, false otherwise.
Throws:
EnhancerUserException
EnhancerFatalError


Copyright © 2005-2009 Apache Software Foundation. All Rights Reserved.