Javolution 6.0.0 java
CharSequenceReader.java
Go to the documentation of this file.
1
/*
2
* Javolution - Java(TM) Solution for Real-Time and Embedded Systems
3
* Copyright (C) 2012 - Javolution (http://javolution.org/)
4
* All rights reserved.
5
*
6
* Permission to use, copy, modify, and distribute this software is
7
* freely granted, provided that this notice is preserved.
8
*/
9
package
javolution.io;
10
11
import
java.io.IOException;
12
import
java.io.Reader;
13
import
javolution
.
lang
.
MathLib
;
14
import
javolution
.
text
.
CharArray
;
15
import
javolution
.
text
.
Text
;
16
import
javolution
.
text
.
TextBuilder
;
17
25
public
final
class
CharSequenceReader
extends
Reader {
26
30
private
CharSequence
_input
;
31
35
private
int
_index
;
36
43
public
CharSequenceReader
() {}
44
53
public
CharSequenceReader
setInput
(CharSequence charSequence) {
54
if
(
_input
!=
null
)
55
throw
new
IllegalStateException(
"Reader not closed or reset"
);
56
_input
= charSequence;
57
return
this
;
58
}
59
67
public
boolean
ready
() throws IOException {
68
if
(
_input
==
null
)
69
throw
new
IOException(
"Reader closed"
);
70
return
true
;
71
}
72
76
public
void
close
() {
77
if
(
_input
!=
null
) {
78
reset
();
79
}
80
}
81
91
public
int
read
() throws IOException {
92
if
(
_input
==
null
)
93
throw
new
IOException(
"Reader closed"
);
94
return
(
_index
<
_input
.length()) ?
_input
.charAt(
_index
++) : -1;
95
}
96
108
public
int
read
(
char
cbuf[],
int
off,
int
len)
throws
IOException {
109
if
(
_input
==
null
)
110
throw
new
IOException(
"Reader closed"
);
111
final
int
inputLength =
_input
.length();
112
if
(
_index
>= inputLength)
113
return
-1;
114
final
int
count =
MathLib
.
min
(inputLength -
_index
, len);
115
final
Object csq =
_input
;
116
if
(csq instanceof String) {
117
String str = (String) csq;
118
str.getChars(
_index
,
_index
+ count, cbuf, off);
119
}
else
if
(csq instanceof
Text
) {
120
Text
txt = (
Text
) csq;
121
txt.
getChars
(
_index
,
_index
+ count, cbuf, off);
122
}
else
if
(csq instanceof
TextBuilder
) {
123
TextBuilder
tb = (
TextBuilder
) csq;
124
tb.
getChars
(
_index
,
_index
+ count, cbuf, off);
125
}
else
if
(csq instanceof
CharArray
) {
126
CharArray
ca = (
CharArray
) csq;
127
System.arraycopy(ca.
array
(),
_index
+ ca.
offset
(), cbuf, off, count);
128
}
else
{
// Generic CharSequence.
129
for
(
int
i = off, n = off + count, j =
_index
; i < n;) {
130
cbuf[i++] =
_input
.charAt(j++);
131
}
132
}
133
_index
+= count;
134
return
count;
135
}
136
144
public
void
read
(Appendable dest)
throws
IOException {
145
if
(
_input
==
null
)
146
throw
new
IOException(
"Reader closed"
);
147
dest.append(
_input
);
148
}
149
150
@Override
151
public
void
reset
() {
152
_index
= 0;
153
_input
=
null
;
154
}
155
156
}
javolution.text.CharArray
Definition:
CharArray.java:36
javolution.io.CharSequenceReader.reset
void reset()
Definition:
CharSequenceReader.java:151
javolution
javolution.io.CharSequenceReader.setInput
CharSequenceReader setInput(CharSequence charSequence)
Definition:
CharSequenceReader.java:53
javolution.io.CharSequenceReader.read
int read()
Definition:
CharSequenceReader.java:91
javolution.lang.MathLib
Definition:
MathLib.java:20
javolution.text.Text
Definition:
Text.java:62
javolution.text.TextBuilder
Definition:
TextBuilder.java:29
javolution.io.CharSequenceReader._index
int _index
Definition:
CharSequenceReader.java:35
javolution.text.CharArray.offset
int offset()
Definition:
CharArray.java:104
javolution.io.CharSequenceReader.read
int read(char cbuf[], int off, int len)
Definition:
CharSequenceReader.java:108
javolution.io.CharSequenceReader.ready
boolean ready()
Definition:
CharSequenceReader.java:67
javolution.io.CharSequenceReader._input
CharSequence _input
Definition:
CharSequenceReader.java:30
javolution.lang
Definition:
Configurable.java:9
javolution.text
Definition:
CharArray.java:9
javolution.io.CharSequenceReader
Definition:
CharSequenceReader.java:25
javolution.io.CharSequenceReader.close
void close()
Definition:
CharSequenceReader.java:76
javolution.text.TextBuilder.getChars
final void getChars(int srcBegin, int srcEnd, char[] dst, int dstBegin)
Definition:
TextBuilder.java:121
javolution.text.Text.getChars
void getChars(int start, int end, char dest[], int destPos)
Definition:
Text.java:1022
javolution.text.CharArray.array
char[] array()
Definition:
CharArray.java:86
javolution.io.CharSequenceReader.CharSequenceReader
CharSequenceReader()
Definition:
CharSequenceReader.java:43
javolution.io.CharSequenceReader.read
void read(Appendable dest)
Definition:
CharSequenceReader.java:144
javolution.lang.MathLib.min
static int min(int x, int y)
Definition:
MathLib.java:1010
core-java
src
main
java
javolution
io
CharSequenceReader.java
Generated by
1.8.18