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 package gov.nist.secauto.metaschema.databind.test.util;
28
29 import java.io.IOException;
30 import java.io.InputStream;
31 import java.io.OutputStream;
32
33 import edu.umd.cs.findbugs.annotations.NonNull;
34
35 public class CloseDetectingInputStream
36 extends InputStream {
37
38 private final InputStream delegate;
39 private boolean closed;
40
41
42
43
44
45
46
47
48 public CloseDetectingInputStream(@NonNull InputStream delegate) {
49 this.delegate = delegate;
50 }
51
52
53
54
55
56
57
58 public boolean isClosed() {
59 return closed;
60 }
61
62 @Override
63 public int read() throws IOException {
64 return delegate.read();
65 }
66
67 @Override
68 public int read(byte[] byteArray) throws IOException {
69 return delegate.read(byteArray);
70 }
71
72 @Override
73 public int read(byte[] byteArray, int off, int len) throws IOException {
74 return delegate.read(byteArray, off, len);
75 }
76
77 @Override
78 public byte[] readAllBytes() throws IOException {
79 return delegate.readAllBytes();
80 }
81
82 @Override
83 public byte[] readNBytes(int len) throws IOException {
84 return delegate.readNBytes(len);
85 }
86
87 @Override
88 public int readNBytes(byte[] byteArray, int off, int len) throws IOException {
89 return delegate.readNBytes(byteArray, off, len);
90 }
91
92 @Override
93 public long skip(long numBytes) throws IOException {
94 return delegate.skip(numBytes);
95 }
96
97 @Override
98 public int available() throws IOException {
99 return delegate.available();
100 }
101
102 @Override
103 public void close() throws IOException {
104 delegate.close();
105 closed = true;
106 }
107
108 @Override
109 public synchronized void mark(int readlimit) {
110 delegate.mark(readlimit);
111 }
112
113 @Override
114 public synchronized void reset() throws IOException {
115 delegate.reset();
116 }
117
118 @Override
119 public boolean markSupported() {
120 return delegate.markSupported();
121 }
122
123 @Override
124 public long transferTo(OutputStream out) throws IOException {
125 return delegate.transferTo(out);
126 }
127
128 @Override
129 public int hashCode() {
130 return delegate.hashCode();
131 }
132
133 @Override
134 public boolean equals(Object obj) {
135 return delegate.equals(obj);
136 }
137
138 @Override
139 public String toString() {
140 return delegate.toString();
141 }
142
143 }