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 value of a map relation.
26 * Corresponds to the xml element "value".
27 *
28 * @version 2.1
29 * @since 2.1
30 */
31 @Target({ElementType.FIELD, ElementType.METHOD})
32 @Retention(RetentionPolicy.RUNTIME)
33 public @interface Value
34 {
35 /**
36 * Types of the values. This can be determined if using JDK1.5 generics
37 * but is required otherwise. Multiple types can be specified if the
38 * implementation supports multiple types.
39 * @return the types of values
40 */
41 Class[] types() default {};
42
43 /**
44 * Whether the value is to be stored serialized (into a single column of a
45 * join table).
46 * @return Whether the value is to be stored serialized (into a join table)
47 */
48 String serialized() default "";
49
50 /** Whether this value is embedded.
51 * @return whether this value is embedded
52 */
53 String embedded() default "";
54
55 /**
56 * The embedded mapping for the value.
57 * @return the embedded mapping for the value
58 */
59 Embedded[] embeddedMapping() default {};
60
61 /**
62 * Whether the value is dependent on the owner (and will be deleted
63 * when the owner is deleted).
64 * @return whether the value is dependent on the owner
65 */
66 String dependent() default "";
67
68 /**
69 * Name of the table for the value.
70 * @return the name of the table for the value
71 */
72 String table() default "";
73
74 /**
75 * Name of the column to store the value in.
76 * @return the name of the column to store the value in
77 */
78 String column() default "";
79
80 /**
81 * Delete action to apply to any foreign key for the value.
82 * @return delete action to apply to any foreign key for the value
83 */
84 ForeignKeyAction deleteAction() default ForeignKeyAction.UNSPECIFIED;
85
86 /**
87 * Update action to apply to any foreign key for the value.
88 * @return update action to apply to any foreign key for the value
89 */
90 ForeignKeyAction updateAction() default ForeignKeyAction.UNSPECIFIED;
91
92 /**
93 * Whether the value column(s) should be indexed.
94 * @return whether the value column(s) should be indexed.
95 */
96 String indexed() default "";
97
98 /** The name of the index to generate.
99 * @return the name of the index
100 */
101 String index() default "";
102
103 /**
104 * Whether the element column(s) contents should be considered unique
105 * @return whether the element column(s) contents should be considered unique
106 */
107 String unique() default "";
108
109 /**
110 * The name of the unique key constraint to generate.
111 * @return the name of the unique key constraint
112 */
113 String uniqueKey() default "";
114
115 /**
116 * Name of a member in the key class where this value is stored.
117 * @return the name of a member in the key class where this value is stored
118 */
119 String mappedBy() default "";
120
121 /**
122 * The column(s) for the value.
123 * @return the column(s) for the value
124 */
125 Column[] columns() default {};
126
127 /** Generate or assume a foreign key constraint exists on the column
128 * or columns associated with this join. Specify "true" or "false".
129 * @return whether to generate or assume a foreign key constraint
130 */
131 String generateForeignKey() default "";
132
133 /** Name for a generated foreign key constraint.
134 * @return the name of the generated foreign key constraint
135 */
136 String foreignKey() default "";
137
138 /** Vendor extensions.
139 * @return the vendor extensions
140 */
141 Extension[] extensions() default {};
142 }