1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17 package javax.jdo.annotations;
18
19 import java.lang.annotation.ElementType;
20 import java.lang.annotation.Retention;
21 import java.lang.annotation.RetentionPolicy;
22 import java.lang.annotation.Target;
23
24 /**
25 * Annotation for the versioning of the class.
26 * Corresponds to the xml element "version" of the "class" and "property"
27 * elements.
28 *
29 * @version 2.1
30 * @since 2.1
31 */
32 @Target(ElementType.TYPE)
33 @Retention(RetentionPolicy.RUNTIME)
34 public @interface Version
35 {
36 /**
37 * Strategy for versioning of objects of this class.
38 * @return the strategy for versioning objects of this class
39 */
40 VersionStrategy strategy() default VersionStrategy.UNSPECIFIED;
41
42 /**
43 * Custom strategy for versioning of objects of this class.
44 * If customStrategy is non-empty, strategy must be UNSPECIFIED.
45 * @return the custom strategy for versioning objects of this class
46 */
47 String customStrategy() default "";
48
49 /**
50 * Name of the column for the version.
51 * @return the name of the column for the version
52 */
53 String column() default "";
54
55 /**
56 * Whether the version column(s) is(are) indexed.
57 * @return whether the version column(s) is(are) indexed
58 */
59 String indexed() default "";
60
61 /**
62 * The column(s) making up the version.
63 * @return the column(s) making up the version
64 */
65 Column[] columns() default {};
66
67 /** Vendor extensions.
68 * @return the vendor extensions
69 */
70 Extension[] extensions() default {};
71 }