Class MemberCacheUtils


  • class MemberCacheUtils
    extends java.lang.Object
    • Method Summary

      All Methods Instance Methods Concrete Methods 
      Modifier and Type Method Description
      (package private) java.lang.reflect.Member cacheMember​(java.lang.Object instance, java.lang.String attributeName, java.lang.Class<?>[] argumentTypes, EvaluationContextImpl context, java.lang.String filename, int lineNumber)  
      private java.lang.reflect.Method findMethod​(java.lang.Object object, java.lang.Class<?> clazz, java.lang.String name, java.lang.Class<?>[] requiredTypes, java.lang.String filename, int lineNumber, EvaluationOptions evaluationOptions)
      Finds an appropriate method by comparing if parameter types are compatible.
      private java.util.List<java.lang.reflect.Method> getCandidates​(java.lang.Class<?> clazz, java.lang.String name, java.lang.Object[] requiredTypes)  
      (package private) java.lang.reflect.Member getMember​(java.lang.Object instance, java.lang.String attributeName, java.lang.Class<?>[] argumentTypes)  
      private boolean isCompatibleType​(java.lang.Class<?> type1, java.lang.Class<?> type2)  
      private java.lang.reflect.Member reflect​(java.lang.Object object, java.lang.String attributeName, java.lang.Class<?>[] parameterTypes, java.lang.String filename, int lineNumber, EvaluationOptions evaluationOptions)
      Performs the actual reflection to obtain a "Member" from a class.
      private void verifyUnsafeMethod​(java.lang.String filename, int lineNumber, EvaluationOptions evaluationOptions, java.lang.Object object, java.lang.reflect.Method method)  
      private java.lang.Class<?> widen​(java.lang.Class<?> clazz)
      Performs a widening conversion (primitive to boxed type)
      • Methods inherited from class java.lang.Object

        clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
    • Constructor Detail

      • MemberCacheUtils

        MemberCacheUtils()
    • Method Detail

      • getMember

        java.lang.reflect.Member getMember​(java.lang.Object instance,
                                           java.lang.String attributeName,
                                           java.lang.Class<?>[] argumentTypes)
      • cacheMember

        java.lang.reflect.Member cacheMember​(java.lang.Object instance,
                                             java.lang.String attributeName,
                                             java.lang.Class<?>[] argumentTypes,
                                             EvaluationContextImpl context,
                                             java.lang.String filename,
                                             int lineNumber)
      • reflect

        private java.lang.reflect.Member reflect​(java.lang.Object object,
                                                 java.lang.String attributeName,
                                                 java.lang.Class<?>[] parameterTypes,
                                                 java.lang.String filename,
                                                 int lineNumber,
                                                 EvaluationOptions evaluationOptions)
        Performs the actual reflection to obtain a "Member" from a class.
      • findMethod

        private java.lang.reflect.Method findMethod​(java.lang.Object object,
                                                    java.lang.Class<?> clazz,
                                                    java.lang.String name,
                                                    java.lang.Class<?>[] requiredTypes,
                                                    java.lang.String filename,
                                                    int lineNumber,
                                                    EvaluationOptions evaluationOptions)
        Finds an appropriate method by comparing if parameter types are compatible. This is more relaxed than class.getMethod.
      • verifyUnsafeMethod

        private void verifyUnsafeMethod​(java.lang.String filename,
                                        int lineNumber,
                                        EvaluationOptions evaluationOptions,
                                        java.lang.Object object,
                                        java.lang.reflect.Method method)
      • widen

        private java.lang.Class<?> widen​(java.lang.Class<?> clazz)
        Performs a widening conversion (primitive to boxed type)
      • getCandidates

        private java.util.List<java.lang.reflect.Method> getCandidates​(java.lang.Class<?> clazz,
                                                                       java.lang.String name,
                                                                       java.lang.Object[] requiredTypes)
      • isCompatibleType

        private boolean isCompatibleType​(java.lang.Class<?> type1,
                                         java.lang.Class<?> type2)