View Javadoc
1   /*
2   RequireThis
3   checkFields = (default)true
4   checkMethods = (default)true
5   validateOnlyOverlapping = (default)true
6   
7   
8   */
9   
10  package com.puppycrawl.tools.checkstyle.checks.coding.requirethis;
11  
12  import java.io.*;
13  import java.util.Scanner;
14  
15  public class InputRequireThisTryWithResources implements AutoCloseable {
16      private BufferedReader fldBufferedReader;
17      private InputStreamReader fldStreamReader;
18      private Scanner fldScanner;
19      private String fldCharset = "utf-8";
20  
21      void oneResource() {
22          try (BufferedReader fldBufferedReader
23                       = new BufferedReader(new InputStreamReader(null, "utf-8"))) { }
24          catch (IOException e) { }
25      }
26  
27      void twoResourcesReferencingEachOther() {
28          try (InputStreamReader fldStreamReader = new InputStreamReader(null, "utf-8");
29               BufferedReader fldBufferedReader = new BufferedReader(fldStreamReader)) { }
30          catch (IOException e) { }
31      }
32  
33      void threeResourcesReferencingEachOther() {
34          try (InputStreamReader fldStreamReader = new InputStreamReader(null, "utf-8");
35               BufferedReader fldBufferedReader = new BufferedReader(fldStreamReader);
36               Scanner fldScanner = new Scanner(
37                       fldStreamReader.toString() + fldBufferedReader.toString())) { }
38          catch (IOException e) { }
39      }
40  
41      void failToHandleParameter() {
42          try (BufferedReader fldBufferedReader = new BufferedReader(
43                  new InputStreamReader(null, fldCharset))) { }
44          catch (IOException e) { }
45      }
46  
47      void handleParameter() {
48          try (BufferedReader fldBufferedReader = new BufferedReader(
49                  new InputStreamReader(null, this.fldCharset))) { }
50          catch (IOException e) { }
51      }
52  
53      void noResources() {
54          try {
55              int a = 5;
56              fldCharset += a;
57          }
58          catch (Exception ex) { }
59      }
60  
61      String methodToInvoke() {
62          return "string";
63      }
64  
65      void methodInvoke() {
66          try (BufferedReader fldBufferedReader = new BufferedReader(
67                  new InputStreamReader(null, methodToInvoke()))) { }
68          catch (Exception ex) { }
69      }
70  
71      void methodIdentCopy() {
72          try (BufferedReader methodToInvoke = new BufferedReader(
73                  new InputStreamReader(null, this.methodToInvoke()))) {
74              String a = methodToInvoke() + methodToInvoke.toString();
75          }
76          catch (Exception ex) { }
77      }
78  
79      final static InputRequireThisTryWithResources r1 = new InputRequireThisTryWithResources();
80      final InputRequireThisTryWithResources r2 = new InputRequireThisTryWithResources();
81      static InputRequireThisTryWithResources r3 = new InputRequireThisTryWithResources();
82      InputRequireThisTryWithResources r4 = new InputRequireThisTryWithResources();
83  
84      void staticVariables() {
85          try (r1) { }
86          catch (Exception e) { }
87  
88          try (r1.r2) { }
89          catch (Exception e) { }
90  
91          try (r1.r2.r4.r2.r4.r2) { }
92          catch (Exception e) { }
93      }
94  
95      void nestedTryWithResources() {
96          try (InputStreamReader fldStreamReader = new InputStreamReader(null, "utf-8")) {
97              try (BufferedReader fldBufferedReader = new BufferedReader(fldStreamReader)) {
98                  try (Scanner fldScanner = new Scanner(
99                          fldBufferedReader.toString() + fldStreamReader.toString())) { }
100             }
101             try (Scanner fldScanner = new Scanner(
102                     fldBufferedReader.toString() + fldStreamReader.toString())) { }
103             String a = fldStreamReader.toString()
104                     + fldBufferedReader.toString() + fldScanner.toString();
105         }
106         catch (IOException e) {
107             String a = fldStreamReader.toString()
108                     + fldBufferedReader.toString() + fldScanner.toString();
109         }
110     }
111 
112     @Override
113     public void close() throws Exception { }
114 }