Groovy Documentation

## org.codehaus.groovy.runtime
[Java] Class ConversionHandler

    java.lang.Object
      org.codehaus.groovy.runtime.ConversionHandler

All Implemented Interfaces:
  java.lang.reflect.InvocationHandler, java.io.Serializable

    public abstract class ConversionHandler
    extends java.lang.Object

This class is a general adapter to map a call to a Java interface to a given delegate.

Authors:
  Ben Yu
  Jochen Theodorou

Constructor Summary
`ConversionHandler(java.lang.Object delegate)` Creates a ConversionHandler with an delegate.

Method Summary
`protected boolean` | `checkMethod(java.lang.reflect.Method method)`
`boolean` | `equals(java.lang.Object obj)` Indicates whether some other object is "equal to" this one.
`java.lang.Object` | `getDelegate()` Returns the delegate.
`int` | `hashCode()` Returns a hash code value for the delegate.
`java.lang.Object` | `invoke(java.lang.Object proxy, java.lang.reflect.Method method, java.lang.Object[] args)` This method is a default implementation for the invoke method given in InvocationHandler.
`java.lang.Object` | `invokeCustom(java.lang.Object proxy, java.lang.reflect.Method method, java.lang.Object[] args)` This method is called for all Methods not defined on Object.
`static boolean` | `isCoreObjectMethod(java.lang.reflect.Method method)` Checks whether a method is a core method from java.lang.Object.
`java.lang.String` | `toString()` Returns a String version of the delegate.

Methods inherited from class java.lang.Object
java.lang.Object#wait(long), java.lang.Object#wait(long, int), java.lang.Object#wait(), java.lang.Object#equals(java.lang.Object), java.lang.Object#toString(), java.lang.Object#hashCode(), java.lang.Object#getClass(), java.lang.Object#notify(), java.lang.Object#notifyAll()

Constructor Detail

### ConversionHandler

    public ConversionHandler(java.lang.Object delegate)

  Creates a ConversionHandler with an delegate.
  throws:
    IllegalArgumentException if the given delegate is null
  Parameters:
    `delegate` - the delegate

Method Detail

### checkMethod

    protected boolean checkMethod(java.lang.reflect.Method method)

### equals

    public boolean equals(java.lang.Object obj)

  Indicates whether some other object is "equal to" this one. The delegate is used if the class of the parameter and the current class are equal. In other cases the method will return false. The exact class is here used, if inheritance is needed, this method must be overwritten.
  See Also:
    java.lang.Object#equals(java.lang.Object)

### getDelegate

    public java.lang.Object getDelegate()

  Returns the delegate.
  Returns:
    the delegate

### hashCode

    public int hashCode()

  Returns a hash code value for the delegate.
  See Also:
    java.lang.Object#hashCode()

### invoke

    public java.lang.Object invoke(java.lang.Object proxy, java.lang.reflect.Method method, java.lang.Object[] args)

  This method is a default implementation for the invoke method given in InvocationHandler. Any call to a method with a declaring class that is not Object, excluding toString(), is redirected to invokeCustom. Methods like equals and hashcode are called on the class itself instead of the delegate because they are considered fundamental methods that should not be overwritten. The toString() method gets special treatment as it is deemed to be a method that you might wish to override when called from Groovy.

  In many scenarios, it is better to overwrite the invokeCustom method where the core Object related methods are filtered out.
  throws:
    Throwable if caused by the delegate or the method
  Parameters:
    `proxy` - the proxy
    `method` - the method
    `args` - the arguments
  Returns:
    the result of the invocation by method or delegate
  See Also:
    invokeCustom(Object, Method, Object[])
    InvocationHandler#invoke(java.lang.Object, java.lang.reflect.Method, java.lang.Object[])

### invokeCustom

    public java.lang.Object invokeCustom(java.lang.Object proxy, java.lang.reflect.Method method, java.lang.Object[] args)

  This method is called for all Methods not defined on Object. The delegate should be called here.
  throws:
    Throwable any exception causes by the delegate
  Parameters:
    `proxy` - the proxy
    `method` - the method
    `args` - the arguments
  Returns:
    the result of the invocation of the delegate
  See Also:
    invoke(Object, Method, Object[])
    InvocationHandler#invoke(java.lang.Object, java.lang.reflect.Method, java.lang.Object[])

### isCoreObjectMethod

    public static boolean isCoreObjectMethod(java.lang.reflect.Method method)

  Checks whether a method is a core method from java.lang.Object. Such methods often receive special treatment because they are deemed fundamental enough to not be tampered with.
  Parameters:
    `method` - the method to check
  Returns:
    true if the method is deemed to be a core method

### toString

    public java.lang.String toString()

  Returns a String version of the delegate.
  See Also:
    java.lang.Object#toString()

Groovy Documentation