Package groovy.json

## Class DefaultJsonGenerator.ClosureConverter

- java.lang.Object
- - groovy.json.DefaultJsonGenerator.ClosureConverter

- All Implemented Interfaces:
    `JsonGenerator.Converter`
  Enclosing class:
    DefaultJsonGenerator

      protected static class DefaultJsonGenerator.ClosureConverter
      extends Object
      implements JsonGenerator.Converter

  A converter that handles converting a given type using a closure.
  Since:
    2.5.0

- - ### Field Summary

    Fields
    Modifier and Type | Field | Description
    --- | --- | ---
    `protected Closure<?>` | `closure` |
    `protected int` | `paramCount` |
    `protected Class<?>` | `type` |

  - ### Constructor Summary

    Constructors
    Modifier | Constructor | Description
    --- | --- | ---
    `protected` | `ClosureConverter​(Class<?> type, Closure<?> closure)` |

  - ### Method Summary

    All Methods Instance Methods Concrete Methods
    Modifier and Type | Method | Description
    --- | --- | ---
    `Object` | `convert​(Object value, String key)` | Converts a given value.
    `boolean` | `equals​(Object o)` | Any two Converter instances registered for the same type are considered to be equal.
    `boolean` | `handles​(Class<?> type)` | Returns `true` if this converter can handle conversions of the given type.
    `int` | `hashCode()` |
    `String` | `toString()` |

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

      `clone, finalize, getClass, notify, notifyAll, wait, wait, wait`

- - ### Field Detail

    - #### type

          protected final Class<?> type

    - #### closure

          protected final Closure<?> closure

    - #### paramCount

          protected final int paramCount

  - ### Constructor Detail

    - #### ClosureConverter

          protected ClosureConverter​(Class<?> type,
                                     Closure<?> closure)

  - ### Method Detail

    - #### handles

          public boolean handles​(Class<?> type)

      Returns `true` if this converter can handle conversions of the given type.
      Specified by:
        `handles` in interface `JsonGenerator.Converter`
      Parameters:
        `type` - the type of the object to convert
      Returns:
        true if this converter can successfully convert values of the given type

    - #### convert

          public Object convert​(Object value,
                                String key)

      Converts a given value.
      Specified by:
        `convert` in interface `JsonGenerator.Converter`
      Parameters:
        `value` - the object to convert
        `key` - the key name for the value, may be `null`
      Returns:
        the converted object

    - #### equals

          public boolean equals​(Object o)

      Any two Converter instances registered for the same type are considered to be equal. This comparison makes managing instances in a Set easier; since there is no chaining of Converters it makes sense to only allow one per type.
      Overrides:
        `equals` in class `Object`
      Parameters:
        `o` - the object with which to compare.
      Returns:
        `true` if this object contains the same class; `false` otherwise.

    - #### hashCode

          public int hashCode()

      Overrides:
        `hashCode` in class `Object`

    - #### toString

          public String toString()

      Overrides:
        `toString` in class `Object`