org.apache.jdo.impl.enhancer.util
Class AugmentationTest

java.lang.Object
  extended byorg.apache.jdo.impl.enhancer.util.Assertion
      extended byorg.apache.jdo.impl.enhancer.util.Support
          extended byorg.apache.jdo.impl.enhancer.LogSupport
              extended byorg.apache.jdo.impl.enhancer.GenericMain
                  extended byorg.apache.jdo.impl.enhancer.ClassArgMain
                      extended byorg.apache.jdo.impl.enhancer.JdoMetaMain
                          extended byorg.apache.jdo.impl.enhancer.util.AugmentationTest

public class AugmentationTest
extends JdoMetaMain

Utility class for testing a class file for correct augmentation.

Author:
Martin Zaun

Field Summary
static int AFFIRMATIVE
           
private  java.lang.ClassLoader classLoader
           
private  java.lang.String className
           
private  java.lang.Class classObject
           
private  java.lang.String classPath
           
static int ERROR
           
private  java.util.HashSet fields
           
private  java.lang.Class instanceCallbacksClass
           
private  java.util.HashSet methods
           
static int NEGATIVE
           
private  java.lang.Class objectIdFieldConsumerClass
           
private  java.lang.Class objectIdFieldSupplierClass
           
private  java.lang.Class persistenceCapableClass
           
private  java.lang.Class persistenceManagerClass
           
private  java.lang.Class stateManagerClass
           
private static java.lang.String[] transientPrefixes
           
private  boolean verbose
           
 
Fields inherited from class org.apache.jdo.impl.enhancer.JdoMetaMain
jdoMeta, options
 
Fields inherited from class org.apache.jdo.impl.enhancer.ClassArgMain
classes
 
Fields inherited from class org.apache.jdo.impl.enhancer.GenericMain
err, INTERNAL_ERROR, OK, out, USAGE_ERROR, USER_EXCEPTION
 
Fields inherited from class org.apache.jdo.impl.enhancer.util.Support
timer
 
Constructor Summary
AugmentationTest(java.io.PrintWriter out, java.io.PrintWriter err)
           
 
Method Summary
private  int evaluate(int nofFeatures, int[] r)
           
private  int hasAccessorMutators(java.io.PrintWriter out)
           
private  int hasConstructor(java.io.PrintWriter out, int mods, java.lang.Class[] params)
           
private  int hasField(java.io.PrintWriter out, int mods, java.lang.Class type, java.lang.String name)
           
private  int hasGenericAugmentation(java.io.PrintWriter out)
           
private  int hasInstanceCallbacks(java.io.PrintWriter out)
           
private  int hasKeyHandlingAugmentation(java.io.PrintWriter out)
           
private  int hasMethod(java.io.PrintWriter out, int mods, java.lang.Class result, java.lang.String name, java.lang.Class[] params)
           
private  int hasMethod(java.io.PrintWriter out, int mods, java.lang.Class result, java.lang.String name, java.lang.Class[] params, java.lang.Class[] exepts)
           
private  int hasNoIllegalJdoMembers(java.io.PrintWriter out)
           
private  int hasSpecificAugmentation(java.io.PrintWriter out)
           
private  int implementsInterface(java.io.PrintWriter out, java.lang.Class intf)
           
protected  void init()
          Initializes all components.
static void main(java.lang.String[] args)
          Runs this class
protected  int process()
          Run the augmentation test.
protected  int test(java.io.PrintWriter out, boolean verbose, java.util.List classNames)
           
private  int test(java.io.PrintWriter out, java.lang.String className)
           
private  int testAugmentation(java.io.PrintWriter out)
           
private  int testLoadingClass(java.io.PrintWriter out)
           
private  int testPCFeasibility(java.io.PrintWriter out)
           
(package private) static java.lang.String toString(int mods, java.lang.Class type, java.lang.String name)
           
(package private) static java.lang.String toString(int mods, java.lang.Class result, java.lang.String name, java.lang.Class[] params)
           
(package private) static java.lang.String toString(int mods, java.lang.Class result, java.lang.String name, java.lang.Class[] params, java.lang.Class[] ex)
           
(package private) static java.lang.String toString(int mods, java.lang.String name, java.lang.Class[] params)
           
 
Methods inherited from class org.apache.jdo.impl.enhancer.JdoMetaMain
initJdoMetaData
 
Methods inherited from class org.apache.jdo.impl.enhancer.ClassArgMain
closeInputStream, getClassFileName, initClassLocator, openClassInputStream, openFileInputStream
 
Methods inherited from class org.apache.jdo.impl.enhancer.GenericMain
flush, print, println, println, printlnErr, printlnErr, printlnErr, printlnErr, run
 
