001    package fj.test.reflect;
002    
003    import java.lang.annotation.Documented;
004    import java.lang.annotation.ElementType;
005    import java.lang.annotation.Inherited;
006    import java.lang.annotation.Retention;
007    import java.lang.annotation.RetentionPolicy;
008    import java.lang.annotation.Target;
009    
010    /**
011     * Specifies the categories of a {@link fj.test.Property property}, which are the union of
012     * categories specified on the enclosing class and the categories specified on the method or field
013     * that make up the property.
014     *
015     * @version %build.number%<br>
016     *          <ul>
017     *          <li>$LastChangedRevision: 5 $</li>
018     *          <li>$LastChangedDate: 2008-12-06 16:49:43 +1000 (Sat, 06 Dec 2008) $</li>
019     *          <li>$LastChangedBy: tonymorris $</li>
020     *          </ul>
021     */
022    @Documented
023    @Target({ElementType.FIELD, ElementType.TYPE, ElementType.METHOD})
024    @Retention(RetentionPolicy.RUNTIME)
025    @Inherited
026    public @interface Category {
027      /**
028       * The categories of the property.
029       *
030       * @return The categories of the property.
031       */
032      String[] value();
033    }