home *** CD-ROM | disk | FTP | other *** search
- package java.text;
-
- class PatternEntry {
- static final int RESET = -2;
- static final int UNSET = -1;
- int strength = -1;
- String chars = "";
- String extension = "";
-
- public void appendQuotedExtension(StringBuffer var1) {
- appendQuoted(this.extension, var1);
- }
-
- public void appendQuotedChars(StringBuffer var1) {
- appendQuoted(this.chars, var1);
- }
-
- public boolean equals(Object var1) {
- if (var1 == null) {
- return false;
- } else {
- PatternEntry var2 = (PatternEntry)var1;
- boolean var3 = this.chars.equals(var2.chars) && this.extension.equals(var2.extension);
- return var3;
- }
- }
-
- public String toString() {
- StringBuffer var1 = new StringBuffer();
- this.addToBuffer(var1, true, false, (PatternEntry)null);
- return var1.toString();
- }
-
- int getStrength() {
- return this.strength;
- }
-
- String getExtension() {
- return this.extension;
- }
-
- String getChars() {
- return this.chars;
- }
-
- PatternEntry() {
- }
-
- PatternEntry(int var1, StringBuffer var2, StringBuffer var3) {
- this.strength = var1;
- this.chars = var2.toString();
- this.extension = var3.toString();
- }
-
- void addToBuffer(StringBuffer var1, boolean var2, boolean var3, PatternEntry var4) {
- if (var3 && var1.length() > 0) {
- if (this.strength != 0 && var4 == null) {
- var1.append(' ');
- } else {
- var1.append('\n');
- }
- }
-
- if (var4 != null) {
- var1.append('&');
- if (var3) {
- var1.append(' ');
- }
-
- var4.appendQuotedChars(var1);
- this.appendQuotedExtension(var1);
- if (var3) {
- var1.append(' ');
- }
- }
-
- switch (this.strength) {
- case -2:
- var1.append('&');
- break;
- case -1:
- var1.append('?');
- break;
- case 0:
- var1.append('<');
- break;
- case 1:
- var1.append(';');
- break;
- case 2:
- var1.append(',');
- break;
- case 3:
- var1.append('=');
- }
-
- if (var3) {
- var1.append(' ');
- }
-
- appendQuoted(this.chars, var1);
- if (var2 && this.extension.length() != 0) {
- var1.append('/');
- appendQuoted(this.extension, var1);
- }
-
- }
-
- int getNextEntry(String var1, int var2) throws ParseException {
- byte var3 = -1;
- StringBuffer var4 = new StringBuffer();
- StringBuffer var5 = new StringBuffer();
- boolean var6 = true;
-
- label88:
- for(boolean var7 = false; var2 < var1.length(); ++var2) {
- char var8 = var1.charAt(var2);
- if (var7) {
- if (var8 == '\'') {
- var7 = false;
- } else if (var4.length() == 0) {
- var4.append(var8);
- } else if (var6) {
- var4.append(var8);
- } else {
- var5.append(var8);
- }
- } else {
- switch (var8) {
- case '\t':
- case '\n':
- case '\f':
- case '\r':
- case ' ':
- break;
- case '&':
- if (var3 != -1) {
- break label88;
- }
-
- var3 = -2;
- break;
- case '\'':
- var7 = true;
- ++var2;
- var8 = var1.charAt(var2);
- if (var4.length() == 0) {
- var4.append(var8);
- } else if (var6) {
- var4.append(var8);
- } else {
- var5.append(var8);
- }
- break;
- case ',':
- if (var3 != -1) {
- break label88;
- }
-
- var3 = 2;
- break;
- case '/':
- var6 = false;
- break;
- case ';':
- if (var3 != -1) {
- break label88;
- }
-
- var3 = 1;
- break;
- case '<':
- if (var3 != -1) {
- break label88;
- }
-
- var3 = 0;
- break;
- case '=':
- if (var3 != -1) {
- break label88;
- }
-
- var3 = 3;
- break;
- default:
- if (var3 == -1) {
- throw new ParseException("missing char (=,;<&) : " + var1.substring(var2, var2 + 10 < var1.length() ? var2 + 10 : var1.length()), var2);
- }
-
- if (isSpecialChar(var8) && !var7) {
- throw new ParseException("Unquoted punctuation character : " + Integer.toString(var8, 16), var2);
- }
-
- if (var6) {
- var4.append(var8);
- } else {
- var5.append(var8);
- }
- }
- }
- }
-
- if (var3 == -1) {
- return -1;
- } else if (var4.length() == 0) {
- throw new ParseException("missing chars (=,;<&): " + var1.substring(var2, var2 + 10 < var1.length() ? var2 + 10 : var1.length()), var2);
- } else {
- this.strength = var3;
- this.chars = var4.toString();
- this.extension = var5.toString();
- return var2;
- }
- }
-
- static boolean isSpecialChar(char var0) {
- return var0 <= '/' && var0 >= ' ' || var0 <= '?' && var0 >= ':' || var0 <= '`' && var0 >= '[' || var0 <= '~' && var0 >= '{';
- }
-
- static void appendQuoted(String var0, StringBuffer var1) {
- boolean var2 = false;
- char var3 = var0.charAt(0);
- if (Character.isSpaceChar(var3)) {
- var2 = true;
- var1.append('\'');
- } else if (isSpecialChar(var3)) {
- var2 = true;
- var1.append('\'');
- } else {
- switch (var3) {
- case '\t':
- case '\n':
- case '\f':
- case '\r':
- case '\u0010':
- case '@':
- var2 = true;
- var1.append('\'');
- break;
- case '\'':
- var2 = true;
- var1.append('\'');
- break;
- default:
- if (var2) {
- var2 = false;
- var1.append('\'');
- }
- }
- }
-
- var1.append(var0);
- if (var2) {
- var1.append('\'');
- }
-
- }
- }
-