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