1 /****************************************************************
2 * Licensed to the Apache Software Foundation (ASF) under one *
3 * or more contributor license agreements. See the NOTICE file *
4 * distributed with this work for additional information *
5 * regarding copyright ownership. The ASF licenses this file *
6 * to you under the Apache License, Version 2.0 (the *
7 * "License"); you may not use this file except in compliance *
8 * with the License. You may obtain a copy of the License at *
10 * http://www.apache.org/licenses/LICENSE-2.0 *
12 * Unless required by applicable law or agreed to in writing, *
13 * software distributed under the License is distributed on an *
14 * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY *
15 * KIND, either express or implied. See the License for the *
16 * specific language governing permissions and limitations *
17 * under the License. *
18 ****************************************************************/
20 package org
.apache
.james
.mime4j
;
22 import java
.io
.IOException
;
23 import java
.io
.InputStream
;
26 * <code>InputStream</code> used by the MIME parser to detect whether the
27 * underlying data stream was used (read from) and whether the end of the
32 class BufferingInputStreamAdaptor
extends BufferingInputStream
{
34 private final InputStream is
;
35 private final BufferingInputStream bis
;
36 private boolean used
= false;
37 private boolean eof
= false;
39 public BufferingInputStreamAdaptor(final InputStream is
) {
42 if (is
instanceof BufferingInputStream
) {
43 this.bis
= (BufferingInputStream
) is
;
49 public int read() throws IOException
{
50 int i
= this.is
.read();
56 public int read(byte[] b
, int off
, int len
) throws IOException
{
57 int i
= this.is
.read(b
, off
, len
);
63 public int readLine(final ByteArrayBuffer dst
) throws IOException
{
65 if (this.bis
!= null) {
66 i
= this.bis
.readLine(dst
);
75 private int doReadLine(final ByteArrayBuffer dst
) throws IOException
{
78 while ((ch
= this.is
.read()) != -1) {
85 if (total
== 0 && ch
== -1) {
92 public boolean eof() {
96 public boolean isUsed() {