/*-
* See the file LICENSE for redistribution information.
*
* Copyright (c) 2002, 2015 Oracle and/or its affiliates. All rights reserved.
*
*/
package com.sleepycat.persist.model;
import static java.lang.annotation.ElementType.FIELD;
import static java.lang.annotation.RetentionPolicy.RUNTIME;
import java.lang.annotation.Documented;
import java.lang.annotation.Retention;
import java.lang.annotation.Target;
/**
* Overrides the default rules for field persistence and defines a field as
* being persistent even when it is declared with the <code>transient</code>
* keyword.
*
* <p>By default, the persistent fields of a class are all declared instance
* fields that are non-transient (are not declared with the
* <code>transient</code> keyword). The default rules may be overridden by
* specifying the {@link NotPersistent} or {@link NotTransient} annotation.</p>
*
* <p>For example, the following field is transient with respect to Java
* serialization but is persistent with respect to the DPL.</p>
*
* <pre style="code">
* {@code @NotTransient}
* transient int myField;
* }
* </pre>
*
* @see NotPersistent
* @author Mark Hayes
*/
@Documented @Retention(RUNTIME) @Target(FIELD)
public @interface NotTransient {
}