kmy.jint.reflect
Class JintClassTable
java.lang.Object
|
+--kmy.jint.reflect.JintClassTable
- public class JintClassTable
- extends java.lang.Object
- implements DefinitionConst, ErrorCodes
Fields inherited from interface kmy.jint.constants.DefinitionConst |
ABSTRACT_FLAG,
ACC_ABSTRACT,
ACC_FINAL,
ACC_INTERFACE,
ACC_MASK,
ACC_NATIVE,
ACC_PRIVATE,
ACC_PROTECTED,
ACC_PUBLIC,
ACC_STATIC,
ACC_SUPER,
ACC_SYNCHRONIZED,
ACC_TRANSIENT,
ACC_VOLATILE,
CONST_FLAG,
EXPLICIT_FLAG,
FINAL_FLAG,
INTERFACE_FLAG,
METHOD_SCOPE_FLAG,
MUST_BE_CLASS_FLAG,
NATIVE_FLAG,
PACKAGE_PRIVATE_FLAG,
PRIVATE_FLAG,
PROTECTED_FLAG,
PUBLIC_FLAG,
SCRIPT_STYLE_FLAG,
SELF_USED_FLAG,
STATIC_FLAG,
STRICT_FLAG,
SYNCHRONIZED_FLAG,
TRANSIENT_FLAG,
VOLATILE_FLAG,
WHERE_FLAG,
WORLD_FLAG |
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 |
Method Summary |
boolean |
canAssign(AbstractClass value,
AbstractClass var)
|
void |
completeAllScopes()
|
void |
completeScope(BasicNode baseNode)
|
protected AbstractClass |
createClass(QualifiedIdentifier name,
java.lang.Class clazz)
Called when someone wants to find some new class |
JintClass |
createEmptyClass(AbstractClass outer,
QualifiedIdentifier fullName)
|
protected AbstractClass |
createJVMClass(QualifiedIdentifier name,
java.lang.Class clazz)
|
void |
finishStartUp()
|
AbstractClass |
getClass(AbstractClass scope,
Identifier[] idList,
IdentifierNode[] imports)
|
AbstractClass |
getClass(AbstractClass scope,
Identifier[] idList,
int off,
int length,
IdentifierNode[] imports)
|
(package private) AbstractClass |
getClass(AbstractClass scope,
IdentifierNode[] imports,
java.util.Hashtable importCache,
IdentifierNode ident)
|
AbstractClass |
getClass(java.lang.Class clazz)
|
AbstractClass |
getClass(Identifier shortName,
IdentifierNode[] imports)
|
AbstractClass |
getClass(QualifiedIdentifier name)
|
AbstractClass |
getClass(QualifiedIdentifier name,
java.lang.Class clazz)
|
AbstractClass |
getClass(java.lang.String descriptor)
|
AbstractClass |
getClass(java.lang.String descriptor,
java.lang.Class clazz)
|
ClassConsumer |
getClassConsumer()
|
private java.util.Hashtable |
getImportCache(IdentifierNode imp)
|
boolean |
getLooseExceptionCheck()
|
NameTable |
getNameTable()
|
boolean |
getNoLongTypes()
|
int |
getSize(AbstractClass ac)
|
AbstractClass |
getWorld()
|
AbstractClass |
getWrappedType(AbstractClass clazz)
|
AbstractClass |
getWrapper(AbstractClass clazz)
|
void |
init()
|
boolean |
isStartUp()
|
(package private) QualifiedIdentifier |
locateClass(AbstractClass scope,
IdentifierNode[] imports,
java.util.Hashtable importCache,
IdentifierNode ident,
JintClassTable.JintClassConsumer consumer)
|
(package private) QualifiedIdentifier[] |
locateClassList(AbstractClass scope,
IdentifierNode[] imports,
java.util.Hashtable importCache,
IdentifierNode[] ident,
JintClassTable.JintClassConsumer consumer,
ErrorStorage errorStorage)
|
(package private) QualifiedIdentifier[] |
locateClassList(AbstractClass scope,
IdentifierNode[] imports,
java.util.Hashtable importCache,
ParameterNode[] params,
JintClassTable.JintClassConsumer consumer,
ErrorStorage errorStorage)
|
(package private) QualifiedIdentifier |
locateSimpleClass(AbstractClass scope,
IdentifierNode[] imports,
java.util.Hashtable importCache,
IdentifierNode ident,
JintClassTable.JintClassConsumer consumer)
|
protected AbstractClass |
lookupClass(QualifiedIdentifier name)
|
private AbstractClass |
lookupInImport(IdentifierNode imp,
Identifier shortName)
|
private void |
processDefs(JintClass newClass,
int modifiers,
QualifiedIdentifier type,
ExpressionNode[] defs)
|
private boolean |
processMethod(Identifier className,
JintClass newClass,
Identifier methodName,
MethodNode methodNode,
java.util.Hashtable importCache,
IdentifierNode[] imports)
|
void |
registerClass(AbstractClass aClass)
|
protected void |
registerClass(AbstractClass aClass,
boolean force)
|
void |
setJVMClassesEnabled(boolean jvmClassesEnabled)
|
void |
setLooseExceptionCheck(boolean t)
|
void |
setNoLongTypes(boolean noLongTypes)
|
void |
setSourceFactory(SourceFactory sf)
|
void |
setWorld(AbstractClass world)
|
(package private) void |
throwCantResolve(IdentifierNode ident,
AbstractClass scope)
|
Methods inherited from class java.lang.Object |
,
clone,
equals,
finalize,
getClass,
hashCode,
notify,
notifyAll,
registerNatives,
toString,
wait,
wait,
wait |
table
java.util.Hashtable table
nameTable
NameTable nameTable
noLongTypes
boolean noLongTypes
NOT_THERE
private static java.lang.Object NOT_THERE
lock
private java.lang.Object lock
jvmClassesEnabled
private boolean jvmClassesEnabled
canListPackages
private boolean canListPackages
javaOnlyClasses
private boolean javaOnlyClasses
looseExceptionCheck
private boolean looseExceptionCheck
importCaches
private java.util.Hashtable importCaches
- maps import IdentifierNodes to their cache tables
javaLangCache
private java.util.Hashtable javaLangCache
startUp
private boolean startUp
INIT
public Identifier INIT
intType
public AbstractClass intType
byteType
public AbstractClass byteType
charType
public AbstractClass charType
shortType
public AbstractClass shortType
doubleType
public AbstractClass doubleType
floatType
public AbstractClass floatType
longType
public AbstractClass longType
booleanType
public AbstractClass booleanType
voidType
public AbstractClass voidType
numberClass
public AbstractClass numberClass
integerClass
public AbstractClass integerClass
byteClass
public AbstractClass byteClass
characterClass
public AbstractClass characterClass
shortClass
public AbstractClass shortClass
doubleClass
public AbstractClass doubleClass
floatClass
public AbstractClass floatClass
longClass
public AbstractClass longClass
booleanClass
public AbstractClass booleanClass
objectClass
public AbstractClass objectClass
cloneableClass
public AbstractClass cloneableClass
serializableClass
public AbstractClass serializableClass
stringClass
public AbstractClass stringClass
throwableClass
public AbstractClass throwableClass
exceptionClass
public AbstractClass exceptionClass
errorClass
public AbstractClass errorClass
runtimeExceptionClass
public AbstractClass runtimeExceptionClass
arglistClass
public AbstractClass arglistClass
classClass
public AbstractClass classClass
anyClass
public AbstractClass anyClass
regexClass
public AbstractClass regexClass
regexStubClass
public AbstractClass regexStubClass
replacerClass
public AbstractClass replacerClass
formatterClass
public AbstractClass formatterClass
charStringClass
public AbstractClass charStringClass
charTypeArray
public AbstractClass charTypeArray
abstractContainerClass
public AbstractClass abstractContainerClass
caseInsensitiveRegexClass
public AbstractClass caseInsensitiveRegexClass
abstractListClass
public AbstractClass abstractListClass
vectorClass
public AbstractClass vectorClass
dictionaryClass
public AbstractClass dictionaryClass
exceptionClassArr
public AbstractClass[] exceptionClassArr
utilities
public ClassUtilities utilities
sourceFactry
SourceFactory sourceFactry
scopeMode
boolean scopeMode
worldClass
AbstractClass worldClass
sourceFactory
SourceFactory sourceFactory
classNodeTable
java.util.Hashtable classNodeTable
startStack
java.util.Stack startStack
javaLangImport
IdentifierNode javaLangImport
kmyJintLangImport
IdentifierNode kmyJintLangImport
alreadyCompleting
boolean alreadyCompleting
JintClassTable
public JintClassTable(NameTable nameTable)
JintClassTable
public JintClassTable(NameTable nameTable,
boolean canListPackages,
boolean javaOnlyClasses,
SourceFactory sourceFactory)
init
public void init()
setLooseExceptionCheck
public void setLooseExceptionCheck(boolean t)
getLooseExceptionCheck
public boolean getLooseExceptionCheck()
isStartUp
public boolean isStartUp()
setJVMClassesEnabled
public void setJVMClassesEnabled(boolean jvmClassesEnabled)
finishStartUp
public void finishStartUp()
setNoLongTypes
public void setNoLongTypes(boolean noLongTypes)
getNoLongTypes
public boolean getNoLongTypes()
getSize
public int getSize(AbstractClass ac)
getNameTable
public NameTable getNameTable()
canAssign
public boolean canAssign(AbstractClass value,
AbstractClass var)
getClass
public AbstractClass getClass(java.lang.Class clazz)
getClass
public AbstractClass getClass(java.lang.String descriptor)
getClass
public AbstractClass getClass(QualifiedIdentifier name)
getClass
public AbstractClass getClass(java.lang.String descriptor,
java.lang.Class clazz)
getClass
public AbstractClass getClass(QualifiedIdentifier name,
java.lang.Class clazz)
getClass
public AbstractClass getClass(Identifier shortName,
IdentifierNode[] imports)
getClass
public AbstractClass getClass(AbstractClass scope,
Identifier[] idList,
IdentifierNode[] imports)
getClass
public AbstractClass getClass(AbstractClass scope,
Identifier[] idList,
int off,
int length,
IdentifierNode[] imports)
lookupClass
protected AbstractClass lookupClass(QualifiedIdentifier name)
registerClass
public void registerClass(AbstractClass aClass)
registerClass
protected void registerClass(AbstractClass aClass,
boolean force)
createJVMClass
protected AbstractClass createJVMClass(QualifiedIdentifier name,
java.lang.Class clazz)
getWrapper
public AbstractClass getWrapper(AbstractClass clazz)
getWrappedType
public AbstractClass getWrappedType(AbstractClass clazz)
setSourceFactory
public void setSourceFactory(SourceFactory sf)
setWorld
public void setWorld(AbstractClass world)
getWorld
public AbstractClass getWorld()
getClassConsumer
public ClassConsumer getClassConsumer()
createClass
protected AbstractClass createClass(QualifiedIdentifier name,
java.lang.Class clazz)
- Called when someone wants to find some new class
createEmptyClass
public JintClass createEmptyClass(AbstractClass outer,
QualifiedIdentifier fullName)
throwCantResolve
void throwCantResolve(IdentifierNode ident,
AbstractClass scope)
processMethod
private boolean processMethod(Identifier className,
JintClass newClass,
Identifier methodName,
MethodNode methodNode,
java.util.Hashtable importCache,
IdentifierNode[] imports)
processDefs
private void processDefs(JintClass newClass,
int modifiers,
QualifiedIdentifier type,
ExpressionNode[] defs)
completeScope
public void completeScope(BasicNode baseNode)
completeAllScopes
public void completeAllScopes()
locateClassList
QualifiedIdentifier[] locateClassList(AbstractClass scope,
IdentifierNode[] imports,
java.util.Hashtable importCache,
IdentifierNode[] ident,
JintClassTable.JintClassConsumer consumer,
ErrorStorage errorStorage)
locateClassList
QualifiedIdentifier[] locateClassList(AbstractClass scope,
IdentifierNode[] imports,
java.util.Hashtable importCache,
ParameterNode[] params,
JintClassTable.JintClassConsumer consumer,
ErrorStorage errorStorage)
locateSimpleClass
QualifiedIdentifier locateSimpleClass(AbstractClass scope,
IdentifierNode[] imports,
java.util.Hashtable importCache,
IdentifierNode ident,
JintClassTable.JintClassConsumer consumer)
locateClass
QualifiedIdentifier locateClass(AbstractClass scope,
IdentifierNode[] imports,
java.util.Hashtable importCache,
IdentifierNode ident,
JintClassTable.JintClassConsumer consumer)
getClass
AbstractClass getClass(AbstractClass scope,
IdentifierNode[] imports,
java.util.Hashtable importCache,
IdentifierNode ident)
getImportCache
private java.util.Hashtable getImportCache(IdentifierNode imp)
lookupInImport
private AbstractClass lookupInImport(IdentifierNode imp,
Identifier shortName)