178 lines
3.5 KiB
Java
178 lines
3.5 KiB
Java
////////////////////////////////////////////////////////////////////////////////
|
|
// Test case file for checkstyle.
|
|
// Created: 2003
|
|
////////////////////////////////////////////////////////////////////////////////
|
|
package com.puppycrawl.tools.checkstyle.checks;
|
|
|
|
import javax.swing.AbstractAction;
|
|
import javax.swing.Action;
|
|
import java.awt.event.ActionEvent;
|
|
|
|
/**
|
|
* Test case for detecting missing final parameters.
|
|
* @author Lars Kühne
|
|
**/
|
|
class InputFinalParameters
|
|
{
|
|
/** no param constructor */
|
|
InputFinalParameters()
|
|
{
|
|
}
|
|
|
|
/** non final param constructor */
|
|
InputFinalParameters(String s)
|
|
{
|
|
}
|
|
|
|
/** non final param constructor */
|
|
InputFinalParameters(final Integer i)
|
|
{
|
|
}
|
|
|
|
/** final param constructor with annotation */
|
|
InputFinalParameters(final @MyAnnotation3 Class<Object> i)
|
|
{
|
|
}
|
|
|
|
/** non-final param constructor with annotation*/
|
|
InputFinalParameters(@MyAnnotation3 Boolean i)
|
|
{
|
|
}
|
|
|
|
/** mixed */
|
|
InputFinalParameters(String s, final Integer i)
|
|
{
|
|
}
|
|
|
|
/** no param method */
|
|
void method()
|
|
{
|
|
}
|
|
|
|
/** non final param method */
|
|
void method(String s)
|
|
{
|
|
}
|
|
|
|
/** final param method */
|
|
void method(final Integer i)
|
|
{
|
|
}
|
|
|
|
/** final param method with annotation **/
|
|
void method(@MyAnnotation3 final Object s)
|
|
{
|
|
|
|
}
|
|
|
|
/** non-final param method with annotation **/
|
|
void method(@MyAnnotation3 Class<Object> s)
|
|
{
|
|
|
|
}
|
|
|
|
/** mixed */
|
|
void method(String s, final Integer i)
|
|
{
|
|
}
|
|
|
|
/** interface methods should not be flagged. */
|
|
interface TestInterface
|
|
{
|
|
void method(String s);
|
|
}
|
|
|
|
/** methods in anonymous inner classes */
|
|
void holder()
|
|
{
|
|
Action a = new AbstractAction()
|
|
{
|
|
public void actionPerformed(ActionEvent e)
|
|
{
|
|
}
|
|
void somethingElse(@MyAnnotation3 ActionEvent e)
|
|
{
|
|
}
|
|
};
|
|
|
|
Action b = new AbstractAction()
|
|
{
|
|
public void actionPerformed(final ActionEvent e)
|
|
{
|
|
}
|
|
void somethingElse(@MyAnnotation3 final ActionEvent e)
|
|
{
|
|
}
|
|
};
|
|
}
|
|
|
|
/** methods with complicated types of the parameters. */
|
|
void methodA(java.lang.String aParam) {
|
|
}
|
|
|
|
void methodB(String[] args) {
|
|
}
|
|
|
|
void methodC(java.lang.String[] args) {
|
|
}
|
|
|
|
/** some catch blocks */
|
|
void method1()
|
|
{
|
|
try {
|
|
String.CASE_INSENSITIVE_ORDER.equals("");
|
|
}
|
|
catch (java.lang.NullPointerException npe) {
|
|
npe.getMessage();
|
|
}
|
|
catch (@MyAnnotation3 final ClassCastException e) {
|
|
e.getMessage();
|
|
}
|
|
catch (RuntimeException e) {
|
|
e.getMessage();
|
|
}
|
|
catch (@MyAnnotation3 NoClassDefFoundError e) {
|
|
e.getMessage();
|
|
}
|
|
}
|
|
|
|
native void method(int i);
|
|
}
|
|
|
|
abstract class AbstractClass
|
|
{
|
|
public abstract void abstractMethod(int aParam);
|
|
}
|
|
|
|
class Foo
|
|
{
|
|
/* Some for-each clauses */
|
|
public void Bar()
|
|
{
|
|
for(String s : someExpression())
|
|
{
|
|
|
|
}
|
|
for(final String s : someExpression())
|
|
{
|
|
|
|
}
|
|
for(@MyAnnotation3 String s : someExpression())
|
|
{
|
|
|
|
}
|
|
for(@MyAnnotation3 final String s : someExpression())
|
|
{
|
|
|
|
}
|
|
}
|
|
|
|
private String[] someExpression()
|
|
{
|
|
return null;
|
|
}
|
|
}
|
|
|
|
@interface MyAnnotation3 {
|
|
}
|