KickJava   Java API By Example, From Geeks To Geeks.

Java > Open Source Codes > scriptella > util > RepeatingInputStream


1 /*
2  * Copyright 2006-2007 The Scriptella Project Team.
3  *
4  * Licensed under the Apache License, Version 2.0 (the "License");
5  * you may not use this file except in compliance with the License.
6  * You may obtain a copy of the License at
7  *
8  * http://www.apache.org/licenses/LICENSE-2.0
9  *
10  * Unless required by applicable law or agreed to in writing, software
11  * distributed under the License is distributed on an "AS IS" BASIS,
12  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13  * See the License for the specific language governing permissions and
14  * limitations under the License.
15  */

16 package scriptella.util;
17
18 import java.io.IOException JavaDoc;
19 import java.io.InputStream JavaDoc;
20
21 /**
22  * Input stream that repeats a source content.
23  *
24  * @author Fyodor Kupolov
25  * @version 1.0
26  */

27 public class RepeatingInputStream extends InputStream JavaDoc {
28     private int count;
29     private byte data[];
30     private int pos;
31
32     public RepeatingInputStream(byte data[], int count) {
33         this.data = data;
34         this.count = count;
35     }
36
37     public int read() throws IOException JavaDoc {
38         if (count<=0 || pos >= data.length) {
39             count--;
40
41             if (count > 0) {
42                 pos = 0;
43             } else {
44                 return -1;
45             }
46         }
47
48         int r = data[pos] & 0xff;
49         pos++;
50
51         return r;
52     }
53
54 }
55
Popular Tags