kmy.jint.reflect
Class JintClass

java.lang.Object
  |
  +--kmy.jint.reflect.AbstractClass
        |
        +--kmy.jint.reflect.BasicClass
              |
              +--kmy.jint.reflect.JintClass

public class JintClass
extends BasicClass
implements ErrorStorage, ErrorCodes


Field Summary
private  int accessorCount
           
private  BasicNode body
           
private  ErrorStorage errorStorage
           
private  java.util.Hashtable importCache
           
private  IdentifierNode[] imports
           
private  boolean incomplete
           
private  java.util.Vector innerList
           
private  java.util.Hashtable methodBodies
           
private  StatementNode[] statements
           
private static int staticCounter
           
 
Fields inherited from class kmy.jint.reflect.BasicClass
className, classTable, descriptor, inner, interfaces, members, modifiers, name, outer, outerField, packageName, superclass
 
Fields inherited from class kmy.jint.reflect.AbstractClass
ARGLIST_INDEX, FIELD_INDEX, jvmName, METHOD_INDEX, VARIABLE
 
Fields inherited from interface kmy.jint.constants.ErrorCodes
ERR_A_ARREMPTY, ERR_A_ARRNOTEMPTY, ERR_A_BADDCL, ERR_A_BADMETHODNAME, ERR_A_BADOP, ERR_A_BADSWITCHTYPE, ERR_A_BOOLCAST, ERR_A_CANTACCLABEL, ERR_A_CANTCAST, ERR_A_CANTMAKEARR, ERR_A_CANTRESOLVE, ERR_A_CONSTERROR, ERR_A_EXPLCONTEXT, ERR_A_FIELDNOTIDENT, ERR_A_FIELDNOTSTAT, ERR_A_IMPLICITDCL, ERR_A_INSTOFPRIM1, ERR_A_INSTOFPRIM2, ERR_A_INTERNAL, ERR_A_LABELREDEF, ERR_A_MATCHARG1, ERR_A_MATCHARG2, ERR_A_MUSTBEBOOL, ERR_A_NEVER, ERR_A_NEWARRARGS, ERR_A_NOBESTMATCH, ERR_A_NOCONSTRUCTOR, ERR_A_NOFIELD, ERR_A_NOMETHOD, ERR_A_NONSTATICACC, ERR_A_NOOUTERCLASS, ERR_A_NOTCAUGHT, ERR_A_NOTINDEXABLE, ERR_A_NOTINTARGS, ERR_A_NOTINTEGER, ERR_A_NOTLVALUE, ERR_A_NOTNUMBER, ERR_A_NOTSIMPLEID, ERR_A_NOTTHROWABLE, ERR_A_NOTTHROWN, ERR_A_NOVAR, ERR_A_OBJTOPRIMCAST, ERR_A_PARAMUNRES, ERR_A_PRIMSYNC, ERR_A_PRIMTOOBJCAST, ERR_A_REGEXTE, ERR_A_STATICTHIS, ERR_A_TOBOOLCAST, ERR_A_TOVOIDCAST, ERR_A_TYPEMISMATCH, ERR_A_TYPENOTFOUND, ERR_A_VARREDECL, ERR_A_VOIDCAST, ERR_C_BADOP, ERR_C_CANTASSIGN, ERR_C_CASEMISMATCH, ERR_C_CVTNULLTOPRIM, ERR_C_DUPCASE, ERR_C_GENERIC, ERR_C_INTERFCONSTR, ERR_C_INTERNAL, ERR_C_MATCHARG1, ERR_C_NESTING, ERR_C_NEVER, ERR_C_NOCNSTRWOPRM, ERR_C_NOENCLOSING, ERR_C_NONSTATINIT, ERR_C_NOTBOOL, ERR_C_PICKEDNONSTR, ERR_C_PRIMELEM, ERR_C_RETURNREQ, ERR_C_THISASSIGN, ERR_C_TWODEFAULT, ERR_L_BACKSLASHEOF, ERR_L_CHAREND, ERR_L_COMMENTEND, ERR_L_EMPTYCHAR, ERR_L_EOFINCHAR, ERR_L_EOFINREGEX, ERR_L_EOFINSTRING, ERR_L_ILLEGALCHAR, ERR_L_IOERROR, ERR_L_NEVER, ERR_L_NUMFORMAT, ERR_L_REGEXEND, ERR_L_STRINGEND, ERR_P_ARRNOTEMPTY, ERR_P_CASEEXPECTED, ERR_P_CATCHEXPECTED, ERR_P_CLASSKEYWORD, ERR_P_DUPEXTENDS, ERR_P_DUPIMPLEMENTS, ERR_P_IDENTEXPECTED, ERR_P_NOTIMPL, ERR_P_NOTSTANDALONE, ERR_P_OPEXPECTED, ERR_P_REGEXEXPECTED, ERR_P_TOKENEXPECTED, ERR_P_TOKENINSERTED, ERR_P_TYPEEXPECTED, ERR_P_UNEXPECTED, ERR_P_VALUEEXPECTED, ERR_P_VAREXPECTED, ERR_T_ARRNOTEMPTY, ERR_T_CANTRESOLVE, ERR_T_IDEXPECTED, ERR_T_INTERNAL, ERR_T_MULTIINHERIT, ERR_T_NOTLIST, ERR_T_NOTSIMPLEID, ERR_T_ONFINISH
 
