KickJava   Java API By Example, From Geeks To Geeks.

Java > Open Source Codes > org > netbeans > editor > ext > CharacterArrayIterator


1 /*
2  * The contents of this file are subject to the terms of the Common Development
3  * and Distribution License (the License). You may not use this file except in
4  * compliance with the License.
5  *
6  * You can obtain a copy of the License at http://www.netbeans.org/cddl.html
7  * or http://www.netbeans.org/cddl.txt.
8  *
9  * When distributing Covered Code, include this CDDL Header Notice in each file
10  * and include the License file at http://www.netbeans.org/cddl.txt.
11  * If applicable, add the following below the CDDL Header, with the fields
12  * enclosed by brackets [] replaced by your own identifying information:
13  * "Portions Copyrighted [year] [name of copyright owner]"
14  *
15  * The Original Software is NetBeans. The Initial Developer of the Original
16  * Software is Sun Microsystems, Inc. Portions Copyright 1997-2006 Sun
17  * Microsystems, Inc. All Rights Reserved.
18  */

19
20 package org.netbeans.editor.ext;
21
22 import java.text.CharacterIterator JavaDoc;
23
24 /**
25 * Character-iterator that operates on the array of characters.
26 *
27 * @author Miloslav Metelka
28 * @version 1.00
29 */

30
31 public class CharacterArrayIterator implements CharacterIterator JavaDoc {
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 JavaDoc();
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 JavaDoc clone() {
100         return new CharacterArrayIterator(chars, beginIndex, endIndex);
101     }
102
103 }
104
Popular Tags