Class ReflectiveAccessorOptimizer

    • Field Detail

      • LOG

        private static final java.util.logging.Logger LOG
      • ctx

        private java.lang.Object ctx
      • thisRef

        private java.lang.Object thisRef
      • val

        private java.lang.Object val
      • EMPTYARG

        private static final java.lang.Object[] EMPTYARG
      • EMPTYCLS

        private static final java.lang.Class[] EMPTYCLS
      • first

        private boolean first
      • ingressType

        private java.lang.Class ingressType
      • returnType

        private java.lang.Class returnType
    • Constructor Detail

      • ReflectiveAccessorOptimizer

        public ReflectiveAccessorOptimizer()
      • ReflectiveAccessorOptimizer

        private ReflectiveAccessorOptimizer​(ParserContext pCtx,
                                            char[] property,
                                            int start,
                                            int offset,
                                            java.lang.Object ctx,
                                            java.lang.Object thisRef,
                                            VariableResolverFactory variableFactory)
    • Method Detail

      • compileGetChain

        private Accessor compileGetChain()
      • addAccessorNode

        private void addAccessorNode​(AccessorNode an)
      • getWithProperty

        private java.lang.Object getWithProperty​(java.lang.Object ctx)
      • getBeanPropertyAO

        private java.lang.Object getBeanPropertyAO​(java.lang.Object ctx,
                                                   java.lang.String property)
                                            throws java.lang.Exception
        Throws:
        java.lang.Exception
      • getBeanProperty

        private java.lang.Object getBeanProperty​(java.lang.Object ctx,
                                                 java.lang.String property)
                                          throws java.lang.Exception
        Throws:
        java.lang.Exception
      • getCollectionProperty

        private java.lang.Object getCollectionProperty​(java.lang.Object ctx,
                                                       java.lang.String prop)
                                                throws java.lang.Exception
        Handle accessing a property embedded in a collections, map, or array
        Parameters:
        ctx - -
        prop - -
        Returns:
        -
        Throws:
        java.lang.Exception - -
      • getCollectionPropertyAO

        private java.lang.Object getCollectionPropertyAO​(java.lang.Object ctx,
                                                         java.lang.String prop)
                                                  throws java.lang.Exception
        Throws:
        java.lang.Exception
      • getMethod

        private java.lang.Object getMethod​(java.lang.Object ctx,
                                           java.lang.String name)
                                    throws java.lang.Exception
        Find an appropriate method, execute it, and return it's response.
        Parameters:
        ctx - -
        name - -
        Returns:
        -
        Throws:
        java.lang.Exception - -
      • getMethod

        private java.lang.Object getMethod​(java.lang.Object ctx,
                                           java.lang.String name,
                                           java.lang.Object[] args,
                                           java.lang.Class[] argTypes,
                                           ExecutableStatement[] es)
                                    throws java.lang.Exception
        Throws:
        java.lang.Exception
      • getValue

        public java.lang.Object getValue​(java.lang.Object ctx,
                                         java.lang.Object elCtx,
                                         VariableResolverFactory variableFactory)
                                  throws java.lang.Exception
        Throws:
        java.lang.Exception
      • _getAccessor

        private Accessor _getAccessor​(java.lang.Object o,
                                      java.lang.Class type)
      • setRootNode

        private void setRootNode​(AccessorNode rootNode)
      • compileConstructor

        private AccessorNode compileConstructor​(char[] expression,
                                                java.lang.Object ctx,
                                                VariableResolverFactory vars)
                                         throws java.lang.InstantiationException,
                                                java.lang.IllegalAccessException,
                                                java.lang.reflect.InvocationTargetException,
                                                java.lang.ClassNotFoundException,
                                                java.lang.NoSuchMethodException
        Throws:
        java.lang.InstantiationException
        java.lang.IllegalAccessException
        java.lang.reflect.InvocationTargetException
        java.lang.ClassNotFoundException
        java.lang.NoSuchMethodException
      • propHandler

        private java.lang.Object propHandler​(java.lang.String property,
                                             java.lang.Object ctx,
                                             java.lang.Class handler)
      • propHandlerSet

        public void propHandlerSet​(java.lang.String property,
                                   java.lang.Object ctx,
                                   java.lang.Class handler,
                                   java.lang.Object value)