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