/* * File: Documentation.java * Authors: Justin Basilico * Company: Sandia National Laboratories * Project: Cognitive Foundry * * Copyright December 14, 2007, Sandia Corporation. * Under the terms of Contract DE-AC04-94AL85000, there is a non-exclusive * license for use of this work by or on behalf of the U.S. Government. Export * of this program may require a license from the United States Government. * See CopyrightHistory.txt for complete details. * */ package gov.sandia.cognition.annotation; import java.lang.annotation.Retention; import java.lang.annotation.RetentionPolicy; /** * The {@code Documentation} annotation marks that something is just * documentation. * * Why does this exist? * * This annotation was created to deal with an issue regarding the * "package-info.java" files, which is the preferred place for package level * documentation according to the Javadoc 1.5 specification. The problem is * that somewhere in our build system (Javac, Ant, NetBeans), it determines * that the "package-info.java" file needs to be compiled every time. This is * usually due to the fact that by default a "package-info.java" file generates * no "package-info.class" file. However, if there is an annotation on the * package, which is specified in the "package-info.java" file, then it must * create a corresponding "package-info.class". Thus, if you add this annotation * to the package, it will remove the compilation problems. * * @author Justin Basilico * @since 2.0 */ @CodeReview( reviewer="Kevin R. Dixon", date="2008-02-08", changesNeeded=false, comments="Looks fine. (Nothing much to review on this one.)" ) @Retention(RetentionPolicy.RUNTIME) public @interface Documentation { }