/*
JavadocMethod
allowedAnnotations = (default)Override
validateThrows = (default)false
accessModifiers = (default)public, protected, package, private
allowMissingParamTags = (default)false
allowMissingReturnTag = (default)false
tokens = (default)METHOD_DEF, CTOR_DEF, ANNOTATION_FIELD_DEF, COMPACT_CTOR_DEF


*/

package com.puppycrawl.tools.checkstyle.checks.javadoc.javadocmethod;

public class InputJavadocMethodParamsTags {

  // violation 16 lines below 'Unused @param tag for 'unexpectedParam'.'
  // violation 16 lines below 'Unused @param tag for 'unexpectedParam2'.'
  // violation 17 lines below 'Unused @param tag for 'unexpectedParam3'.'
  // violation 17 lines below 'Unused @param tag for 'unexpectedParam4'.'
  /**
   * A method with an undocumented param and a missing param.
   * Checkstyle should at least
   * missingParam, ideally would be nice to have a flag to report
   * also undocumentedParam
   *
   * @param param1 some text // ok
   * @param param2 // ok
   *                some text for param2 (without space at the end of line)
   * @param param3                // ok
   *                some text for param3 (with space at the end of line)
   *
   * @param unexpectedParam
   * @param unexpectedParam2
   *                some text for unexpectedParam2 (without space in the end of line)
   *        @param unexpectedParam3
   * @param unexpectedParam4
   */
  void testEmpty(Object param1, Object param2, Object param3) {

  }

  /**
   * Set the path to use by reference.
   *
   * @param r
   *            a reference to an
               existing path */
  public void setPathRef(Object r) { // ok

  }

  /** @param s
   a reference to an existing path */
  public void setPathRef2(Object s) { // ok

  }

  /** @param k
    */
  public void setPathRef3(Object k) { // ok

  }

  /** @param t
   */
  // violation 2 lines above 'Unused @param tag for 't'.'
  public void setPathRef4(Object w) { // violation 'Expected @param tag for 'w'.'

  }

  /** @param z*/
  public void setPathRef5(Object z) { // ok

  }

  /** @param x*/
  // violation above 'Unused @param tag for 'x'.'
  public void setPathRef6(Object y) { // violation 'Expected @param tag for 'y'.'

  }

}
