blob: 71657e2d2fb6c0ed8ebfbca52e814d8f12d11689 [file] [log] [blame]
/*-
* Copyright (C) 2002, 2018, Oracle and/or its affiliates. All rights reserved.
*
* This file was distributed by Oracle as part of a version of Oracle Berkeley
* DB Java Edition made available at:
*
* http://www.oracle.com/technetwork/database/database-technologies/berkeleydb/downloads/index.html
*
* Please see the LICENSE file included in the top-level directory of the
* appropriate version of Oracle Berkeley DB Java Edition for a copy of the
* license and additional information.
*/
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
* <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 non-transient (persistent) with
* respect to Java serialization but is transient with respect to the DPL.</p>
*
* <pre style="code">
* {@code @NotPersistent}
* int myField;
* }
* </pre>
*
* @see NotTransient
* @author Mark Hayes
*/
@Documented @Retention(RUNTIME) @Target(FIELD)
public @interface NotPersistent {
}