home *** CD-ROM | disk | FTP | other *** search
/ S283 Planetary Science &… the Search for Life CD 3 / 0_CD-ROM.iso / install / jre1_3 / lib / rt.jar / java / text / PatternEntry.class (.txt) < prev    next >
Encoding:
Java Class File  |  1979-12-31  |  2.0 KB  |  153 lines

  1. package java.text;
  2.  
  3. class PatternEntry {
  4.    static final int RESET = -2;
  5.    static final int UNSET = -1;
  6.    int strength = -1;
  7.    String chars = "";
  8.    String extension = "";
  9.  
  10.    public void appendQuotedExtension(StringBuffer var1) {
  11.       appendQuoted(this.extension, var1);
  12.    }
  13.  
  14.    public void appendQuotedChars(StringBuffer var1) {
  15.       appendQuoted(this.chars, var1);
  16.    }
  17.  
  18.    public boolean equals(Object var1) {
  19.       if (var1 == null) {
  20.          return false;
  21.       } else {
  22.          PatternEntry var2 = (PatternEntry)var1;
  23.          boolean var3 = this.chars.equals(var2.chars);
  24.          return var3;
  25.       }
  26.    }
  27.  
  28.    public int hashCode() {
  29.       return this.chars.hashCode();
  30.    }
  31.  
  32.    public String toString() {
  33.       StringBuffer var1 = new StringBuffer();
  34.       this.addToBuffer(var1, true, false, (PatternEntry)null);
  35.       return var1.toString();
  36.    }
  37.  
  38.    final int getStrength() {
  39.       return this.strength;
  40.    }
  41.  
  42.    final String getExtension() {
  43.       return this.extension;
  44.    }
  45.  
  46.    final String getChars() {
  47.       return this.chars;
  48.    }
  49.  
  50.    void addToBuffer(StringBuffer var1, boolean var2, boolean var3, PatternEntry var4) {
  51.       if (var3 && var1.length() > 0) {
  52.          if (this.strength != 0 && var4 == null) {
  53.             var1.append(' ');
  54.          } else {
  55.             var1.append('\n');
  56.          }
  57.       }
  58.  
  59.       if (var4 != null) {
  60.          var1.append('&');
  61.          if (var3) {
  62.             var1.append(' ');
  63.          }
  64.  
  65.          var4.appendQuotedChars(var1);
  66.          this.appendQuotedExtension(var1);
  67.          if (var3) {
  68.             var1.append(' ');
  69.          }
  70.       }
  71.  
  72.       switch (this.strength) {
  73.          case -2:
  74.             var1.append('&');
  75.             break;
  76.          case -1:
  77.             var1.append('?');
  78.             break;
  79.          case 0:
  80.             var1.append('<');
  81.             break;
  82.          case 1:
  83.             var1.append(';');
  84.             break;
  85.          case 2:
  86.             var1.append(',');
  87.             break;
  88.          case 3:
  89.             var1.append('=');
  90.       }
  91.  
  92.       if (var3) {
  93.          var1.append(' ');
  94.       }
  95.  
  96.       appendQuoted(this.chars, var1);
  97.       if (var2 && this.extension.length() != 0) {
  98.          var1.append('/');
  99.          appendQuoted(this.extension, var1);
  100.       }
  101.  
  102.    }
  103.  
  104.    static void appendQuoted(String var0, StringBuffer var1) {
  105.       boolean var2 = false;
  106.       char var3 = var0.charAt(0);
  107.       if (Character.isSpaceChar(var3)) {
  108.          var2 = true;
  109.          var1.append('\'');
  110.       } else if (isSpecialChar(var3)) {
  111.          var2 = true;
  112.          var1.append('\'');
  113.       } else {
  114.          switch (var3) {
  115.             case '\t':
  116.             case '\n':
  117.             case '\f':
  118.             case '\r':
  119.             case '\u0010':
  120.             case '@':
  121.                var2 = true;
  122.                var1.append('\'');
  123.                break;
  124.             case '\'':
  125.                var2 = true;
  126.                var1.append('\'');
  127.                break;
  128.             default:
  129.                if (var2) {
  130.                   var2 = false;
  131.                   var1.append('\'');
  132.                }
  133.          }
  134.       }
  135.  
  136.       var1.append(var0);
  137.       if (var2) {
  138.          var1.append('\'');
  139.       }
  140.  
  141.    }
  142.  
  143.    PatternEntry(int var1, StringBuffer var2, StringBuffer var3) {
  144.       this.strength = var1;
  145.       this.chars = var2.toString();
  146.       this.extension = var3.length() > 0 ? var3.toString() : "";
  147.    }
  148.  
  149.    static boolean isSpecialChar(char var0) {
  150.       return var0 <= '/' && var0 >= ' ' || var0 <= '?' && var0 >= ':' || var0 <= '`' && var0 >= '[' || var0 <= '~' && var0 >= '{';
  151.    }
  152. }
  153.