/*
 * Front part that is not included in the documentation by javadoc.
 * Might contain copyright notices, disclaimers, etc.
 *
 */

/**
 * The <code>class JavadocExample</code> gives an example of how to 
 * document a class definition using the conventions of the Java
 * Documentation tool, javadoc.  This
 * summary of the class gets printed at the beginning of the .html
 * page for the class.  
 * <p>
 * Javadoc documentation starts with a Java comment of the form<br>
 * <tt>/**</tt><br>
 *  --- just way that a normal comment begins except
 * that both <tt>**</tt>'s are needed.
 * The comment is ended with the normal end of comment, namely,
 * a slash followed by a <tt>*</tt>.
 * <p>
 * The javadoc comments may have embedded html tags.
 * <p>
 * javadoc produces documentation for any public or protected class,
 * member variable, or method.  Comments for other items do not appear
 * in the javadoc output.
 *
 * For more details on use of javadoc, see
 * Appendix B of the <i>Java 1.1 Developer's Handbook</i>.
 *
 * @version  vv.ww date --- this does not normally print
 * @author   Janice Java --- does not normally print
 * @author   Charlie Coffee
 */

public class JavadocExample {
    /**
     * Member variables can be documented
     */
    protected int memberVar;

    /**
     * Here is a protected static class variable.
     */
    protected static String className = "JavadocExample";

    /**
     * Constructors are handled specially by javadoc.  
     * Here is a zero-param constructor that initializes <tt>memberVar</tt>
     * to zero.
     */
    public JavadocExample(){
       memberVar = 0;
    }

    /**
     * Documentation of a member method that returns the value of the
     * attribute of the object.  The result is returned as a String.
     *
     * The <tt>see</tt> tag as used below can be used for cross-references
     * to other classes, methods, or objects.  The crossed-referenced items
     * must be in scope or else their fully qualified names must be used.
     * Scope of names for comments is the same as the scope for java code.
     * That is, if the compiler knows about it so does javadoc.
     *
     * @param A the attribute that is represented as an integer
     * @return String that is the value of the attribute for the object.
     * @exception IllegalAccessException Is thrown in case that blah blah.
     * @see String
     */
    public String foo( int A ) 
        throws IllegalAccessException
    {
        return( "Answer" );
    }
}
