1d2e4d4675d04e78591ebd38fd084fc2cdbe144a0Marc Blank/*
2d2e4d4675d04e78591ebd38fd084fc2cdbe144a0Marc Blank * Copyright (C) 2008-2009 Marc Blank
3d2e4d4675d04e78591ebd38fd084fc2cdbe144a0Marc Blank * Licensed to The Android Open Source Project.
4d2e4d4675d04e78591ebd38fd084fc2cdbe144a0Marc Blank *
5d2e4d4675d04e78591ebd38fd084fc2cdbe144a0Marc Blank * Licensed under the Apache License, Version 2.0 (the "License");
6d2e4d4675d04e78591ebd38fd084fc2cdbe144a0Marc Blank * you may not use this file except in compliance with the License.
7d2e4d4675d04e78591ebd38fd084fc2cdbe144a0Marc Blank * You may obtain a copy of the License at
8d2e4d4675d04e78591ebd38fd084fc2cdbe144a0Marc Blank *
9d2e4d4675d04e78591ebd38fd084fc2cdbe144a0Marc Blank *      http://www.apache.org/licenses/LICENSE-2.0
10d2e4d4675d04e78591ebd38fd084fc2cdbe144a0Marc Blank *
11d2e4d4675d04e78591ebd38fd084fc2cdbe144a0Marc Blank * Unless required by applicable law or agreed to in writing, software
12d2e4d4675d04e78591ebd38fd084fc2cdbe144a0Marc Blank * distributed under the License is distributed on an "AS IS" BASIS,
13d2e4d4675d04e78591ebd38fd084fc2cdbe144a0Marc Blank * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
14d2e4d4675d04e78591ebd38fd084fc2cdbe144a0Marc Blank * See the License for the specific language governing permissions and
15d2e4d4675d04e78591ebd38fd084fc2cdbe144a0Marc Blank * limitations under the License.
16d2e4d4675d04e78591ebd38fd084fc2cdbe144a0Marc Blank */
17d2e4d4675d04e78591ebd38fd084fc2cdbe144a0Marc Blank
18d2e4d4675d04e78591ebd38fd084fc2cdbe144a0Marc Blankpackage com.android.exchange;
19d2e4d4675d04e78591ebd38fd084fc2cdbe144a0Marc Blank
20d2e4d4675d04e78591ebd38fd084fc2cdbe144a0Marc Blankimport java.io.IOException;
21d2e4d4675d04e78591ebd38fd084fc2cdbe144a0Marc Blankimport java.io.InputStream;
22d2e4d4675d04e78591ebd38fd084fc2cdbe144a0Marc Blank
23d2e4d4675d04e78591ebd38fd084fc2cdbe144a0Marc Blank/**
24d2e4d4675d04e78591ebd38fd084fc2cdbe144a0Marc Blank * MockParserStream is an InputStream that feeds pre-generated data into various EasParser
25d2e4d4675d04e78591ebd38fd084fc2cdbe144a0Marc Blank * subclasses.
26d2e4d4675d04e78591ebd38fd084fc2cdbe144a0Marc Blank *
27d2e4d4675d04e78591ebd38fd084fc2cdbe144a0Marc Blank * After parsing is done, the result can be obtained with getResult
28d2e4d4675d04e78591ebd38fd084fc2cdbe144a0Marc Blank *
29d2e4d4675d04e78591ebd38fd084fc2cdbe144a0Marc Blank */
30d2e4d4675d04e78591ebd38fd084fc2cdbe144a0Marc Blankpublic class MockParserStream extends InputStream {
31d2e4d4675d04e78591ebd38fd084fc2cdbe144a0Marc Blank    int[] array;
32d2e4d4675d04e78591ebd38fd084fc2cdbe144a0Marc Blank    int pos = 0;
33d2e4d4675d04e78591ebd38fd084fc2cdbe144a0Marc Blank    Object value;
34d2e4d4675d04e78591ebd38fd084fc2cdbe144a0Marc Blank
35d2e4d4675d04e78591ebd38fd084fc2cdbe144a0Marc Blank    MockParserStream (int[] _array) {
36d2e4d4675d04e78591ebd38fd084fc2cdbe144a0Marc Blank        array = _array;
37d2e4d4675d04e78591ebd38fd084fc2cdbe144a0Marc Blank    }
38d2e4d4675d04e78591ebd38fd084fc2cdbe144a0Marc Blank
39d2e4d4675d04e78591ebd38fd084fc2cdbe144a0Marc Blank    @Override
40d2e4d4675d04e78591ebd38fd084fc2cdbe144a0Marc Blank    public int read() throws IOException {
41d2e4d4675d04e78591ebd38fd084fc2cdbe144a0Marc Blank        try {
42d2e4d4675d04e78591ebd38fd084fc2cdbe144a0Marc Blank            return array[pos++];
43d2e4d4675d04e78591ebd38fd084fc2cdbe144a0Marc Blank        } catch (IndexOutOfBoundsException e) {
44d2e4d4675d04e78591ebd38fd084fc2cdbe144a0Marc Blank            throw new IOException("End of stream");
45d2e4d4675d04e78591ebd38fd084fc2cdbe144a0Marc Blank        }
46d2e4d4675d04e78591ebd38fd084fc2cdbe144a0Marc Blank    }
47d2e4d4675d04e78591ebd38fd084fc2cdbe144a0Marc Blank
48d2e4d4675d04e78591ebd38fd084fc2cdbe144a0Marc Blank    public void setResult(Object _value) {
49d2e4d4675d04e78591ebd38fd084fc2cdbe144a0Marc Blank        value = _value;
50d2e4d4675d04e78591ebd38fd084fc2cdbe144a0Marc Blank    }
51d2e4d4675d04e78591ebd38fd084fc2cdbe144a0Marc Blank
52d2e4d4675d04e78591ebd38fd084fc2cdbe144a0Marc Blank    public Object getResult() {
53d2e4d4675d04e78591ebd38fd084fc2cdbe144a0Marc Blank        return value;
54d2e4d4675d04e78591ebd38fd084fc2cdbe144a0Marc Blank    }
55d2e4d4675d04e78591ebd38fd084fc2cdbe144a0Marc Blank}
56