Fields inherited from interface kmy.jint.constants.MiniErrorCodes
ERR_F_BADEND, ERR_F_BADFORMATCHAR, ERR_F_GENERIC, ERR_F_INCOMPLETE, ERR_F_NOCURLBRACKET, ERR_F_NOTWITHJAVA, ERR_F_NOVARNAME, ERR_MASK_CLASSTABLE, ERR_MASK_COMPILER, ERR_MASK_ERROR, ERR_MASK_FATAL, ERR_MASK_FORMAT, ERR_MASK_GENERATOR, ERR_MASK_INFO, ERR_MASK_INTERNAL, ERR_MASK_LEXER, ERR_MASK_MODULE, ERR_MASK_PARSER, ERR_MASK_REGEX, ERR_MASK_SEVERITY, ERR_MASK_TYPER, ERR_MASK_VERBOSE, ERR_MASK_WARNING, ERR_R_BADBACKREF, ERR_R_BADSTART, ERR_R_BQBAD, ERR_R_BQUNFINISHED, ERR_R_CTLINVALID, ERR_R_CTLUNFINISHED, ERR_R_EXTRABRACKET, ERR_R_GENERIC, ERR_R_HEXBADNUMBER, ERR_R_HEXUNFINISHED, ERR_R_INTERNAL, ERR_R_NOBRACKET, ERR_R_NOCURLBRACKET, ERR_R_NOSQBRACKET, ERR_R_NOVAREXPR, ERR_R_NOVARNAME, ERR_R_STRAYBSLASH
 
Constructor Summary
JintClass(JintClassTable ct, QualifiedIdentifier className, AbstractClass outer)
           
JintClass(JintClassTable ct, QualifiedIdentifier className, AbstractClass outer, int modifiers)
           
 
Method Summary
(package private)  JintField addField(int modifiers, Identifier name, QualifiedIdentifier type)
           
(package private)  void addInnerClass(AbstractClass clazz)
           
private  void addMember(JintField f)
           
(package private)  JintMethod addMethod(int modifiers, Identifier name, QualifiedIdentifier type, QualifiedIdentifier[] params, QualifiedIdentifier[] exceptions)
           
(package private)  void doneAdding()
           
 JintField findLocalField(Identifier name, AbstractClass type)
           
 BasicNode getBody()
           
 AbstractField getField(Identifier name)
           
 java.util.Hashtable getImportCache()
           
 IdentifierNode[] getImports()
           
 MethodNode getMethodBody(JintMethod method)
           
 MethodNode getMethodBody(java.lang.String method)
           
 java.util.Enumeration getMethods(Identifier name, int nparams)
           
 StatementNode[] getStatements()
           
 AbstractClass getSuperclass()
           
(package private)  void inherit(AbstractClass clazz)
           
(package private)  void inherit(QualifiedIdentifier[] ext, QualifiedIdentifier[] impl)
           
