1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16 package org.javagen.agile.core.annotation;
17
18 import java.lang.annotation.ElementType;
19 import java.lang.annotation.Retention;
20 import java.lang.annotation.RetentionPolicy;
21 import java.lang.annotation.Target;
22
23 /***
24 * Default value annotation used to implement template pattern.
25 * Template pattern allows a single set of objects to act as both
26 * instance objects and templates. When used as instance objects
27 * default values are applied by a generic default value setter using
28 * this annotation and self-reflection. When used as templates all non-null values
29 * are applied to target instances using the <code>copyTo</code> method.
30 *
31 * @see org.javagen.agile.core.visitor.DefaultValueVisitor
32 * @author Richard Easterling
33 */
34 @Retention(RetentionPolicy.RUNTIME)
35 @Target(ElementType.METHOD)
36 public @interface DefaultValue {
37
38 /***
39 * Default value.
40 */
41 String value();
42 }