import java.lang.reflect.*; import java.lang.*; import java.util.*; import org.aspectj.compiler.base.ast.*; import org.aspectj.compiler.crosscuts.ast.*; class GOTECHGenerator { // Bean types static final int BEAN_STATEFUL = 1; static final int BEAN_STATELESS = 2; // ------------------------------------------------ // generateBean: Generate an EJB from the given class. // ??? Should we worry about specifying which methods are // interface methods??? // ------------------------------------------------ public static CompUnit generateBean( Class beanClass ) { String pack = beanClass.getPackage().getName(); String cName = beanClass.getName(); String beanName = "GOTECH_" + cName + "BeanClass"; int[] bInt = null; MethodDec[] bMethods = new MethodDec[beanClass.getMethods().length]; java.lang.reflect.Method[] beanMethods = beanClass.getMethods(); for (int i = 0; i < beanMethods.length; i++) { java.lang.reflect.Method m = beanMethods[i]; String mName = m.getName(); String mReturn = m.getReturnType().getName(); Class[] mParms = m.getParameterTypes(); // make formal decs out of parameter types. FormalDec[] formals = null; JavaExpr[] arguments = null; if ( mParms != null ) { formals = new FormalDec[mParms.length]; arguments = new JavaExpr[mParms.length]; for ( int j=0; j