1 /* GENERATED SOURCE. DO NOT MODIFY. */ 2 // 2016 and later: Unicode, Inc. and others. 3 // License & terms of use: http://www.unicode.org/copyright.html#License 4 /* 5 ****************************************************************************** 6 * Copyright (C) 2004-2009, International Business Machines Corporation and * 7 * others. All Rights Reserved. * 8 ****************************************************************************** 9 */ 10 11 package android.icu.util; 12 13 import java.util.NoSuchElementException; 14 15 /** 16 * <p>Class for enabling iteration over UResourceBundle objects. 17 * Example of use:<br> 18 * <pre> 19 * ICUResourceBundleIterator iterator = resB.getIterator(); 20 * ICUResourceBundle temp; 21 * while (iterator.hasNext()) { 22 * temp = iterartor.next(); 23 * int type = temp.getType(); 24 * switch(type){ 25 * case UResourceBundle.STRING: 26 * str = temp.getString(); 27 * break; 28 * case UResourceBundle.INT: 29 * integer = temp.getInt(); 30 * break; 31 * ..... 32 * } 33 * // do something interesting with data collected 34 * } 35 * </pre> 36 * @author ram 37 * @hide Only a subset of ICU is exposed in Android 38 */ 39 public class UResourceBundleIterator{ 40 private UResourceBundle bundle; 41 private int index = 0; 42 private int size = 0; 43 /** 44 * Construct a resource bundle iterator for the 45 * given resource bundle 46 * 47 * @param bndl The resource bundle to iterate over 48 */ 49 public UResourceBundleIterator(UResourceBundle bndl){ 50 bundle = bndl; 51 size = bundle.getSize(); 52 } 53 54 /** 55 * Returns the next element of this iterator if this iterator object has at least one more element to provide 56 * @return the UResourceBundle object 57 * @throws NoSuchElementException If there does not exist such an element. 58 */ 59 public UResourceBundle next()throws NoSuchElementException{ 60 if(index<size){ 61 return bundle.get(index++); 62 } 63 throw new NoSuchElementException(); 64 } 65 /** 66 * Returns the next String of this iterator if this iterator object has at least one more element to provide 67 * @return the UResourceBundle object 68 * @throws NoSuchElementException If there does not exist such an element. 69 * @throws UResourceTypeMismatchException If resource has a type mismatch. 70 */ 71 public String nextString()throws NoSuchElementException, UResourceTypeMismatchException{ 72 if(index<size){ 73 return bundle.getString(index++); 74 } 75 throw new NoSuchElementException(); 76 } 77 78 /** 79 * Resets the internal context of a resource so that iteration starts from the first element. 80 */ 81 public void reset(){ 82 //reset the internal context 83 index = 0; 84 } 85 86 /** 87 * Checks whether the given resource has another element to iterate over. 88 * @return TRUE if there are more elements, FALSE if there is no more elements 89 */ 90 public boolean hasNext(){ 91 return index < size; 92 } 93 }