Package org.htmlunit.corejs.javascript
Class JavaMembers
- java.lang.Object
-
- org.htmlunit.corejs.javascript.JavaMembers
-
- Direct Known Subclasses:
JavaMembers_jdk11
class JavaMembers extends java.lang.Object- See Also:
NativeJavaObject,NativeJavaClass
-
-
Nested Class Summary
Nested Classes Modifier and Type Class Description (package private) static classJavaMembers.MethodSignature
-
Field Summary
Fields Modifier and Type Field Description private static java.security.PermissionallPermissionprivate java.lang.Class<?>cl(package private) NativeJavaMethodctorsprivate java.util.Map<java.lang.String,FieldAndMethods>fieldAndMethodsprivate java.util.Map<java.lang.String,java.lang.Object>membersprivate java.util.Map<java.lang.String,FieldAndMethods>staticFieldAndMethodsprivate java.util.Map<java.lang.String,java.lang.Object>staticMembersprivate static booleanSTRICT_REFLECTIVE_ACCESS
-
Constructor Summary
Constructors Constructor Description JavaMembers(Scriptable scope, java.lang.Class<?> cl)JavaMembers(Scriptable scope, java.lang.Class<?> cl, boolean includeProtected)
-
Method Summary
All Methods Static Methods Instance Methods Concrete Methods Modifier and Type Method Description private static JavaMemberscreateJavaMembers(Scriptable associatedScope, java.lang.Class<?> cl, boolean includeProtected)private java.lang.reflect.Method[]discoverAccessibleMethods(java.lang.Class<?> clazz, boolean includeProtected, boolean includePrivate)Retrieves mapping of methods to accessible methods for a class.private voiddiscoverAccessibleMethods(java.lang.Class<?> clazz, java.util.Map<JavaMembers.MethodSignature,java.lang.reflect.Method> map, boolean includeProtected, boolean includePrivate)(package private) voiddiscoverPublicMethods(java.lang.Class<?> clazz, java.util.Map<JavaMembers.MethodSignature,java.lang.reflect.Method> map)private static MemberBoxextractGetMethod(MemberBox[] methods, boolean isStatic)private static MemberBoxextractSetMethod(java.lang.Class<?> type, MemberBox[] methods, boolean isStatic)private static MemberBoxextractSetMethod(MemberBox[] methods, boolean isStatic)private MemberBoxfindExplicitFunction(java.lang.String name, boolean isStatic)private static MemberBoxfindGetter(boolean isStatic, java.util.Map<java.lang.String,java.lang.Object> ht, java.lang.String prefix, java.lang.String propertyName)(package private) java.lang.Objectget(Scriptable scope, java.lang.String name, java.lang.Object javaObject, boolean isStatic)private java.lang.reflect.Constructor<?>[]getAccessibleConstructors(boolean includePrivate)private java.lang.reflect.Field[]getAccessibleFields(boolean includeProtected, boolean includePrivate)private java.lang.ObjectgetExplicitFunction(Scriptable scope, java.lang.String name, java.lang.Object javaObject, boolean isStatic)(package private) java.util.Map<java.lang.String,FieldAndMethods>getFieldAndMethodsObjects(Scriptable scope, java.lang.Object javaObject, boolean isStatic)(package private) java.lang.Object[]getIds(boolean isStatic)private static java.lang.ObjectgetSecurityContext()(package private) booleanhas(java.lang.String name, boolean isStatic)private static booleanisModularJava()This method returns true if we are on a "modular" version of Java (Java 11 or up).(package private) static java.lang.StringjavaSignature(java.lang.Class<?> type)(package private) static java.lang.StringliveConnectSignature(java.lang.Class<?>[] argTypes)(package private) static JavaMemberslookupClass(Scriptable scope, java.lang.Class<?> dynamicType, java.lang.Class<?> staticType, boolean includeProtected)(package private) voidput(Scriptable scope, java.lang.String name, java.lang.Object javaObject, java.lang.Object value, boolean isStatic)private voidreflect(Context cx, Scriptable scope, boolean includeProtected, boolean includePrivate)(package private) static voidregisterMethod(java.util.Map<JavaMembers.MethodSignature,java.lang.reflect.Method> map, java.lang.reflect.Method method)(package private) java.lang.RuntimeExceptionreportMemberNotFound(java.lang.String memberName)
-
-
-
Field Detail
-
STRICT_REFLECTIVE_ACCESS
private static final boolean STRICT_REFLECTIVE_ACCESS
-
allPermission
private static final java.security.Permission allPermission
-
cl
private java.lang.Class<?> cl
-
members
private java.util.Map<java.lang.String,java.lang.Object> members
-
fieldAndMethods
private java.util.Map<java.lang.String,FieldAndMethods> fieldAndMethods
-
staticMembers
private java.util.Map<java.lang.String,java.lang.Object> staticMembers
-
staticFieldAndMethods
private java.util.Map<java.lang.String,FieldAndMethods> staticFieldAndMethods
-
ctors
NativeJavaMethod ctors
-
-
Constructor Detail
-
JavaMembers
JavaMembers(Scriptable scope, java.lang.Class<?> cl)
-
JavaMembers
JavaMembers(Scriptable scope, java.lang.Class<?> cl, boolean includeProtected)
-
-
Method Detail
-
isModularJava
private static boolean isModularJava()
This method returns true if we are on a "modular" version of Java (Java 11 or up). It does not use the SourceVersion class because this is not present on Android.
-
has
boolean has(java.lang.String name, boolean isStatic)
-
get
java.lang.Object get(Scriptable scope, java.lang.String name, java.lang.Object javaObject, boolean isStatic)
-
put
void put(Scriptable scope, java.lang.String name, java.lang.Object javaObject, java.lang.Object value, boolean isStatic)
-
getIds
java.lang.Object[] getIds(boolean isStatic)
-
javaSignature
static java.lang.String javaSignature(java.lang.Class<?> type)
-
liveConnectSignature
static java.lang.String liveConnectSignature(java.lang.Class<?>[] argTypes)
-
findExplicitFunction
private MemberBox findExplicitFunction(java.lang.String name, boolean isStatic)
-
getExplicitFunction
private java.lang.Object getExplicitFunction(Scriptable scope, java.lang.String name, java.lang.Object javaObject, boolean isStatic)
-
discoverAccessibleMethods
private java.lang.reflect.Method[] discoverAccessibleMethods(java.lang.Class<?> clazz, boolean includeProtected, boolean includePrivate)Retrieves mapping of methods to accessible methods for a class. In case the class is not public, retrieves methods with same signature as its public methods from public superclasses and interfaces (if they exist). Basically upcasts every method to the nearest accessible method.
-
discoverAccessibleMethods
private void discoverAccessibleMethods(java.lang.Class<?> clazz, java.util.Map<JavaMembers.MethodSignature,java.lang.reflect.Method> map, boolean includeProtected, boolean includePrivate)
-
discoverPublicMethods
void discoverPublicMethods(java.lang.Class<?> clazz, java.util.Map<JavaMembers.MethodSignature,java.lang.reflect.Method> map)
-
registerMethod
static void registerMethod(java.util.Map<JavaMembers.MethodSignature,java.lang.reflect.Method> map, java.lang.reflect.Method method)
-
reflect
private void reflect(Context cx, Scriptable scope, boolean includeProtected, boolean includePrivate)
-
getAccessibleConstructors
private java.lang.reflect.Constructor<?>[] getAccessibleConstructors(boolean includePrivate)
-
getAccessibleFields
private java.lang.reflect.Field[] getAccessibleFields(boolean includeProtected, boolean includePrivate)
-
findGetter
private static MemberBox findGetter(boolean isStatic, java.util.Map<java.lang.String,java.lang.Object> ht, java.lang.String prefix, java.lang.String propertyName)
-
extractSetMethod
private static MemberBox extractSetMethod(java.lang.Class<?> type, MemberBox[] methods, boolean isStatic)
-
getFieldAndMethodsObjects
java.util.Map<java.lang.String,FieldAndMethods> getFieldAndMethodsObjects(Scriptable scope, java.lang.Object javaObject, boolean isStatic)
-
lookupClass
static JavaMembers lookupClass(Scriptable scope, java.lang.Class<?> dynamicType, java.lang.Class<?> staticType, boolean includeProtected)
-
createJavaMembers
private static JavaMembers createJavaMembers(Scriptable associatedScope, java.lang.Class<?> cl, boolean includeProtected)
-
getSecurityContext
private static java.lang.Object getSecurityContext()
-
reportMemberNotFound
java.lang.RuntimeException reportMemberNotFound(java.lang.String memberName)
-
-