# PreDelete
Date: 2012-02-24

## com.google.appengine.api.datastore
Annotation Type PreDelete

    @Target(value=METHOD)
    @Retention(value=RUNTIME)
    public @interface PreDelete

Identifies a callback method to be invoked before an `Entity` of any of the specified kinds is deleted from 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 `DeleteContext`, 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
`java.lang.String[]` `kinds` The kinds to which this callback applies.

### 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:
    {}