Package com.google.gwt.editor.client

## Interface EditorDriver<T>

- Type Parameters:
    `T` - the type of data returned from `flush()`
  All Known Subinterfaces:
    `RequestFactoryEditorDriver<P,​E>`, `SimpleBeanEditorDriver<T,​E>`
  All Known Implementing Classes:
    `MockRequestFactoryEditorDriver`, `MockSimpleBeanEditorDriver`

      public interface EditorDriver<T>

  Defines common capabilities of editor drivers.

  The `EditorDriver` interface cannot be used with `GWT.create()` directly. Instead, use one of the specializations of this interface.

  See Also:
    `SimpleBeanEditorDriver`, `RequestFactoryEditorDriver`

- - ### Method Summary

    All Methods Instance Methods Abstract Methods
    Modifier and Type | Method | Description
    --- | --- | ---
    `void` | `accept​(EditorVisitor visitor)` | Visit the Editor hierarchy controlled by the EditorDriver.
    `T` | `flush()` | Update the object being edited with the current state of the Editor.
    `java.util.List<EditorError>` | `getErrors()` | Returns any unconsumed EditorErrors from the last call to `flush()`.
    `boolean` | `hasErrors()` | Indicates if the last call to `flush()` resulted in any errors.
    `boolean` | `isDirty()` | Returns `true` if any of the Editors in the hierarchy have been modified relative to the last value passed into `SimpleBeanEditorDriver.edit(Object)`.
    `boolean` | `setConstraintViolations​(java.lang.Iterable<ConstraintViolation<?>> violations)` | Show `ConstraintViolations` generated through a `Validator`.

- - ### Method Detail

    - #### accept

          void accept​(EditorVisitor visitor)

      Visit the Editor hierarchy controlled by the EditorDriver.

    - #### flush

          T flush()

      Update the object being edited with the current state of the Editor.
      Returns:
        an implementation-specific value

    - #### getErrors

          java.util.List<EditorError> getErrors()

      Returns any unconsumed EditorErrors from the last call to `flush()`.
      Returns:
        a List of `EditorError` instances

    - #### hasErrors

          boolean hasErrors()

      Indicates if the last call to `flush()` resulted in any errors.
      Returns:
        `true` if errors are present

    - #### isDirty

          boolean isDirty()

      Returns `true` if any of the Editors in the hierarchy have been modified relative to the last value passed into `SimpleBeanEditorDriver.edit(Object)`.

      This method is not affected by `flush()` to support the following workflow:

      1. `EditorDriver.edit()`
      2. The user edits the on-screen values
      3. `EditorDriver.flush()`
      4. The data in the edited object is validated:
         1. The validation fails, returning to step 2
         2. The validation succeeds and the editing UI is dismissed
      The simplest implementation of a "navigate away from dirty UI warning" by checking `isDirty()` is correct for the above workflow. If the `flush()` method were to clear the dirty state, it would be necessary to implement an alternate flag to distinguish between a newly-initialized editor entering step 2 or re-entering step 2.
      See Also:
        `EditorDelegate.setDirty(boolean)`

    - #### setConstraintViolations

          boolean setConstraintViolations​(java.lang.Iterable<ConstraintViolation<?>> violations)

      Show `ConstraintViolations` generated through a `Validator`. The violations will be converted into `EditorError` objects whose `getUserData()` method can be used to access the original ConstraintViolation object.
      Parameters:
        `violations` - an Iterable over `ConstraintViolation` instances
      Returns:
        `true` if there were any unconsumed EditorErrors which can be retrieved from `getErrors()`