groovy.model

## Class ClosureModel

- java.lang.Object
- - groovy.model.ClosureModel

- All Implemented Interfaces:
    NestedValueModel, ValueModel

      public class ClosureModel
      extends java.lang.Object
      implements ValueModel, NestedValueModel

  Represents a value model using a closure to extract the value from some source model and an optional write closure for updating the value.
  Author:
    James Strachan

- - ### Constructor Summary

    Constructors
    Constructor and Description
    `ClosureModel(ValueModel sourceModel, Closure readClosure)`
    `ClosureModel(ValueModel sourceModel, Closure readClosure, Closure writeClosure)`
    `ClosureModel(ValueModel sourceModel, Closure readClosure, Closure writeClosure, java.lang.Class type)`

  - ### Method Summary

    All Methods Instance Methods Concrete Methods
    Modifier and Type | Method and Description
    --- | ---
    `ValueModel` | `getSourceModel()`
    `java.lang.Class` | `getType()`
    `java.lang.Object` | `getValue()`
    `boolean` | `isEditable()`
    `void` | `setValue(java.lang.Object value)`

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

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

- - ### Constructor Detail

    - #### ClosureModel

          public ClosureModel(ValueModel sourceModel,
                              Closure readClosure)

    - #### ClosureModel

          public ClosureModel(ValueModel sourceModel,
                              Closure readClosure,
                              Closure writeClosure)

    - #### ClosureModel

          public ClosureModel(ValueModel sourceModel,
                              Closure readClosure,
                              Closure writeClosure,
                              java.lang.Class type)

  - ### Method Detail

    - #### getSourceModel

          public ValueModel getSourceModel()

      Specified by:
        `getSourceModel` in interface `NestedValueModel`

    - #### getValue

          public java.lang.Object getValue()

      Specified by:
        `getValue` in interface `ValueModel`

    - #### setValue

          public void setValue(java.lang.Object value)

      Specified by:
        `setValue` in interface `ValueModel`

    - #### getType

          public java.lang.Class getType()

      Specified by:
        `getType` in interface `ValueModel`

    - #### isEditable

          public boolean isEditable()

      Specified by:
        `isEditable` in interface `ValueModel`