net.sf.xworkquartz.asm
Class ASMJobClassGenerator

java.lang.Object
  extended byjava.lang.ClassLoader
      extended bynet.sf.xworkquartz.asm.ASMJobClassGenerator
All Implemented Interfaces:
org.objectweb.asm.Constants

public class ASMJobClassGenerator
extends java.lang.ClassLoader
implements org.objectweb.asm.Constants

This class can be used to dynamically create classes which:

The main purpose of these classes is to enable a Quartz scheduler to execute XWork actions.

Version:
$Id: ASMJobClassGenerator.java,v 1.5 2004/07/02 19:42:46 stephanmueller Exp $
Author:
Stephan Mueller

Field Summary
 
Fields inherited from interface org.objectweb.asm.Constants
AALOAD, AASTORE, ACC_ABSTRACT, ACC_ANNOTATION, ACC_BRIDGE, ACC_DEPRECATED, ACC_ENUM, ACC_FINAL, ACC_INTERFACE, ACC_NATIVE, ACC_PRIVATE, ACC_PROTECTED, ACC_PUBLIC, ACC_STATIC, ACC_STRICT, ACC_SUPER, ACC_SYNCHRONIZED, ACC_SYNTHETIC, ACC_TRANSIENT, ACC_VARARGS, ACC_VOLATILE, ACONST_NULL, ALOAD, ANEWARRAY, ARETURN, ARRAYLENGTH, ASTORE, ATHROW, BALOAD, BASTORE, BIPUSH, CALOAD, CASTORE, CHECKCAST, D2F, D2I, D2L, DADD, DALOAD, DASTORE, DCMPG, DCMPL, DCONST_0, DCONST_1, DDIV, DLOAD, DMUL, DNEG, DREM, DRETURN, DSTORE, DSUB, DUP, DUP_X1, DUP_X2, DUP2, DUP2_X1, DUP2_X2, F2D, F2I, F2L, FADD, FALOAD, FASTORE, FCMPG, FCMPL, FCONST_0, FCONST_1, FCONST_2, FDIV, FLOAD, FMUL, FNEG, FREM, FRETURN, FSTORE, FSUB, GETFIELD, GETSTATIC, GOTO, I2B, I2C, I2D, I2F, I2L, I2S, IADD, IALOAD, IAND, IASTORE, ICONST_0, ICONST_1, ICONST_2, ICONST_3, ICONST_4, ICONST_5, ICONST_M1, IDIV, IF_ACMPEQ, IF_ACMPNE, IF_ICMPEQ, IF_ICMPGE, IF_ICMPGT, IF_ICMPLE, IF_ICMPLT, IF_ICMPNE, IFEQ, IFGE, IFGT, IFLE, IFLT, IFNE, IFNONNULL, IFNULL, IINC, ILOAD, IMUL, INEG, INSTANCEOF, INVOKEINTERFACE, INVOKESPECIAL, INVOKESTATIC, INVOKEVIRTUAL, IOR, IREM, IRETURN, ISHL, ISHR, ISTORE, ISUB, IUSHR, IXOR, JSR, L2D, L2F, L2I, LADD, LALOAD, LAND, LASTORE, LCMP, LCONST_0, LCONST_1, LDC, LDIV, LLOAD, LMUL, LNEG, LOOKUPSWITCH, LOR, LREM, LRETURN, LSHL, LSHR, LSTORE, LSUB, LUSHR, LXOR, MONITORENTER, MONITOREXIT, MULTIANEWARRAY, NEW, NEWARRAY, NOP, POP, POP2, PUTFIELD, PUTSTATIC, RET, RETURN, SALOAD, SASTORE, SIPUSH, SWAP, T_BOOLEAN, T_BYTE, T_CHAR, T_DOUBLE, T_FLOAT, T_INT, T_LONG, T_SHORT, TABLESWITCH
 
Constructor Summary
protected ASMJobClassGenerator()
           
 
Method Summary
static java.lang.Class createJobClass(java.lang.String actionName, java.lang.String namespace)
          Creates a job class which executes a given XWork action.
static java.lang.Class createJobClass(java.lang.String actionName, java.lang.String namespace, boolean stateful)
          Creates a job class which executes a given XWork action.
protected  java.lang.String getClassName(java.lang.String actionName, java.lang.String namespace, boolean stateful)
           
static ASMJobClassGenerator getInstance()
           
 
Methods inherited from class java.lang.ClassLoader
clearAssertionStatus, defineClass, defineClass, defineClass, definePackage, findClass, findLibrary, findLoadedClass, findResource, findResources, findSystemClass, getPackage, getPackages, getParent, getResource, getResourceAsStream, getResources, getSystemClassLoader, getSystemResource, getSystemResourceAsStream, getSystemResources, loadClass, loadClass, resolveClass, setClassAssertionStatus, setDefaultAssertionStatus, setPackageAssertionStatus, setSigners
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Constructor Detail

ASMJobClassGenerator

protected ASMJobClassGenerator()
Method Detail

getInstance

public static ASMJobClassGenerator getInstance()

createJobClass

public static java.lang.Class createJobClass(java.lang.String actionName,
                                             java.lang.String namespace)
Creates a job class which executes a given XWork action. The job instance will be stateless, meaning it will not implement the StatefulJob marker interface.

Parameters:
actionName - the name of the action (not null).
namespace - the namespace of the action (can be null or empty)
Returns:
a class which executes the specified action.

createJobClass

public static java.lang.Class createJobClass(java.lang.String actionName,
                                             java.lang.String namespace,
                                             boolean stateful)
Creates a job class which executes a given XWork action. Stateful jobs implement the StatefulJob marker interface.

Parameters:
actionName - the name of the action (not null).
namespace - the namespace of the action (can be null or empty)
stateful - true if job should be stateful
Returns:
a class which executes the specified action.

getClassName

protected java.lang.String getClassName(java.lang.String actionName,
                                        java.lang.String namespace,
                                        boolean stateful)

XWork-Quartz Project Page