private  void inherit(QualifiedIdentifier[] classes, java.util.Vector inh)
           
 boolean isWorld()
           
 void markAsClass()
           
 void markAsWorld()
           
 boolean mustBeClass()
           
 void reportSelfUsage()
           
 boolean selfUsed()
           
(package private)  void setBody(BasicNode body)
           
 void setErrorStorage(ErrorStorage errorStorage)
           
 void setImports(IdentifierNode[] imports)
           
(package private)  void setMethodBody(JintMethod method, MethodNode body)
           
 void squeezeOuterChain()
           
 void storeError(CompilerException e)
           
 
Methods inherited from class kmy.jint.reflect.BasicClass
addMember, dumpMethods, getClassTable, getDescriptor, getFields, getFullName, getImplementedInterfaces, getInnerClasses, getLexicallyOuter, getModifiers, getName, getOuter, getOuterField, getPackage, initDescriptor, isInterface, isPrimitive, isSubclassOf
 
Methods inherited from class kmy.jint.reflect.AbstractClass
getDimension, getElementClass, getJVMName, getNCells, toString
 
Methods inherited from class java.lang.Object
, clone, equals, finalize, getClass, hashCode, notify, notifyAll, registerNatives, wait, wait, wait
 

Field Detail

staticCounter

private static int staticCounter

body

private BasicNode body

statements

private StatementNode[] statements

innerList

private java.util.Vector innerList

importCache

private java.util.Hashtable importCache

methodBodies

private java.util.Hashtable methodBodies

imports

private IdentifierNode[] imports

incomplete

private boolean incomplete

errorStorage

private ErrorStorage errorStorage

accessorCount

private int accessorCount
Constructor Detail

JintClass

public JintClass(JintClassTable ct,
                 QualifiedIdentifier className,
                 AbstractClass outer,
                 int modifiers)

JintClass

public JintClass(JintClassTable ct,
                 QualifiedIdentifier className,
                 AbstractClass outer)
Method Detail

getSuperclass

public AbstractClass getSuperclass()
Overrides:
getSuperclass in class BasicClass

getField

public AbstractField getField(Identifier name)
Overrides:
getField in class BasicClass

getMethods

public java.util.Enumeration getMethods(Identifier name,
                                        int nparams)
Overrides:
getMethods in class BasicClass

getBody

public BasicNode getBody()

getMethodBody

public MethodNode getMethodBody(JintMethod method)

getMethodBody

public MethodNode getMethodBody(java.lang.String method)

getStatements

public StatementNode[] getStatements()

getImportCache

public java.util.Hashtable getImportCache()
Overrides:
getImportCache in class AbstractClass

setImports

public void setImports(IdentifierNode[] imports)

getImports

public IdentifierNode[] getImports()

setMethodBody

void setMethodBody(JintMethod method,
                   MethodNode body)

setBody

void setBody(BasicNode body)

inherit

void inherit(QualifiedIdentifier[] ext,
             QualifiedIdentifier[] impl)

inherit

void inherit(AbstractClass clazz)

addMethod

JintMethod addMethod(int modifiers,
                     Identifier name,
                     QualifiedIdentifier type,
                     QualifiedIdentifier[] params,
                     QualifiedIdentifier[] exceptions)

addField

JintField addField(int modifiers,
                   Identifier name,
                   QualifiedIdentifier type)

findLocalField

public JintField findLocalField(Identifier name,
                                AbstractClass type)

addInnerClass

void addInnerClass(AbstractClass clazz)

doneAdding

void doneAdding()
Overrides:
doneAdding in class BasicClass

inherit

private void inherit(QualifiedIdentifier[] classes,
                     java.util.Vector inh)

addMember

private void addMember(JintField f)

reportSelfUsage

public void reportSelfUsage()

mustBeClass

public boolean mustBeClass()

selfUsed

public boolean selfUsed()

markAsClass

public void markAsClass()

markAsWorld

public void markAsWorld()

isWorld

public boolean isWorld()
Overrides:
isWorld in class AbstractClass

squeezeOuterChain

public void squeezeOuterChain()

storeError

public void storeError(CompilerException e)
Specified by:
storeError in interface ErrorStorage

setErrorStorage

public void setErrorStorage(ErrorStorage errorStorage)