view src/main/java/fj/test/reflect/package-info.java @ 0:fe80c1edf1be

add getLoop
author tatsuki
date Fri, 20 Mar 2015 21:04:03 +0900
parents
children
line wrap: on
line source

/**
 * A wrapper around the <code>fj.test</code> package that uses annotations for configuring properties to
 * check. The properties are found using reflection. All annotations
 * are optional and a property is eligible for checking by default. A property is any of the
 * following member descriptions, unless the member or enclosing class is annotated with
 * {@link fj.test.reflect.NoCheck}.
 *
<ul>
  <li>a static field of type {@link fj.test.Property}.</li>
  <li>a static zero argument method that returns {@link fj.test.Property}.</li>
  <li>a non-static field of type {@link fj.test.Property} in a class with a zero-argument constructor.</li>
  <li>a non-static no-argument method that returns {@link fj.test.Property} in a class with a no-argument
      constructor.</li>
</ul>
 *
 * <p>
 * A property may be in zero or more categories by annotating the member or enclosing class with
 * {@link fj.test.reflect.Category}. The property is in the set of categories that make up the
 * union of its member and enclosing class category annotation.
 * </p>
 * <p>
 * When a property is checked, it uses default configuration values, which may be overridden by
 * annotating the member or the enclosing class with the {@link fj.test.reflect.CheckParams}
 * annotation. The values used are first those specified on the member; or if the annotation does
 * not exist, then the enclosing class (default values otherwise). 
 * </p>
 * <p>
 * A property can have a name associated with it by annotating the member with the
 * {@link fj.test.reflect.Name} annotation. The name is a {@link java.lang.String} that is used
 * only for reporting in check results. If the {@link fj.test.reflect.Name} annotation does not
 * appear on a property member, then the field or method name is used by default. 
 * </p>
 *
 * @version %build.number%
 */
package fj.test.reflect;