Class ParameterDescription.ForLoadedParameter.Dispatcher.ForJava8CapableVm

    • Field Summary

      Fields 
      Modifier and Type Field Description
      private java.lang.reflect.Method getModifiers
      A reference to java.lang.reflect.Parameter#getModifiers.
      private java.lang.reflect.Method getName
      A reference to java.lang.reflect.Parameter#getName.
      private java.lang.reflect.Method getParameters
      A reference to java.lang.reflect.Executable#getParameters.
      private java.lang.reflect.Method isNamePresent
      A reference to java.lang.reflect.Parameter#isNamePresent.
      private static java.lang.Object[] NO_ARGUMENTS
      An empty array that can be used to indicate no arguments to avoid an allocation on a reflective call.
    • Constructor Summary

      Constructors 
      Modifier Constructor Description
      protected ForJava8CapableVm​(java.lang.reflect.Method getParameters, java.lang.reflect.Method getName, java.lang.reflect.Method isNamePresent, java.lang.reflect.Method getModifiers)
      Creates a new dispatcher for a modern VM.
    • Method Summary

      All Methods Instance Methods Concrete Methods 
      Modifier and Type Method Description
      int getModifiers​(java.lang.reflect.AccessibleObject executable, int index)
      Returns the given parameter's modifiers.
      java.lang.String getName​(java.lang.reflect.AccessibleObject executable, int index)
      Returns the given parameter's implicit or explicit name.
      private java.lang.Object getParameter​(java.lang.reflect.AccessibleObject executable, int index)
      Returns the java.lang.reflect.Parameter of an executable at a given index.
      boolean isNamePresent​(java.lang.reflect.AccessibleObject executable, int index)
      Returns true if the given parameter has an explicit name.
      • Methods inherited from class java.lang.Object

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

      • NO_ARGUMENTS

        private static final java.lang.Object[] NO_ARGUMENTS
        An empty array that can be used to indicate no arguments to avoid an allocation on a reflective call.
      • getParameters

        private final java.lang.reflect.Method getParameters
        A reference to java.lang.reflect.Executable#getParameters.
      • getName

        private final java.lang.reflect.Method getName
        A reference to java.lang.reflect.Parameter#getName.
      • isNamePresent

        private final java.lang.reflect.Method isNamePresent
        A reference to java.lang.reflect.Parameter#isNamePresent.
      • getModifiers

        private final java.lang.reflect.Method getModifiers
        A reference to java.lang.reflect.Parameter#getModifiers.
    • Constructor Detail

      • ForJava8CapableVm

        protected ForJava8CapableVm​(java.lang.reflect.Method getParameters,
                                    java.lang.reflect.Method getName,
                                    java.lang.reflect.Method isNamePresent,
                                    java.lang.reflect.Method getModifiers)
        Creates a new dispatcher for a modern VM.
        Parameters:
        getParameters - A reference to java.lang.reflect.Executable#getTypeArguments.
        getName - A reference to java.lang.reflect.Parameter#getName.
        isNamePresent - A reference to java.lang.reflect.Parameter#isNamePresent.
        getModifiers - A reference to java.lang.reflect.Parameter#getModifiers.
    • Method Detail

      • getModifiers

        public int getModifiers​(java.lang.reflect.AccessibleObject executable,
                                int index)
        Returns the given parameter's modifiers.
        Specified by:
        getModifiers in interface ParameterDescription.ForLoadedParameter.Dispatcher
        Parameters:
        executable - The executable to introspect.
        index - The parameter's index.
        Returns:
        The parameter's modifiers.
      • isNamePresent

        public boolean isNamePresent​(java.lang.reflect.AccessibleObject executable,
                                     int index)
        Returns true if the given parameter has an explicit name.
        Specified by:
        isNamePresent in interface ParameterDescription.ForLoadedParameter.Dispatcher
        Parameters:
        executable - The parameter to introspect.
        index - The parameter's index.
        Returns:
        true if the given parameter has an explicit name.
      • getName

        public java.lang.String getName​(java.lang.reflect.AccessibleObject executable,
                                        int index)
        Returns the given parameter's implicit or explicit name.
        Specified by:
        getName in interface ParameterDescription.ForLoadedParameter.Dispatcher
        Parameters:
        executable - The parameter to introspect.
        index - The parameter's index.
        Returns:
        The parameter's name.
      • getParameter

        private java.lang.Object getParameter​(java.lang.reflect.AccessibleObject executable,
                                              int index)
        Returns the java.lang.reflect.Parameter of an executable at a given index.
        Parameters:
        executable - The executable for which a parameter should be read.
        index - The index of the parameter.
        Returns:
        The parameter for the given index.