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

## Class MethodIterator

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

-     public class MethodIterator
      extends java.lang.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​(java.lang.Class subjectClass)` |

  - ### Method Summary

    All Methods Static Methods Instance Methods Concrete Methods
    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​(java.lang.reflect.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 Detail

    - #### MethodIterator

          public MethodIterator​(java.lang.Class subjectClass)

  - ### Method Detail

    - #### isToString

          public static boolean isToString​(java.lang.reflect.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:
        `java.util.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).