View Javadoc
1   /*
2    * ====================================================================
3    * Licensed to the Apache Software Foundation (ASF) under one
4    * or more contributor license agreements.  See the NOTICE file
5    * distributed with this work for additional information
6    * regarding copyright ownership.  The ASF licenses this file
7    * to you under the Apache License, Version 2.0 (the
8    * "License"); you may not use this file except in compliance
9    * with the License.  You may obtain a copy of the License at
10   *
11   *   http://www.apache.org/licenses/LICENSE-2.0
12   *
13   * Unless required by applicable law or agreed to in writing,
14   * software distributed under the License is distributed on an
15   * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
16   * KIND, either express or implied.  See the License for the
17   * specific language governing permissions and limitations
18   * under the License.
19   * ====================================================================
20   *
21   * This software consists of voluntary contributions made by many
22   * individuals on behalf of the Apache Software Foundation.  For more
23   * information on the Apache Software Foundation, please see
24   * <http://www.apache.org/>.
25   *
26   */
27  
28  package org.apache.hc.core5.http.io.entity;
29  
30  import java.io.InputStream;
31  
32  /**
33   * @since 5.1
34   */
35  public final class EmptyInputStream extends InputStream {
36  
37      public static final EmptyInputStreamity/EmptyInputStream.html#EmptyInputStream">EmptyInputStream INSTANCE = new EmptyInputStream();
38  
39      private EmptyInputStream() {
40          // noop.
41      }
42  
43      /**
44       * Returns {@code 0}.
45       */
46      @Override
47      public int available() {
48          return 0;
49      }
50  
51      /**
52       * Noop.
53       */
54      @Override
55      public void close() {
56          // noop.
57      }
58  
59      /**
60       * Noop.
61       */
62      @SuppressWarnings("sync-override")
63      @Override
64      public void mark(final int readLimit) {
65          // noop.
66      }
67  
68      /**
69       * Returns {@code true}.
70       */
71      @Override
72      public boolean markSupported() {
73          return true;
74      }
75  
76      /**
77       * Returns {@code -1}.
78       */
79      @Override
80      public int read() {
81          return -1;
82      }
83  
84      /**
85       * Returns {@code -1}.
86       */
87      @Override
88      public int read(final byte[] buf) {
89          return -1;
90      }
91  
92      /**
93       * Returns {@code -1}.
94       */
95      @Override
96      public int read(final byte[] buf, final int off, final int len) {
97          return -1;
98      }
99  
100     /**
101      * Noop.
102      */
103     @SuppressWarnings("sync-override")
104     @Override
105     public void reset() {
106         // noop
107     }
108 
109     /**
110      * Returns {@code 0}.
111      */
112     @Override
113     public long skip(final long n) {
114         return 0L;
115     }
116 }
117