at.dms.kjc
Class CSourceClass

java.lang.Object
  |
  +--at.dms.util.Utils
        |
        +--at.dms.kjc.CMember
              |
              +--at.dms.kjc.CClass
                    |
                    +--at.dms.kjc.CSourceClass
All Implemented Interfaces:
Constants, Constants

public class CSourceClass
extends CClass

This class represents the exported members of a class (inner classes, methods and fields). It is build from a parsed files so values are accessibles differently after build and after interface checked


Fields inherited from class at.dms.kjc.CClass
CLS_UNDEFINED
 
Fields inherited from class at.dms.kjc.CMember
ACCESSOR_PREFIX
 
Fields inherited from class at.dms.util.Utils
DBG_LEVEL_HIGH, DBG_LEVEL_LOW, DBG_LEVEL_NO
 
Fields inherited from interface at.dms.kjc.Constants
CMP_VERSION, JAV_CLASS, JAV_CLONE, JAV_CLONEABLE, JAV_CONSTRUCTOR, JAV_ERROR, JAV_EXCEPTION, JAV_INIT, JAV_LENGTH, JAV_NAME_SEPARATOR, JAV_OBJECT, JAV_OUTER_THIS, JAV_RUNTIME, JAV_RUNTIME_EXCEPTION, JAV_STATIC_INIT, JAV_STRING, JAV_STRINGBUFFER, JAV_THIS, JAV_THROWABLE, OPE_BAND, OPE_BNOT, OPE_BOR, OPE_BSR, OPE_BXOR, OPE_EQ, OPE_GE, OPE_GT, OPE_LE, OPE_LNOT, OPE_LT, OPE_MINUS, OPE_NE, OPE_PERCENT, OPE_PLUS, OPE_POSTDEC, OPE_POSTINC, OPE_PREDEC, OPE_PREINC, OPE_SIMPLE, OPE_SL, OPE_SLASH, OPE_SR, OPE_STAR, TID_ARRAY, TID_BOOLEAN, TID_BYTE, TID_CHAR, TID_CLASS, TID_DOUBLE, TID_FLOAT, TID_INT, TID_LONG, TID_SHORT, TID_VOID
 
