Class JavaMembers

    • Field Detail

      • 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
    • Constructor Detail

      • JavaMembers

        JavaMembers​(Scriptable scope,
                    java.lang.Class<?> cl)
      • JavaMembers

        JavaMembers​(Scriptable scope,
                    java.lang.Class<?> cl,
                    boolean includeProtected)
    • Method Detail

      • 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 static 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 static void discoverAccessibleMethods​(java.lang.Class<?> clazz,
                                                      java.util.Map<JavaMembers.MethodSignature,​java.lang.reflect.Method> map,
                                                      boolean includeProtected,
                                                      boolean includePrivate)
      • reflect

        private void reflect​(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)
      • extractGetMethod

        private static MemberBox extractGetMethod​(MemberBox[] methods,
                                                  boolean isStatic)
      • extractSetMethod

        private static MemberBox extractSetMethod​(java.lang.Class<?> type,
                                                  MemberBox[] methods,
                                                  boolean isStatic)
      • extractSetMethod

        private static MemberBox extractSetMethod​(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)
      • reportMemberNotFound

        java.lang.RuntimeException reportMemberNotFound​(java.lang.String memberName)