Package org.apache.tapestry5.ioc.internal.services

# Class MethodIterator

java.lang.Object
org.apache.tapestry5.ioc.internal.services.MethodIterator

public class MethodIterator extends Object
Utility used to iterate over the publicly visible methods of a class or interface. The MethodIterator understands some complications that can occur when a class inherits the same method from multiple interfaces and with slightly different signatures (due to the fact that declared thrown exceptions can vary slightly for the "same" method).

See Also:
  - `MethodSignature.isOverridingSignatureOf(MethodSignature)`

- ## Constructor Summary

  Constructors
  Constructor
  Description
  `MethodIterator(Class subjectClass)`

- ## Method Summary

  Modifier and Type
  Method
  Description
  `boolean`
  `getToString()`
  Returns true if the method `public String toString()` is part of the interface.
  `boolean`
  `hasNext()`
  `static boolean`
  `isToString(Method method)`
  Returns true if the method is the standard toString() method.
  `MethodSignature`
  `next()`
  Returns the next method (as a `MethodSignature`, returning null when all are exhausted.

  ### Methods inherited from class java.lang.Object

  `clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait`

- ## Constructor Details

  - ### MethodIterator

    public MethodIterator(Class subjectClass)

- ## Method Details

  - ### isToString

    public static boolean isToString(Method method)
    Returns true if the method is the standard toString() method. Very few interfaces will ever include this method as part of the interface, but we have to be sure.

  - ### hasNext

    public boolean hasNext()

  - ### next

    public MethodSignature next()
    Returns the next method (as a `MethodSignature`, returning null when all are exhausted. Each method signature is returned exactly once (even if the same method signature is defined in multiple inherited classes or interfaces). The method signatures returned in ascending order, according to the "natural ordering".
    Throws:
      `NoSuchElementException` - if there are no more signatures

  - ### getToString

    public boolean getToString()
    Returns true if the method `public String toString()` is part of the interface. This will be known immediately after iterator contruction (it is not necessary to iterate the methods first).