1 19 20 package org.netbeans.editor.ext; 21 22 import java.text.CharacterIterator ; 23 24 30 31 public class CharacterArrayIterator implements CharacterIterator { 32 33 char[] chars; 34 35 int beginIndex; 36 37 int endIndex; 38 39 int index; 40 41 public CharacterArrayIterator(char[] chars, int beginIndex, int endIndex) { 42 this.chars = chars; 43 this.beginIndex = beginIndex; 44 this.endIndex = endIndex; 45 index = beginIndex; 46 } 47 48 private char currentChar() { 49 return (index >= beginIndex && index < endIndex) ? chars[index] : DONE; 50 } 51 52 public char first() { 53 index = beginIndex; 54 return currentChar(); 55 } 56 57 public char last() { 58 index = endIndex - 1; 59 return currentChar(); 60 } 61 62 public char current() { 63 return currentChar(); 64 } 65 66 public char next() { 67 index = Math.min(index + 1, endIndex); 68 return currentChar(); 69 } 70 71 public char previous() { 72 if (index <= beginIndex) { 73 return DONE; 74 } else { 75 return chars[--index]; 76 } 77 } 78 79 public char setIndex(int position) { 80 if (position < beginIndex || position >= endIndex) { 81 throw new IllegalArgumentException (); 82 } 83 index = position; 84 return currentChar(); 85 } 86 87 public int getBeginIndex() { 88 return beginIndex; 89 } 90 91 public int getEndIndex() { 92 return endIndex; 93 } 94 95 public int getIndex() { 96 return index; 97 } 98 99 public Object clone() { 100 return new CharacterArrayIterator(chars, beginIndex, endIndex); 101 } 102 103 } 104 | Popular Tags |