Skip to content

Commit 24c6c34

Browse files
committed
refactor
1 parent ff35414 commit 24c6c34

2 files changed

Lines changed: 43 additions & 35 deletions

File tree

src/main/java/ch/digitalfondue/jfiveparse/Characters.java

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -24,7 +24,9 @@ final class Characters {
2424
static final char EXCLAMATION_MARK = 0x0021;
2525
/** & */
2626
static final char AMPERSAND = 0x0026;
27+
/** < */
2728
static final char LESSTHAN_SIGN = 0x003C;
29+
/** > */
2830
static final char GREATERTHAN_SIGN = 0x003E;
2931
static final char SOLIDUS = 0x002F;
3032
static final char QUESTION_MARK = 0x003F;

src/main/java/ch/digitalfondue/jfiveparse/ProcessedInputStream.java

Lines changed: 41 additions & 35 deletions
Original file line numberDiff line numberDiff line change
@@ -52,12 +52,18 @@ int readUntilAttributeValue(ResizableCharBuilder builder, int quoteChar, boolean
5252
return readUntilAttributeValueInternal(builder, quoteChar, stopAtAmpersand);
5353
}
5454

55+
private static boolean mustStopReadUntilAttributeValueUnquoted(int chr) {
56+
return Common.isTabLfFfCrOrSpace(chr) || chr == Characters.AMPERSAND || chr == Characters.GREATERTHAN_SIGN
57+
|| chr == Characters.NULL || chr == Characters.QUOTATION_MARK ||
58+
chr == Characters.APOSTROPHE || chr == Characters.LESSTHAN_SIGN ||
59+
chr == Characters.EQUALS_SIGN || chr == Characters.GRAVE_ACCENT || chr == Characters.EOF;
60+
}
61+
5562
int readUntilAttributeValueUnquoted(ResizableCharBuilder builder) {
5663
int chr;
5764
while (!buffer.isEmpty) {
5865
chr = buffer.removeFirst();
59-
if (Common.isTabLfFfCrOrSpace(chr) || chr == Characters.AMPERSAND || chr == '>' || chr == Characters.NULL ||
60-
chr == '"' || chr == '\'' || chr == Characters.LESSTHAN_SIGN || chr == '=' || chr == '`' || chr == Characters.EOF) {
66+
if (mustStopReadUntilAttributeValueUnquoted(chr)) {
6167
return chr;
6268
}
6369
builder.append((char) chr);
@@ -77,12 +83,16 @@ int readUntilTagName(ResizableCharBuilder builder) {
7783
return readUntilTagNameInternal(builder);
7884
}
7985

86+
private static boolean mustStopReadUntilAttributeName(int chr) {
87+
return Common.isTabLfFfCrOrSpace(chr) || chr == Characters.SOLIDUS || chr == Characters.EQUALS_SIGN || chr == Characters.GREATERTHAN_SIGN || chr == Characters.NULL ||
88+
chr == Characters.QUOTATION_MARK || chr == Characters.APOSTROPHE || chr == Characters.LESSTHAN_SIGN || chr == Characters.EOF;
89+
}
90+
8091
int readUntilAttributeName(ResizableCharBuilder builder) {
8192
int chr;
8293
while (!buffer.isEmpty) {
8394
chr = buffer.removeFirst();
84-
if (Common.isTabLfFfCrOrSpace(chr) || chr == Characters.SOLIDUS || chr == '=' || chr == '>' || chr == Characters.NULL ||
85-
chr == '"' || chr == '\'' || chr == Characters.LESSTHAN_SIGN || chr == Characters.EOF) {
95+
if (mustStopReadUntilAttributeName(chr)) {
8696
return chr;
8797
}
8898
builder.append((char) chr);
@@ -94,7 +104,7 @@ int readUntilComment(ResizableCharBuilder builder) {
94104
int chr;
95105
while (!buffer.isEmpty) {
96106
chr = buffer.removeFirst();
97-
if (chr == '-' || chr == Characters.NULL || chr == Characters.EOF) {
107+
if (chr == Characters.HYPHEN_MINUS || chr == Characters.NULL || chr == Characters.EOF) {
98108
return chr;
99109
}
100110
builder.append((char) chr);
@@ -104,70 +114,68 @@ int readUntilComment(ResizableCharBuilder builder) {
104114

105115
protected int readUntilInternal(ResizableCharBuilder builder, boolean stopAtAmpersand, boolean stopAtLessThan) {
106116
int chr;
107-
while ((chr = read()) != -1) {
117+
while ((chr = read()) != Characters.EOF) {
108118
if ((stopAtAmpersand && chr == Characters.AMPERSAND) || (stopAtLessThan && chr == Characters.LESSTHAN_SIGN) || chr == Characters.NULL) {
109119
return chr;
110120
}
111121
builder.append((char) chr);
112122
}
113-
return -1;
123+
return Characters.EOF;
114124
}
115125

116126
protected int readUntilAttributeValueInternal(ResizableCharBuilder builder, int quoteChar, boolean stopAtAmpersand) {
117127
int chr;
118-
while ((chr = read()) != -1) {
128+
while ((chr = read()) != Characters.EOF) {
119129
if (chr == quoteChar || (stopAtAmpersand && chr == Characters.AMPERSAND) || chr == Characters.NULL) {
120130
return chr;
121131
}
122132
builder.append((char) chr);
123133
}
124-
return -1;
134+
return Characters.EOF;
125135
}
126136

127137
protected int readUntilAttributeValueUnquotedInternal(ResizableCharBuilder builder) {
128138
int chr;
129-
while ((chr = read()) != -1) {
130-
if (Common.isTabLfFfCrOrSpace(chr) || chr == Characters.AMPERSAND || chr == '>' || chr == Characters.NULL ||
131-
chr == '"' || chr == '\'' || chr == Characters.LESSTHAN_SIGN || chr == '=' || chr == '`') {
139+
while ((chr = read()) != Characters.EOF) {
140+
if (mustStopReadUntilAttributeValueUnquoted(chr)) {
132141
return chr;
133142
}
134143
builder.append((char) chr);
135144
}
136-
return -1;
145+
return Characters.EOF;
137146
}
138147

139148
protected int readUntilTagNameInternal(ResizableCharBuilder builder) {
140149
int chr;
141-
while ((chr = read()) != -1) {
150+
while ((chr = read()) != Characters.EOF) {
142151
if (Common.isTabLfFfCrOrSpace(chr) || chr == Characters.SOLIDUS || chr == Characters.GREATERTHAN_SIGN || chr == Characters.NULL) {
143152
return chr;
144153
}
145154
builder.append((char) chr);
146155
}
147-
return -1;
156+
return Characters.EOF;
148157
}
149158

150159
protected int readUntilAttributeNameInternal(ResizableCharBuilder builder) {
151160
int chr;
152-
while ((chr = read()) != -1) {
153-
if (Common.isTabLfFfCrOrSpace(chr) || chr == Characters.SOLIDUS || chr == '=' || chr == '>' || chr == Characters.NULL ||
154-
chr == '"' || chr == '\'' || chr == Characters.LESSTHAN_SIGN) {
161+
while ((chr = read()) != Characters.EOF) {
162+
if (mustStopReadUntilAttributeName(chr)) {
155163
return chr;
156164
}
157165
builder.append((char) chr);
158166
}
159-
return -1;
167+
return Characters.EOF;
160168
}
161169

162170
protected int readUntilCommentInternal(ResizableCharBuilder builder) {
163171
int chr;
164-
while ((chr = read()) != -1) {
165-
if (chr == '-' || chr == Characters.NULL) {
172+
while ((chr = read()) != Characters.EOF) {
173+
if (chr == Characters.HYPHEN_MINUS || chr == Characters.NULL) {
166174
return chr;
167175
}
168176
builder.append((char) chr);
169177
}
170-
return -1;
178+
return Characters.EOF;
171179
}
172180

173181
//
@@ -234,7 +242,7 @@ static class StringProcessedInputStream extends ProcessedInputStream {
234242
// used for test
235243
protected int getCharAt(int pos) {
236244
if (pos >= length) {
237-
return -1;
245+
return Characters.EOF;
238246
}
239247
return input[pos];
240248
}
@@ -244,7 +252,7 @@ protected int read() {
244252
if (pos < length) {
245253
return input[pos++];
246254
}
247-
return -1;
255+
return Characters.EOF;
248256
}
249257

250258
@Override
@@ -262,7 +270,7 @@ protected int readUntilInternal(ResizableCharBuilder builder, boolean stopAtAmpe
262270
}
263271
builder.append(input, pos, n - pos);
264272
pos = n;
265-
return -1;
273+
return Characters.EOF;
266274
}
267275

268276
@Override
@@ -280,7 +288,7 @@ protected int readUntilAttributeValueInternal(ResizableCharBuilder builder, int
280288
}
281289
builder.append(input, pos, n - pos);
282290
pos = n;
283-
return -1;
291+
return Characters.EOF;
284292
}
285293

286294
@Override
@@ -289,8 +297,7 @@ protected int readUntilAttributeValueUnquotedInternal(ResizableCharBuilder build
289297
int i = pos;
290298
while (i < n) {
291299
char c = input[i];
292-
if (Common.isTabLfFfCrOrSpace(c) || c == Characters.AMPERSAND || c == '>' || c == Characters.NULL ||
293-
c == '"' || c == '\'' || c == Characters.LESSTHAN_SIGN || c == '=' || c == '`') {
300+
if (mustStopReadUntilAttributeValueUnquoted(c)) {
294301
builder.append(input, pos, i - pos);
295302
pos = i + 1;
296303
return c;
@@ -299,7 +306,7 @@ protected int readUntilAttributeValueUnquotedInternal(ResizableCharBuilder build
299306
}
300307
builder.append(input, pos, n - pos);
301308
pos = n;
302-
return -1;
309+
return Characters.EOF;
303310
}
304311

305312
@Override
@@ -317,7 +324,7 @@ protected int readUntilTagNameInternal(ResizableCharBuilder builder) {
317324
}
318325
builder.append(input, pos, n - pos);
319326
pos = n;
320-
return -1;
327+
return Characters.EOF;
321328
}
322329

323330
@Override
@@ -326,17 +333,16 @@ protected int readUntilAttributeNameInternal(ResizableCharBuilder builder) {
326333
int i = pos;
327334
while (i < n) {
328335
char c = input[i];
329-
if (Common.isTabLfFfCrOrSpace(c) || c == Characters.SOLIDUS || c == '=' || c == '>' || c == Characters.NULL ||
330-
c == '"' || c == '\'' || c == Characters.LESSTHAN_SIGN) {
331-
builder.append(input, pos, i - pos);
336+
if (mustStopReadUntilAttributeName(c)) {
337+
builder.append(input, pos, i - pos); // append remaining
332338
pos = i + 1;
333339
return c;
334340
}
335341
i++;
336342
}
337343
builder.append(input, pos, n - pos);
338344
pos = n;
339-
return -1;
345+
return Characters.EOF;
340346
}
341347

342348
@Override
@@ -354,7 +360,7 @@ protected int readUntilCommentInternal(ResizableCharBuilder builder) {
354360
}
355361
builder.append(input, pos, n - pos);
356362
pos = n;
357-
return -1;
363+
return Characters.EOF;
358364
}
359365
}
360366

0 commit comments

Comments
 (0)