package xapi.annotation.gc;
import java.lang.annotation.Documented;
import java.lang.annotation.ElementType;
import java.lang.annotation.Retention;
import java.lang.annotation.RetentionPolicy;
import java.lang.annotation.Target;
/**
* Annotation used to prevent a given field from being chain-deleted.
*
* If your children have references to their parents, you may want to chain-delete
* everything but the parent field (or any other shared data).
*
* This annotation causes a given field to be skipped.
*
* Chain-delete is disabled by default.
* See {@link OnGC#chainDeleteFields()}
*
* @author "James X. Nelson (james@wetheinter.net)"
*
*/
@Documented
@Target(ElementType.FIELD)
@Retention(RetentionPolicy.RUNTIME)
public @interface Indestructible {
}