27 28 import java.lang.annotation.Documented; 29 import java.lang.annotation.ElementType; 30 import java.lang.annotation.Inherited; 31 import java.lang.annotation.Retention; 32 import java.lang.annotation.RetentionPolicy; 33 import java.lang.annotation.Target; 34 35 /** 36 * This lists names of wrapped object's fields which could be accessed through 37 * <code>Wrap.getProperty(String)</code> interface. Fields should be public. 38 * @see Wrap#getProperty(java.lang.String) 39 * @author shura 40 */ 41 @Retention(RetentionPolicy.RUNTIME) 42 @Target(ElementType.TYPE) 43 @Inherited 44 @Documented 45 public @interface FieldProperties { 46 /** 47 * List of field names. 48 */ 49 String[] value(); 50 /** 51 * List of field types. In case this list is shorter, all the unmatched ones 52 * from <code>value</code> are considered to be of type <code>Object</code>. 53 */ 54 Class[] types() default {}; 55 /** 56 * Are the properties worth a waiter. 57 */ 58 boolean[] waitable() default {}; 59 } | 27 28 import java.lang.annotation.Documented; 29 import java.lang.annotation.ElementType; 30 import java.lang.annotation.Inherited; 31 import java.lang.annotation.Retention; 32 import java.lang.annotation.RetentionPolicy; 33 import java.lang.annotation.Target; 34 35 /** 36 * This lists names of wrapped object's fields which could be accessed through 37 * <code>Wrap.getProperty(String)</code> interface. Fields should be public. 38 * @see Wrap#getProperty(java.lang.String) 39 * @author shura 40 */ 41 @Retention(RetentionPolicy.RUNTIME) 42 @Target(ElementType.TYPE) 43 @Inherited 44 @Documented 45 public @interface FieldProperties { 46 /** 47 * @return list of field names. 48 */ 49 String[] value(); 50 /** 51 * @return list of field types. In case this list is shorter, all the unmatched ones 52 * from <code>value</code> are considered to be of type <code>Object</code>. 53 */ 54 Class[] types() default {}; 55 /** 56 * @return are the properties worth a waiter. 57 */ 58 boolean[] waitable() default {}; 59 } |