//////////////////////////////////////////////////////////////////////////////// //Test case file for checkstyle. //Created: 2001 //////////////////////////////////////////////////////////////////////////////// package com.puppycrawl.tools.checkstyle.checks.javadoc; import java.io.IOException; // Tests for Javadoc tags. class InputTags1 { // Invalid - should be Javadoc private int mMissingJavadoc; // Invalid - should be Javadoc void method1() { } /** @param unused asd **/ void method2() { } /** missing return **/ int method3() { return 3; } /** * <p>missing return * @param aOne ignored **/ int method4(int aOne) { return aOne; } /** missing throws **/ void method5() throws Exception { } /** * @see missing throws * @see need to see tags to avoid shortcut logic **/ void method6() throws Exception { } /** @throws WrongException error **/ void method7() throws Exception, NullPointerException { } /** missing param **/ void method8(int aOne) { } /** * @see missing param * @see need to see tags to avoid shortcut logic **/ void method9(int aOne) { } /** @param WrongParam error **/ void method10(int aOne, int aTwo) { } /** * @param Unneeded parameter * @return also unneeded **/ void method11() { } /** * @return first one * @return duplicate **/ int method12() { return 0; } /** * @param aOne * @param aTwo * * This is a multiline piece of javadoc * Unlike the previous one, it actually has content * @param aThree * * * This also has content * @param aFour * * @param aFive **/ void method13(int aOne, int aTwo, int aThree, int aFour, int aFive) { } /** @param aOne Perfectly legal **/ void method14(int aOne) { } /** @throws java.io.IOException * just to see if this is also legal **/ void method14() throws java.io.IOException { } // Test static initialiser static { int x = 1; // should not require any javadoc } // test initialiser { int z = 2; // should not require any javadoc } /** handle where variable declaration over several lines **/ private static final int ON_SECOND_LINE = 2; /** * Documenting different causes for the same exception * in separate tags is OK (bug 540384). * * @throws java.io.IOException if A happens * @throws java.io.IOException if B happens **/ void method15() throws java.io.IOException { } /** {@inheritDoc} **/ public String toString() { return super.toString(); } /** getting code coverage up **/ static final int serialVersionUID = 666; //**********************************************************************/ // Method Name: method16 /** * handle the case of an elaborate header surrounding javadoc comments * * @param aOne valid parameter content */ //**********************************************************************/ void method16(int aOne) { } /** * @throws ThreadDeath although bad practice, should be silently ignored * @throws ArrayStoreException another r/t subclass * @throws IllegalMonitorStateException should be told to remove from throws */ void method17() throws IllegalMonitorStateException { } /** * declaring the imported version of an Exception and documenting * the full class name is OK (bug 658805). * @throws java.io.IOException if bad things happen. */ void method18() throws IOException { throw new IOException("to make compiler happy"); } /** * reverse of bug 658805. * @throws IOException if bad things happen. */ void method19() throws java.io.IOException { throw new IOException("to make compiler happy"); } /** * Bug 579190, "expected return tag when one is there". * * Linebreaks after return tag should be legal. * * @return * the bug that states that linebreak should be legal */ int method20() { return 579190; } /** * Bug XXX, "two tags for the same exception" * * @exception java.io.IOException for some reasons * @exception IOException for another reason */ void method21() throws IOException { } /** * RFE 540383, "Unused throws tag for exception subclass" * * @exception IOException for some reasons * @exception java.io.FileNotFoundException for another reasons */ void method22() throws IOException { } /** * @exception WrongException exception w/o class info but matched by name */ void method23() throws WrongException { } /** * Bug 803577, "allowThrowsTagsForSubclasses/allowMissingThrowsTag interfere" * * no exception tag for IOException, but here is a tag for its subclass. * @exception java.io.FileNotFoundException for another reasons */ void method24() throws IOException { } /** * Bug 841942, "ArrayIndexOutOfBounds in JavadocStyle". * @param aParam there is no such param in the method. * The problem should be reported with correct line number. */ void method25() { } /** {@inheritDoc} */ int method26() { return 0; } /** * {@inheritDoc} * @return something very important. */ int method27(int aParam) { return 0; } /** * @return something very important. * {@inheritDoc} */ int method28(int aParam) { return 0; } /** * {@inheritDoc} * * @return 1 */ public int foo(Object _arg) { return 1; } } enum InputTagsEnum { CONSTANT_A, /** * */ CONSTANT_B, CONSTANT_C { /** * */ public void someMethod() { } public void someOtherMethod() { } } } @interface InputTagsAnnotation { String someField(); int A_CONSTANT = 0; /** Some javadoc. */ int B_CONSTANT = 1; /** @return This tag is valid here and expected with Java 8 */ String someField2(); } /** * Some javadoc. */ public class InputTags { /** * Constructor. */ public InputTags() { } /** * Sample method. * @param arg1 first argument * @param arg2 second argument * @return java.lang.String the result string * @throws java.lang.Exception in case of problem */ public final String myMethod(final String arg1, final Object arg2) throws Exception { return null; } } /** * Added to make this file compilable. */ class WrongException extends RuntimeException { }