com.google.appengine.api.datastore

## Annotation Type PrePut

-     @Target(value=METHOD)
       @Retention(value=RUNTIME)
      public @interface PrePut

  Identifies a callback method to be invoked before an `Entity` of any of the specified kinds is written to the datastore. If `kinds()` is not provided the callback will execute for all kinds. Methods with this annotation must return `void`, must accept a single argument of type `PutContext`, must not throw any checked exceptions, must not be static, and must belong to a class with a no-arg constructor. Neither the method nor the no-arg constructor of the class to which it belongs are required to be public. Methods with this annotation are free to throw any unchecked exception they like. Throwing an unchecked exception will prevent callbacks that have not yet been executed from running, and the exception will propagate to the code that invoked the datastore operation that resulted in the invocation of the callback. Throwing an unchecked exception from a callback will prevent the datastore operation from executing.

- - ### Optional Element Summary

    Optional Elements
    Modifier and Type | Optional Element and Description
    --- | ---
    `java.lang.String[]` | `kinds` The kinds to which this callback applies.

- - ### Element Detail

    - #### kinds

          public abstract java.lang.String[] kinds

      The kinds to which this callback applies. The default value is an empty array, which indicates that the callback should run for all kinds.
      Returns:
        The kinds to which this callback applies.
      Default:
        {}