Methods Summary |
---|
public void | appendQEString(java.lang.StringBuffer buf)
buf.append('"");
if (hasQE) {
char c;
for (int i = 0; i < rawString.length(); i++) {
c = rawString.charAt(i);
if (c == '"" || c == '\\") {
buf.append('\\");
}
buf.append(c);
}
} else {
buf.append(rawString);
}
buf.append('"");
|
public java.lang.String | getHexString()
if (hexString == null) {
if (!wasEncoded) {
//FIXME optimize me: what about reusable OutputStream???
if (Utils.isPrintableString(rawString)) {
encoded = ASN1StringType.PRINTABLESTRING.encode(rawString);
} else {
encoded = ASN1StringType.UTF8STRING.encode(rawString);
}
}
StringBuffer buf = new StringBuffer(encoded.length * 2 + 1);
buf.append('#");
for (int i = 0, c; i < encoded.length; i++) {
c = (encoded[i] >> 4) & 0x0F;
if (c < 10) {
buf.append((char) (c + 48));
} else {
buf.append((char) (c + 87));
}
c = encoded[i] & 0x0F;
if (c < 10) {
buf.append((char) (c + 48));
} else {
buf.append((char) (c + 87));
}
}
hexString = buf.toString();
}
return hexString;
|
public int | getTag()
if (tag == -1) {
if (Utils.isPrintableString(rawString)) {
tag = ASN1StringType.PRINTABLESTRING.id;
} else {
tag = ASN1StringType.UTF8STRING.id;
}
}
return tag;
|
public java.lang.String | makeCanonical()
int length = rawString.length();
if (length == 0) {
return rawString;
}
StringBuffer buf = new StringBuffer(length * 2);
int index = 0;
if (rawString.charAt(0) == '#") {
buf.append('\\");
buf.append('#");
index++;
}
int bufLength;
for (; index < length; index++) {
char ch = rawString.charAt(index);
switch (ch) {
case ' ":
bufLength = buf.length();
if (bufLength == 0 || buf.charAt(bufLength - 1) == ' ") {
break;
}
buf.append(' ");
break;
case '"":
case '\\":
case ',":
case '+":
case '<":
case '>":
case ';":
buf.append('\\");
default:
buf.append(ch);
}
}
//remove trailing spaces
for (bufLength = buf.length() - 1; bufLength > -1
&& buf.charAt(bufLength) == ' "; bufLength--) {
}
buf.setLength(bufLength + 1);
return buf.toString();
|
private java.lang.String | makeEscaped(java.lang.String name)
int length = name.length();
if (length == 0) {
return name;
}
StringBuffer buf = new StringBuffer(length * 2);
for (int index = 0; index < length; index++) {
char ch = name.charAt(index);
switch (ch) {
case ' ":
if (index == 0 || index == (length - 1)) {
// escape first or last space
buf.append('\\");
}
buf.append(' ");
break;
case '"":
case '\\":
hasQE = true;
case ',":
case '+":
case '<":
case '>":
case ';":
case '#": // required by RFC 1779
case '=": // required by RFC 1779
buf.append('\\");
default:
buf.append(ch);
}
}
return buf.toString();
|