<html><head><meta name="color-scheme" content="light dark"></head><body><pre style="word-wrap: break-word; white-space: pre-wrap;">/*-
 * See the file LICENSE for redistribution information.
 *
 * Copyright (c) 2002-2009 Oracle.  All rights reserved.
 *
 * $Id$
 */

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 non-persistent even when it is not declared with the
 * &lt;code&gt;transient&lt;/code&gt; keyword.
 *
 * &lt;p&gt;By default, the persistent fields of a class are all declared instance
 * fields that are non-transient (are not declared with the
 * &lt;code&gt;transient&lt;/code&gt; keyword).  The default rules may be overridden by
 * specifying the {@link NotPersistent} or {@link NotTransient} annotation.&lt;/p&gt;
 *
 * &lt;p&gt;For example, the following field is non-transient (persistent) with
 * respect to Java serialization but is transient with respect to the DPL.&lt;/p&gt;
 *
 * &lt;pre style="code"&gt;
 *      {@code @NotPersistent}
 *      int myField;
 * }
 * &lt;/pre&gt;
 *
 * @see NotTransient
 * @author Mark Hayes
 */
@Documented @Retention(RUNTIME) @Target(FIELD)
public @interface NotPersistent {
}
</pre></body></html>