Package: grails.databinding

## [Java] Annotation Type BindUsing

- grails.databinding.BindUsing

-     @java.lang.annotation.Retention(RetentionPolicy.RUNTIME)
      public @interface BindUsing

  This annotation may be applied to a class or to a field to customize the data binding process. When the annotation is applied to a field, the value assigned to the annotation should be a Closure which accepts 2 parameters. The first parameter is the object that data binding is being applied to. The second parameter is a org.grails.databinding.DataBindingSource containing the values being bound to the object. The value returned by the Closure will be bound to the field. The following code demonstrates using this technique to bind an upper case version of the value in the DataBindingSource to the field.

      class SomeClass {
          @BindUsing({
              obj, source -> source['name']?.toUpperCase()
          })
          String name
      }

  When the annotation is applied to a class, the value assigned to the annotation should be a class which implements the BindingHelper interface. An instance of that class will be used any time a value is bound to a property in the class that this annotation has been applied to.

      @BindUsing(SomeClassWhichImplementsBindingHelper)
      class SomeClass {
          String someProperty
          Integer someOtherProperty
      }

  Authors:
    Jeff Brown
  Since:
    2.3
  See Also:
    BindingHelper
    DataBindingSource

- - ### Element Summary

    Required Element Summary
    Type | Name and Description
    --- | ---
    `java.lang.Class<?>` | `value`

  - ### Inherited Methods Summary

    Inherited Methods
    Methods inherited from class | Name
    --- | ---
    `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()`

- - ### Element Detail

    - #### public java.lang.Class<?> value