Record Class MethodDescription

java.lang.Object
java.lang.Record
io.github.kaktushose.jdac.definitions.description.MethodDescription
Record Components:
declaringClass - the declaring Class of this method
returnType - the Class this method returns
name - the name of the method
modifiers - the Java language modifiers of this method
parameters - a SequencedCollection of the ParameterDescriptions of this method
annotations - a Collection of all Annotations this method is annotated with
invoker - the corresponding Invoker, used to invoke this method
All Implemented Interfaces:
Description

public record MethodDescription(Class<?> declaringClass, Class<?> returnType, Type genericReturnType, String name, int modifiers, SequencedCollection<ParameterDescription> parameters, Collection<AnnotationDescription<?>> annotations, Invoker invoker) extends Record implements Description
A Description that describes a method.
  • Constructor Details

    • MethodDescription

      public MethodDescription(Class<?> declaringClass, Class<?> returnType, Type genericReturnType, String name, int modifiers, SequencedCollection<ParameterDescription> parameters, Collection<AnnotationDescription<?>> annotations, Invoker invoker)
      Creates an instance of a MethodDescription record class.
      Parameters:
      declaringClass - the value for the declaringClass record component
      returnType - the value for the returnType record component
      genericReturnType - the value for the genericReturnType record component
      name - the value for the name record component
      modifiers - the value for the modifiers record component
      parameters - the value for the parameters record component
      annotations - the value for the annotations record component
      invoker - the value for the invoker record component
  • Method Details

    • findParameter

      public Optional<ParameterDescription> findParameter(String name)

      Gets the parameter matching the given name if any.

      Please note that if -parameters isn't present on the 'javac' command, this is just arg0, arg1 etc. if using Descriptor.REFLECTIVE.

      Parameters:
      name - the parameters name
      Returns:
      the matching ParameterDescription or Optional.empty()
    • parameter

      public ParameterDescription parameter(String name)

      Gets the parameter matching the given name. Throws if no matching parameter is found.

      Please note that if -parameters isn't present on the 'javac' command, this is just arg0, arg1 etc. if using Descriptor.REFLECTIVE.

      Parameters:
      name - the parameters name
      Returns:
      the matching ParameterDescription
      Throws:
      NoSuchElementException - if no element was found
      See Also:
    • toMethodType

      public MethodType toMethodType()
      Returns:
      the return type and parameters of this method as a MethodType
    • toString

      public String toString()
      Returns a string representation of this record class. The representation contains the name of the class, followed by the name and value of each of the record components.
      Specified by:
      toString in class Record
      Returns:
      a string representation of this object
    • hashCode

      public final int hashCode()
      Returns a hash code value for this object. The value is derived from the hash code of each of the record components.
      Specified by:
      hashCode in class Record
      Returns:
      a hash code value for this object
    • equals

      public final boolean equals(Object o)
      Indicates whether some other object is "equal to" this one. The objects are equal if the other object is of the same class and if all the record components are equal. Reference components are compared with Objects::equals(Object,Object); primitive components are compared with the compare method from their corresponding wrapper classes.
      Specified by:
      equals in class Record
      Parameters:
      o - the object with which to compare
      Returns:
      true if this object is the same as the o argument; false otherwise.
    • declaringClass

      public Class<?> declaringClass()
      Returns the value of the declaringClass record component.
      Returns:
      the value of the declaringClass record component
    • returnType

      public Class<?> returnType()
      Returns the value of the returnType record component.
      Returns:
      the value of the returnType record component
    • genericReturnType

      public Type genericReturnType()
      Returns the value of the genericReturnType record component.
      Returns:
      the value of the genericReturnType record component
    • name

      public String name()
      Returns the value of the name record component.
      Returns:
      the value of the name record component
    • modifiers

      public int modifiers()
      Returns the value of the modifiers record component.
      Returns:
      the value of the modifiers record component
    • parameters

      Returns the value of the parameters record component.
      Returns:
      the value of the parameters record component
    • annotations

      public Collection<AnnotationDescription<?>> annotations()
      Returns the value of the annotations record component.
      Specified by:
      annotations in interface Description
      Returns:
      the value of the annotations record component
    • invoker

      public Invoker invoker()
      Returns the value of the invoker record component.
      Returns:
      the value of the invoker record component