Fields inherited from interface at.dms.classfile.Constants
ACC_ABSTRACT, ACC_FINAL, ACC_INTERFACE, ACC_NATIVE, ACC_NBR_FLAGS, ACC_PRIVATE, ACC_PROTECTED, ACC_PUBLIC, ACC_STATIC, ACC_STRICT, ACC_SUPER, ACC_SYNCHRONIZED, ACC_TRANSIENT, ACC_VOLATILE, ATT_CODE, ATT_CONSTANTVALUE, ATT_DEPRECATED, ATT_EXCEPTIONS, ATT_GENERIC, ATT_INNERCLASSES, ATT_LINENUMBERTABLE, ATT_LOCALVARIABLETABLE, ATT_SOURCEFILE, ATT_SYNTHETIC, CST_CLASS, CST_DOUBLE, CST_FIELD, CST_FLOAT, CST_INTEGER, CST_INTERFACEMETHOD, CST_LONG, CST_METHOD, CST_NAMEANDTYPE, CST_STRING, CST_UTF8, ENV_DEBUG_MODE, ENV_USE_CACHE, JAVA_MAGIC, JAVA_MAJOR, JAVA_MINOR, MAX_CODE_PER_METHOD, opc_aaload, opc_aastore, opc_aconst_null, opc_aload, opc_aload_0, opc_aload_1, opc_aload_2, opc_aload_3, opc_anewarray, opc_areturn, opc_arraylength, opc_astore, opc_astore_0, opc_astore_1, opc_astore_2, opc_astore_3, opc_athrow, opc_baload, opc_bastore, opc_bipush, opc_caload, opc_castore, opc_checkcast, opc_d2f, opc_d2i, opc_d2l, opc_dadd, opc_daload, opc_dastore, opc_dcmpg, opc_dcmpl, opc_dconst_0, opc_dconst_1, opc_ddiv, opc_dload, opc_dload_0, opc_dload_1, opc_dload_2, opc_dload_3, opc_dmul, opc_dneg, opc_drem, opc_dreturn, opc_dstore, opc_dstore_0, opc_dstore_1, opc_dstore_2, opc_dstore_3, opc_dsub, opc_dup, opc_dup_x1, opc_dup_x2, opc_dup2, opc_dup2_x1, opc_dup2_x2, opc_f2d, opc_f2i, opc_f2l, opc_fadd, opc_faload, opc_fastore, opc_fcmpg, opc_fcmpl, opc_fconst_0, opc_fconst_1, opc_fconst_2, opc_fdiv, opc_fload, opc_fload_0, opc_fload_1, opc_fload_2, opc_fload_3, opc_fmul, opc_fneg, opc_frem, opc_freturn, opc_fstore, opc_fstore_0, opc_fstore_1, opc_fstore_2, opc_fstore_3, opc_fsub, opc_getfield, opc_getstatic, opc_goto, opc_goto_w, opc_i2b, opc_i2c, opc_i2d, opc_i2f, opc_i2l, opc_i2s, opc_iadd, opc_iaload, opc_iand, opc_iastore, opc_iconst_0, opc_iconst_1, opc_iconst_2, opc_iconst_3, opc_iconst_4, opc_iconst_5, opc_iconst_m1, opc_idiv, opc_if_acmpeq, opc_if_acmpne, opc_if_icmpeq, opc_if_icmpge, opc_if_icmpgt, opc_if_icmple, opc_if_icmplt, opc_if_icmpne, opc_ifeq, opc_ifge, opc_ifgt, opc_ifle, opc_iflt, opc_ifne, opc_ifnonnull, opc_ifnull, opc_iinc, opc_iload, opc_iload_0, opc_iload_1, opc_iload_2, opc_iload_3, opc_imul, opc_ineg, opc_instanceof, opc_invokeinterface, opc_invokespecial, opc_invokestatic, opc_invokevirtual, opc_ior, opc_irem, opc_ireturn, opc_ishl, opc_ishr, opc_istore, opc_istore_0, opc_istore_1, opc_istore_2, opc_istore_3, opc_isub, opc_iushr, opc_ixor, opc_jsr, opc_jsr_w, opc_l2d, opc_l2f, opc_l2i, opc_ladd, opc_laload, opc_land, opc_lastore, opc_lcmp, opc_lconst_0, opc_lconst_1, opc_ldc, opc_ldc_w, opc_ldc2_w, opc_ldiv, opc_lload, opc_lload_0, opc_lload_1, opc_lload_2, opc_lload_3, opc_lmul, opc_lneg, opc_lookupswitch, opc_lor, opc_lrem, opc_lreturn, opc_lshl, opc_lshr, opc_lstore, opc_lstore_0, opc_lstore_1, opc_lstore_2, opc_lstore_3, opc_lsub, opc_lushr, opc_lxor, opc_monitorenter, opc_monitorexit, opc_multianewarray, opc_new, opc_newarray, opc_nop, opc_pop, opc_pop2, opc_putfield, opc_putstatic, opc_ret, opc_return, opc_saload, opc_sastore, opc_sipush, opc_swap, opc_tableswitch, opc_wide, opc_xxxunusedxxx, POO_ASCII_CONSTANT, POO_CLASS_CONSTANT, POO_DOUBLE_CONSTANT, POO_FLOAT_CONSTANT, POO_INTEGER_CONSTANT, POO_LONG_CONSTANT, POO_NAT_CONSTANT, POO_REF_CONSTANT, POO_STRING_CONSTANT, TYP_ADDRESS, TYP_DOUBLE, TYP_FLOAT, TYP_INT, TYP_LONG, TYP_REFERENCE, TYP_VOID
 
Constructor Summary
CSourceClass(Compiler compiler, CClass owner, JTypeDeclaration counterPart, TokenReference where, int modifiers, java.lang.String ident, java.lang.String qualifiedName, boolean deprecated)
          Constructs a class export from source
 
