blob: 4a46f65209f412a81a3b4c7ce74b02ffcd043392 (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
|
////////////////////////////////////////////////////////////////////////////////
// Test case file for checkstyle.
// Created: 2001
////////////////////////////////////////////////////////////////////////////////
package com.puppycrawl.tools.checkstyle.checks.design;
/**
* Test case for the "design for inheritance" check.
* @author Lars Kühne
**/
public abstract class InputDesignForExtension
{
// some methods that are OK
public interface InterfaceOK
{
void implicitlyAbstract();
}
final class ClassOK
{
protected void finalThroughClassDef()
{
System.identityHashCode("no way to override");
}
}
protected void nonFinalButEmpty()
{
}
public void nonFinalButEmpty2()
{
// comments don't count as content...
}
private void aPrivateMethod()
{
System.identityHashCode("no way to override");
}
protected abstract void nonFinalButAbstract();
// this one is bad: neither abstract, final, or empty
protected void doh()
{
System.identityHashCode("nonempty and overriding possible");
}
public final void aFinalMethod()
{
System.identityHashCode("no way to override");
}
public static void aStaticMethod()
{
System.identityHashCode("no way to override");
}
// tries to trigger bug #884035
// MyComparator is a private class, so there cannot be subclasses
// and it should not be neccessary to declare compare() as final
private class MyComparator implements java.util.Comparator
{
public int compare(Object o1, Object o2)
{
// some complex stuff that would normally trigger an error report
if (o1.hashCode() > o2.hashCode()) {
return -1;
}
else {
return 1;
}
}
}
public final class aFinalClass
{
public void someMethod()
{
System.identityHashCode("nonempty and overriding is possible");
}
}
public class nonFinalClass
{
//private ctor
private nonFinalClass(){}
public void someMethod()
{
System.identityHashCode("nonempty and overriding is possible");
}
}
public class anotherNonFinalClass
{
//nonPrivate ctor
public anotherNonFinalClass(){}
public void someMethod()
{
System.identityHashCode("nonempty and overriding is possible");
}
}
// enums should be skipped
public enum TEnum
{
FIRST,
SECOND;
public int value()
{
return 3;
}
}
}
|