1 package com.puppycrawl.tools.checkstyle.checks.coding.equalsavoidnull;
2 import java.util.Map;
3 public class InputEqualsAvoidNull {
4
5 public boolean equals(Object o) {
6 return false;
7 }
8
9
10
11
12
13 public void flagForEquals() {
14
15 Object o = new Object();
16 String s = "pizza";
17
18 o.equals("hot pizza");
19
20 o.equals(s = "cold pizza");
21
22 o.equals(((s = "cold pizza")));
23
24 o.equals("cheese" + "ham" + "sauce");
25
26 o.equals(("cheese" + "ham") + "sauce");
27
28 o.equals((("cheese" + "ham")) + "sauce");
29 }
30
31
32
33
34 public void flagForEqualsIgnoreCase() {
35 String s = "pizza";
36
37 s.equalsIgnoreCase("hot pizza");
38
39 s.equalsIgnoreCase(s = "cold pizza");
40
41 s.equalsIgnoreCase(((s = "cold pizza")));
42
43 s.equalsIgnoreCase("cheese" + "ham" + "sauce");
44
45 s.equalsIgnoreCase(("cheese" + "ham") + "sauce");
46
47 s.equalsIgnoreCase((("cheese" + "ham")) + "sauce");
48 }
49
50
51
52
53 public void flagForBoth() {
54 Object o = new Object();
55 String s = "pizza";
56
57 o.equals("hot pizza");
58
59 o.equals(s = "cold pizza");
60
61 o.equals(((s = "cold pizza")));
62
63 o.equals("cheese" + "ham" + "sauce");
64
65 o.equals(("cheese" + "ham") + "sauce");
66
67 o.equals((("cheese" + "ham")) + "sauce");
68
69 s.equalsIgnoreCase("hot pizza");
70
71 s.equalsIgnoreCase(s = "cold pizza");
72
73 s.equalsIgnoreCase(((s = "cold pizza")));
74
75 s.equalsIgnoreCase("cheese" + "ham" + "sauce");
76
77 s.equalsIgnoreCase(("cheese" + "ham") + "sauce");
78
79 s.equalsIgnoreCase((("cheese" + "ham")) + "sauce");
80 }
81
82
83
84
85
86
87
88 public void noFlagForEquals() {
89 Object o = new Object();
90 String s = "peperoni";
91
92 o.equals(s += "mushrooms");
93
94 (s = "thin crust").equals("thick crust");
95
96 (s += "garlic").equals("basil");
97
98 ("Chicago Style" + "NY Style").equals("California Style" + "Any Style");
99
100 equals("peppers");
101
102 "onions".equals(o);
103
104 o.equals(new Object());
105
106 o.equals(equals(o));
107
108 equals("yummy");
109
110 new Object().equals("more cheese");
111
112 InputEqualsAvoidNullOutter outter = new InputEqualsAvoidNullOutter();
113
114 outter.new InputEqualsAvoidNullInner().equals("eat pizza and enjoy inner classes");
115 }
116
117
118
119
120 public void noFlagForEqualsIgnoreCase() {
121 String s = "peperoni";
122 String s1 = "tasty";
123
124 s.equalsIgnoreCase(s += "mushrooms");
125
126 s1.equalsIgnoreCase(s += "mushrooms");
127
128 (s = "thin crust").equalsIgnoreCase("thick crust");
129
130 (s += "garlic").equalsIgnoreCase("basil");
131
132 ("Chicago Style" + "NY Style").equalsIgnoreCase("California Style" + "Any Style");
133
134 "onions".equalsIgnoreCase(s);
135
136 s.equalsIgnoreCase(new String());
137
138 s.equals(s1);
139
140 new String().equalsIgnoreCase("more cheese");
141
142 }
143
144 public void noFlagForBoth() {
145 Object o = new Object();
146 String s = "peperoni";
147 String s1 = "tasty";
148
149 o.equals(s += "mushrooms");
150
151 (s = "thin crust").equals("thick crust");
152
153 (s += "garlic").equals("basil");
154
155 ("Chicago Style" + "NY Style").equals("California Style" + "Any Style");
156
157 equals("peppers");
158
159 "onions".equals(o);
160
161 o.equals(new Object());
162
163 o.equals(equals(o));
164
165 equals("yummy");
166
167 new Object().equals("more cheese");
168
169 InputEqualsAvoidNullOutter outter = new InputEqualsAvoidNullOutter();
170
171 outter.new InputEqualsAvoidNullInner().equals("eat pizza and enjoy inner classes");
172
173 s.equalsIgnoreCase(s += "mushrooms");
174
175 s1.equalsIgnoreCase(s += "mushrooms");
176
177 (s = "thin crust").equalsIgnoreCase("thick crust");
178
179 (s += "garlic").equalsIgnoreCase("basil");
180
181 ("Chicago Style" + "NY Style").equalsIgnoreCase("California Style" + "Any Style");
182
183 "onions".equalsIgnoreCase(s);
184
185 s.equalsIgnoreCase(new String());
186
187 s.equals(s1);
188
189 new String().equalsIgnoreCase("more cheese");
190
191 }
192
193 }
194
195 class InputEqualsAvoidNullOutter {
196 public class InputEqualsAvoidNullInner {
197 public boolean equals(Object o) {
198 return true;
199 }
200 }
201 }
202
203 class MyString {
204 public boolean equals() {
205 return true;
206 }
207
208 public boolean equals(String s1) {
209 return true;
210 }
211
212 public boolean equalsIgnoreCase() {
213 return true;
214 }
215
216 public boolean equalsIgnoreCase(String s1) {
217 return true;
218 }
219
220 private String pizza;
221
222 public void main() {
223 MyString myString = new MyString();
224 myString.equals();
225 myString.equals("what");
226 myString.equalsIgnoreCase();
227 myString.equalsIgnoreCase("what");
228 myString.equals(this.pizza = "cold pizza");
229 }
230 }
231
232 class NewTest {
233 static String classVar;
234 String instanceVar;
235 NewTest testObj = new NewTest("");
236
237 NewTest(String param) {
238 param.equals("");
239 }
240
241 public void method(String param) {
242 final String localVar = "";
243
244 localVar.equals("");
245 param.equals("");
246
247 classVar.equals("");
248 instanceVar.equals("");
249 NewTest.classVar.equals("");
250 this.classVar.equals("");
251 this.instanceVar.equals("");
252
253 NewTest testObj = new NewTest("");
254 this.testObj.instanceVar.equals("");
255 testObj.classVar.equals("");
256
257 for (Nested instanceVar = new Nested(); instanceVar != null; ) {
258 instanceVar.equals(1);
259 if (instanceVar.equals("")) {
260 instanceVar.equals("");
261 }
262 }
263
264 class Inner {
265 String instanceVarInner;
266
267 public void main() {
268 classVar.equals("");
269 instanceVar.equals("");
270 NewTest.classVar.equals("");
271
272 instanceVarInner.equals("");
273 this.instanceVarInner.equals("");
274 localVar.equals("");
275
276 NewTest testObj = new NewTest("");
277 testObj.instanceVar.equals("");
278 testObj.classVar.equals("");
279
280 Inner testInnerObj = new Inner();
281 testInnerObj.instanceVarInner.equals("");
282 }
283 }
284
285 Inner testInnerObj = new Inner();
286 testInnerObj.instanceVarInner.equals("");
287
288 Nested.nestedClassVar.equals("");
289 Nested Nested = new Nested();
290 Nested.nestedInstanceVar.equals("");
291 Nested.nestedClassVar.equals("");
292 }
293 static {
294 final String s = "";
295 s.equals("");
296 {
297 final String x = "";
298 class A {
299 void foo() {
300 s.equals("");
301 x.equals("");
302 }
303 }
304 }
305 }
306 void foo(String param) {
307 try {
308 param.equals("");
309 do {
310 String s = "";
311 s.equals("");
312 } while (param.equals(""));
313 } catch (Exception e) {
314 while (param.equals("")) {
315 for (String s = ""; s.equals(""); ){
316 if (s.equals("")) {
317 synchronized (this) {
318 switch (s) {
319 case "1": String str = ""; str.equals("");
320 case "2": s.equals(""); str = ""; str.equals("");
321 case "3": param.equals("");
322 break;
323 }
324 }
325 }
326 }
327 }
328 }
329 }
330
331 static class Nested {
332 static String nestedClassVar;
333 String nestedInstanceVar;
334 public void method() {
335 classVar.equals("");
336 NewTest.classVar.equals("");
337 this.nestedInstanceVar.equals("");
338 nestedClassVar.equals("");
339 nestedInstanceVar.equals("");
340
341 class Inner {
342 public void method() {
343 classVar.equals("");
344 NewTest.classVar.equals("");
345 nestedClassVar.equals("");
346 nestedInstanceVar.equals("");
347 }
348 }
349 }
350 }
351 enum EmbeddedEnum {
352 A(129),
353 B(283),
354 C(1212) {
355 String constDefVar;
356 public void doSomething() {
357 constDefVar.equals("");
358 }
359 };
360
361 Map.Entry<String,Long> enumInstance;
362
363 EmbeddedEnum(int i) {
364 enumInstance.equals("");
365 }
366
367 public static void doSomethingStatic() {
368 enumStatic.equals("");
369 enumStatic.equals(null);
370 }
371 static String enumStatic;
372 }
373
374 private String foo() {return "";}
375 private Object foo(int i) {return i;}
376
377 Object o2 = new Object();
378 Object o3 = new Object();
379 private void bar() {
380 foo().equals("");
381 foo(0).equals("");
382 this.foo().equals("");
383 Object o1 = new Object(); o1.equals("");
384 o2.equals(""); String o2 = "";
385 o3.equals("");
386 String o3 = "";
387 }
388 }
389 class Anonymous {
390 public static void main(String[] args) {
391 Runnable anonym = new Runnable() {
392 String nullableStr = null;
393 public void run() {
394 nullableStr.equals("Null");
395 };
396 };
397 Object nullableStr = new Object();
398 nullableStr.equals("");
399 }
400 {}
401 }
402
403 enum TestEnum {
404 ONE;
405 public void foo() {
406 TestEnum.ONE.equals(this);
407 this.ONE.equals(this);
408 }
409 }
410
411 class TestConcatenations {
412 String s = null;
413
414 void foo() {
415 s.equals(s + s);
416 s.equals("a" + "b");
417 s.equals(getInt() + s);
418 s.equals(getInt() + getInt());
419 s.endsWith("a");
420 String s = "";
421 if (!s.equals("Hello[EOL]" + System.getProperty("line.separator")))
422 foo();
423 }
424
425 int getInt() {
426 return (Integer) null;
427 }
428 }
429