00001 package com.quadcap.util.text;
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020
00021
00022
00023
00024
00025
00026
00027
00028
00029
00030
00031
00032
00033
00034
00035
00036
00037
00038
00039
00040
00041
00042
00043
00044
00045
00046 public class OctetMap {
00047 boolean[]
isValid =
new boolean[256];
00048
00049 public static OctetMap tokenChars;
00050 public static OctetMap uriChars;
00051 public static OctetMap numberChars;
00052 public static OctetMap fieldValueChars;
00053 public static OctetMap wsChars;
00054 public static OctetMap crlfChars;
00055
00056 public static OctetMap dquoteChar =
new OctetMap(
'"');
00057
00058
static {
00059
tokenChars =
new OctetMap(32, 126);
00060
tokenChars.
exclude(
"()<>@,;:\\\"/[]?={} ");
00061
00062
uriChars =
new OctetMap(0, 255);
00063
uriChars.
exclude(
"? \r\n");
00064
00065
numberChars =
new OctetMap(
'0',
'9');
00066
numberChars.
include(
'.',
'.');
00067
00068
fieldValueChars =
new OctetMap(32, 126);
00069
00070
wsChars =
new OctetMap(
' ');
00071
wsChars.
include(
'\t');
00072
00073
crlfChars =
new OctetMap(
'\r');
00074
crlfChars.
include(
'\n');
00075 }
00076
00077 public OctetMap(
int c) {
00078
include(c);
00079 }
00080
00081 public OctetMap(
int start,
int end) {
00082
include(start, end);
00083 }
00084
00085 public OctetMap(String s) {
00086
include(s);
00087 }
00088
00089 public void include(
int start,
int end) {
00090
for (
int i = start; i <= end; i++)
isValid[i] =
true;
00091 }
00092
00093 public void include(
int c) {
00094
isValid[c] =
true;
00095 }
00096
00097 public void exclude(
int start,
int end) {
00098
for (
int i = start; i <= end; i++)
isValid[i] =
false;
00099 }
00100
00101 public void exclude(String s) {
00102
for (
int i = 0; i < s.length(); i++) {
00103
isValid[(byte)s.charAt(i)] =
false;
00104 }
00105 }
00106
00107 public void include(String s) {
00108
for (
int i = 0; i < s.length(); i++) {
00109
isValid[(byte)s.charAt(i)] =
true;
00110 }
00111 }
00112
00113 public boolean has(
int b) {
return isValid[b & 0xff]; }
00114 }