Method Summary
 CSourceMethod addJMethod(JMethodDeclaration method)
           
 void close(CClassType[] interfaces, CClassType superClass, CField[] fields, CMethod[] methods)
          Ends the definition of this class
 void genCode(java.lang.String destination)
          Collect and generate class files
 CType[] genConstructorArray(CType[] params)
          add synthetic parameters to method def
 void genInit(CodeSequence code, int countLocals)
          add synthetic parameters to method def
 void genSyntheticParams(CodeSequence code, JExpression explicitThis)
          add synthetic parameters to method call
 void genSyntheticParamsFromExplicitSuper(JExpression[] params, CodeSequence code)
          add synthetic parameters to method call
 JTypeDeclaration getCounterPart()
          Returns the syntax-tree counterpart of this exported source class definition.
 int getNextAnonymousIndex()
           
 int getNextSyntheticIndex()
           
 JExpression getOuterLocalAccess(TokenReference ref, JLocalVariable var, CMethod constructor)
          Gets the code to access outer local vars.
 int getOuterLocalsSize()
          Returns the size of the outer-local variables in the variable table.
 boolean isInitializerChecked()
          Returns true if initialization pass is finished for this class
 void setInitializerChecked()
          Sets initialization pass to be finished
 
Methods inherited from class at.dms.kjc.CClass
addField, addInnerClass, addMethod, close, collectAbstractMethods, collectInterfaceMethods, descendsFrom, genClassFile, getAbstractMethods, getCClass, getCompiler, getField, getFieldCount, getIdent, getInnerClasses, getInterfaceMethods, getPackage, getQualifiedName, getSourceFile, getSuperClass, getType, hasOuterThis, isAbstract, isAccessible, isAnonymous, isDefinedInside, isInnerClass, isInterface, lookupField, lookupMemberClass, lookupMethod, lookupSuperField, lookupSuperMethod, setHasOuterThis, setInnerClasses, setSuperClass
 
Methods inherited from class at.dms.kjc.CMember
getField, getIdent, getJavaName, getMethod, getModifiers, getOwner, getPrefixName, isDeprecated, isFinal, isPrivate, isProtected, isPublic, isStatic, isSynthetic, mustUseAccessorMethod, setModifiers, setSynthetic
 
Methods inherited from class at.dms.util.Utils
assert, assert, fail, fail, hasFlag, hasMoreThanOneFlag, hasOtherFlags, splitQualifiedName, splitQualifiedName, vectorToArray, vectorToIntArray
 
Methods inherited from class java.lang.Object
, clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Constructor Detail

CSourceClass

public CSourceClass(Compiler compiler,
                    CClass owner,
                    JTypeDeclaration counterPart,
                    TokenReference where,
                    int modifiers,
                    java.lang.String ident,
                    java.lang.String qualifiedName,
                    boolean deprecated)
Constructs a class export from source
Method Detail

close

public void close(CClassType[] interfaces,
                  CClassType superClass,
                  CField[] fields,
                  CMethod[] methods)
Ends the definition of this class

isInitializerChecked

public boolean isInitializerChecked()
Returns true if initialization pass is finished for this class

setInitializerChecked

public void setInitializerChecked()
Sets initialization pass to be finished

getCounterPart

public JTypeDeclaration getCounterPart()
Returns the syntax-tree counterpart of this exported source class definition.

getNextSyntheticIndex

public int getNextSyntheticIndex()

getNextAnonymousIndex

public int getNextAnonymousIndex()

addJMethod

public CSourceMethod addJMethod(JMethodDeclaration method)
                         throws PositionedError

genConstructorArray

public CType[] genConstructorArray(CType[] params)
add synthetic parameters to method def
Overrides:
genConstructorArray in class CClass

genSyntheticParams

public void genSyntheticParams(CodeSequence code,
                               JExpression explicitThis)
add synthetic parameters to method call
Overrides:
genSyntheticParams in class CClass

genSyntheticParamsFromExplicitSuper

public void genSyntheticParamsFromExplicitSuper(JExpression[] params,
                                                CodeSequence code)
add synthetic parameters to method call
Overrides:
genSyntheticParamsFromExplicitSuper in class CClass

getOuterLocalsSize

public int getOuterLocalsSize()
Returns the size of the outer-local variables in the variable table.
Overrides:
getOuterLocalsSize in class CClass

getOuterLocalAccess

public JExpression getOuterLocalAccess(TokenReference ref,
                                       JLocalVariable var,
                                       CMethod constructor)
Gets the code to access outer local vars.

genInit

public void genInit(CodeSequence code,
                    int countLocals)
add synthetic parameters to method def

genCode

public void genCode(java.lang.String destination)
             throws java.io.IOException,
                    ClassFileFormatException
Collect and generate class files