at.dms.kjc
Class CBadClass

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

public class CBadClass
extends CClass

This class represents an undefined class. This class is not usable to anything, so it will sooner or later produce a comprehensive error.


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
CBadClass(java.lang.String qualifiedName)
          Constructs "Bad Class" instance of CClass.
 
Method Summary
 void collectAbstractMethods(java.util.List l)
           
 void collectInterfaceMethods(java.util.List l)
          Collects all methods in this type that are declared in an interface.
 boolean descendsFrom(CClass from)
          Checks if this class descends from from
 void genClassFile(java.io.File destination)
          Generate the code in a class file.
 CMethod[] getAbstractMethods()
          Returns a list of abstract methods.
 CField getField(java.lang.String ident)
          Returns the named field if it exists, else null.
 CMethod[] getInterfaceMethods()
          Returns a list of interface methods.
 boolean isAccessible(CClass from)
          Checks if this class is accessible from another class.
 CField lookupField(java.lang.String name)
          Searches for a field.
 CClass lookupMemberClass(java.lang.String name)
          Look up member classes of this class, or of superclasses or interfaces.
 CMethod lookupMethod(CClass caller, java.lang.String name, CType[] params)
          Searches for an accessible, matching method with the provided type parameters.
 CMethod lookupSuperMethod(CClass caller, java.lang.String name, CType[] params)
          Searches for a matching method with the provided type parameters in the superclass and/or interfaces of this type.
 
Methods inherited from class at.dms.kjc.CClass
addField, addInnerClass, addMethod, close, collectAbstractMethods, genClassFile, genConstructorArray, genSyntheticParams, genSyntheticParamsFromExplicitSuper, getCClass, getCompiler, getFieldCount, getIdent, getInnerClasses, getOuterLocalsSize, getPackage, getQualifiedName, getSourceFile, getSuperClass, getType, hasOuterThis, isAbstract, isAnonymous, isDefinedInside, isInnerClass, isInterface, lookupSuperField, 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

CBadClass

public CBadClass(java.lang.String qualifiedName)
Constructs "Bad Class" instance of CClass.
Method Detail

descendsFrom

public boolean descendsFrom(CClass from)
Checks if this class descends from from
Overrides:
descendsFrom in class CClass
Parameters:
from - an other CClass
Returns:
true if this class inherit from "from" or equals "from"

getField

public final CField getField(java.lang.String ident)
Returns the named field if it exists, else null.
Overrides:
getField in class CClass
Parameters:
ident - the name of the field
Returns:
the field

lookupMemberClass

public CClass lookupMemberClass(java.lang.String name)
Look up member classes of this class, or of superclasses or interfaces.
Overrides:
lookupMemberClass in class CClass
Parameters:
name - a TypeName (6.5.2)

lookupMethod

public CMethod lookupMethod(CClass caller,
                            java.lang.String name,
                            CType[] params)
Searches for an accessible, matching method with the provided type parameters. Looks in parent hierarchy as needed.
Overrides:
lookupMethod in class CClass
Parameters:
caller - The class of the method call expression, which is used to determine whether a matching method is accessible. If it is not accessible, the search goes on for another matching method. This parameter may be null to look up any matching method, regardless of accessibility.
name - Method name.
params - Method parameters.

lookupSuperMethod

public CMethod lookupSuperMethod(CClass caller,
                                 java.lang.String name,
                                 CType[] params)
Searches for a matching method with the provided type parameters in the superclass and/or interfaces of this type.
Overrides:
lookupSuperMethod in class CClass
Parameters:
caller - The class of the method call expression, which is used to determine whether a matching method is accessible. If it is not accessible, the search goes on for another matching method. This parameter may be null to look up any matching method, regardless of accessibility.
name - Method name.
params - Method parameters.

lookupField

public CField lookupField(java.lang.String name)
Searches for a field. Looks in parent hierarchy as needed.
Overrides:
lookupField in class CClass
Parameters:
name - field name.

isAccessible

public boolean isAccessible(CClass from)
Checks if this class is accessible from another class.
Overrides:
isAccessible in class CClass
Returns:
true If this class is accessible from the class from.

getInterfaceMethods

public CMethod[] getInterfaceMethods()
Returns a list of interface methods.
Overrides:
getInterfaceMethods in class CClass

getAbstractMethods

public CMethod[] getAbstractMethods()
Returns a list of abstract methods.
Overrides:
getAbstractMethods in class CClass

collectInterfaceMethods

public void collectInterfaceMethods(java.util.List l)
Description copied from class: CClass
Collects all methods in this type that are declared in an interface. Looks in parent hierarchy as needed.
Overrides:
collectInterfaceMethods in class CClass
Following copied from class: at.dms.kjc.CClass
Parameters:
list - Where the collected methods are placed.

collectAbstractMethods

public void collectAbstractMethods(java.util.List l)

genClassFile

public void genClassFile(java.io.File destination)
Generate the code in a class file.