//////////////////////////////////////////////////////////////////////////////// // 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 { }