1 /** 2 * The contents of this file are subject to the Mozilla Public License Version 1.1 3 * (the "License"); you may not use this file except in compliance with the License. 4 * You may obtain a copy of the License at http://www.mozilla.org/MPL/ 5 * Software distributed under the License is distributed on an "AS IS" basis, 6 * WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License for the 7 * specific language governing rights and limitations under the License. 8 * 9 * The Original Code is "" Description: 10 * "" 11 * 12 * The Initial Developer of the Original Code is University Health Network. Copyright (C) 13 * 2001. All Rights Reserved. 14 * 15 * Contributor(s): ______________________________________. 16 * 17 * Alternatively, the contents of this file may be used under the terms of the 18 * GNU General Public License (the "GPL"), in which case the provisions of the GPL are 19 * applicable instead of those above. If you wish to allow use of your version of this 20 * file only under the terms of the GPL and not to allow others to use your version 21 * of this file under the MPL, indicate your decision by deleting the provisions above 22 * and replace them with the notice and other provisions required by the GPL License. 23 * If you do not delete the provisions above, a recipient may use your version of 24 * this file under either the MPL or the GPL. 25 */ 26 package ca.uhn.hl7v2.testpanel.util; 27 28 import java.util.Iterator; 29 30 public class CharCountingStringIteratorDecorator implements Iterator<String> { 31 32 private int myNumCharsReturned = 0; 33 private int myNumReturned = 0; 34 private final Iterator<String> myWrap; 35 36 public CharCountingStringIteratorDecorator(Iterator<String> theWrap) { 37 myWrap = theWrap; 38 } 39 40 /** 41 * @return the numCharsReturned 42 */ 43 public int getNumCharsReturned() { 44 return myNumCharsReturned; 45 } 46 47 /** 48 * @param theNumCharsReturned the numCharsReturned to set 49 */ 50 public void setNumCharsReturned(int theNumCharsReturned) { 51 myNumCharsReturned = theNumCharsReturned; 52 } 53 54 /** 55 * @return the numReturned 56 */ 57 public int getNumReturned() { 58 return myNumReturned; 59 } 60 61 public boolean hasNext() { 62 return myWrap.hasNext(); 63 } 64 65 public String next() { 66 String next = myWrap.next(); 67 myNumReturned++; 68 myNumCharsReturned += next.length(); 69 return next; 70 } 71 72 public void remove() { 73 myWrap.remove(); 74 } 75 76 }