Methods inherited from class org.apache.jdo.impl.enhancer.util.Support
getI18N, getI18N, getI18N, getI18N, getI18N, getI18N
 
Methods inherited from class org.apache.jdo.impl.enhancer.util.Assertion
affirm, affirm, affirm, affirm
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Field Detail

AFFIRMATIVE

public static final int AFFIRMATIVE
See Also:
Constant Field Values

NEGATIVE

public static final int NEGATIVE
See Also:
Constant Field Values

ERROR

public static final int ERROR
See Also:
Constant Field Values

transientPrefixes

private static final java.lang.String[] transientPrefixes

verbose

private boolean verbose

className

private java.lang.String className

classPath

private java.lang.String classPath

classObject

private java.lang.Class classObject

fields

private java.util.HashSet fields

methods

private java.util.HashSet methods

classLoader

private java.lang.ClassLoader classLoader

persistenceManagerClass

private java.lang.Class persistenceManagerClass

instanceCallbacksClass

private java.lang.Class instanceCallbacksClass

persistenceCapableClass

private java.lang.Class persistenceCapableClass

objectIdFieldSupplierClass

private java.lang.Class objectIdFieldSupplierClass

objectIdFieldConsumerClass

private java.lang.Class objectIdFieldConsumerClass

stateManagerClass

private java.lang.Class stateManagerClass
Constructor Detail

AugmentationTest

public AugmentationTest(java.io.PrintWriter out,
                        java.io.PrintWriter err)
Method Detail

toString

static java.lang.String toString(int mods,
                                 java.lang.Class type,
                                 java.lang.String name)

toString

static java.lang.String toString(int mods,
                                 java.lang.String name,
                                 java.lang.Class[] params)

toString

static java.lang.String toString(int mods,
                                 java.lang.Class result,
                                 java.lang.String name,
                                 java.lang.Class[] params)

toString

static java.lang.String toString(int mods,
                                 java.lang.Class result,
                                 java.lang.String name,
                                 java.lang.Class[] params,
                                 java.lang.Class[] ex)

implementsInterface

private int implementsInterface(java.io.PrintWriter out,
                                java.lang.Class intf)

hasField

private int hasField(java.io.PrintWriter out,
                     int mods,
                     java.lang.Class type,
                     java.lang.String name)

hasConstructor

private int hasConstructor(java.io.PrintWriter out,
                           int mods,
                           java.lang.Class[] params)

hasMethod

private int hasMethod(java.io.PrintWriter out,
                      int mods,
                      java.lang.Class result,
                      java.lang.String name,
                      java.lang.Class[] params,
                      java.lang.Class[] exepts)

hasMethod

private int hasMethod(java.io.PrintWriter out,
                      int mods,
                      java.lang.Class result,
                      java.lang.String name,
                      java.lang.Class[] params)

evaluate

private int evaluate(int nofFeatures,
                     int[] r)

hasGenericAugmentation

private int hasGenericAugmentation(java.io.PrintWriter out)

hasSpecificAugmentation

private int hasSpecificAugmentation(java.io.PrintWriter out)

hasKeyHandlingAugmentation

private int hasKeyHandlingAugmentation(java.io.PrintWriter out)

hasAccessorMutators

private int hasAccessorMutators(java.io.PrintWriter out)
                         throws EnhancerMetaDataUserException,
                                EnhancerMetaDataFatalError
Throws:
EnhancerMetaDataUserException
EnhancerMetaDataFatalError

hasInstanceCallbacks

private int hasInstanceCallbacks(java.io.PrintWriter out)

testPCFeasibility

private int testPCFeasibility(java.io.PrintWriter out)

hasNoIllegalJdoMembers

private int hasNoIllegalJdoMembers(java.io.PrintWriter out)

testAugmentation

private int testAugmentation(java.io.PrintWriter out)
                      throws EnhancerMetaDataUserException,
                             EnhancerMetaDataFatalError
Throws:
EnhancerMetaDataUserException
EnhancerMetaDataFatalError

testLoadingClass

private int testLoadingClass(java.io.PrintWriter out)

test

private int test(java.io.PrintWriter out,
                 java.lang.String className)
          throws EnhancerMetaDataUserException,
                 EnhancerMetaDataFatalError
Throws:
EnhancerMetaDataUserException
EnhancerMetaDataFatalError

test

protected int test(java.io.PrintWriter out,
                   boolean verbose,
                   java.util.List classNames)

init

protected void init()
             throws EnhancerFatalError,
                    EnhancerUserException
Initializes all components.

Overrides:
init in class JdoMetaMain
Throws:
EnhancerFatalError
EnhancerUserException

process

protected int process()
Run the augmentation test.

Overrides:
process in class GenericMain

main

public static void main(java.lang.String[] args)
Runs this class