Class AnnotationParanamer

  • All Implemented Interfaces:
    Paranamer

    public class AnnotationParanamer
    extends Object
    implements Paranamer
    Implementation of Paranamer that uses @Named annotation of JSR 330. It is overridable to allow other annotations to be used (JBehave, Guice's original one)
    Author:
    Paul Hammant
    • Constructor Detail

      • AnnotationParanamer

        public AnnotationParanamer()
      • AnnotationParanamer

        public AnnotationParanamer​(Paranamer fallback)
    • Method Detail

      • lookupParameterNames

        public String[] lookupParameterNames​(AccessibleObject methodOrConstructor)
        Description copied from interface: Paranamer
        Lookup the parameter names of a given method.
        Specified by:
        lookupParameterNames in interface Paranamer
        Parameters:
        methodOrConstructor - the Method or Constructor for which the parameter names are looked up.
        Returns:
        A list of the parameter names.
      • lookupParameterNames

        public String[] lookupParameterNames​(AccessibleObject methodOrCtor,
                                             boolean throwExceptionIfMissing)
        Description copied from interface: Paranamer
        Lookup the parameter names of a given method.
        Specified by:
        lookupParameterNames in interface Paranamer
        Parameters:
        methodOrCtor - the Method or Constructor for which the parameter names are looked up.
        throwExceptionIfMissing - whether to throw an exception if no Paranamer data found (versus return null).
        Returns:
        A list of the parameter names.
      • getNamedValue

        protected String getNamedValue​(Annotation ann)
        Override this if you want something other than JSR 330's Named annotation.
        return ((Named) ann).value();
        Parameters:
        ann - the annotation in question
        Returns:
        a the name value.
      • isNamed

        protected boolean isNamed​(Annotation ann)
        Override this if you want something other than JSR 330's Named annotation.
        return ann instanceof Named;
        Parameters:
        ann - the annotation in question
        Returns:
        whether it is the annotation holding the parameter name