home *** CD-ROM | disk | FTP | other *** search
/ PC Online 1998 January / PCO0198.ISO / browser / net_linx / java40.jar / netscape / plugin / composer / io / Entity.class (.txt) < prev    next >
Encoding:
Java Class File  |  1997-11-03  |  4.8 KB  |  198 lines

  1. package netscape.plugin.composer.io;
  2.  
  3. import java.util.Enumeration;
  4.  
  5. public class Entity extends Token {
  6.    private String name;
  7.    // $FF: renamed from: ch int
  8.    private int field_0;
  9.    private static Entity[] knownEntities = new Entity[106];
  10.  
  11.    public Entity(StringBuffer var1) {
  12.       this.name = var1.toString();
  13.       this.field_0 = -1;
  14.    }
  15.  
  16.    public static Enumeration entities() {
  17.       return new EntityEnumeration(knownEntities);
  18.    }
  19.  
  20.    Entity(FooStringBuffer var1) {
  21.       this.name = var1.toString();
  22.       this.field_0 = -1;
  23.    }
  24.  
  25.    public Entity(String var1, char var2) {
  26.       this.name = var1;
  27.       this.field_0 = var2;
  28.    }
  29.  
  30.    public int getValue() {
  31.       if (this.field_0 == -1) {
  32.          this.field_0 = this.evaluate();
  33.       }
  34.  
  35.       return this.field_0;
  36.    }
  37.  
  38.    protected int evaluate() {
  39.       try {
  40.          if (this.name.charAt(0) == '#') {
  41.             int var6 = 0;
  42.             int var2 = this.name.length();
  43.  
  44.             for(int var3 = 1; var3 < var2; ++var3) {
  45.                char var4 = this.name.charAt(var3);
  46.                if (var4 < '0' || var4 > '9') {
  47.                   break;
  48.                }
  49.  
  50.                var6 = var6 * 10 + (var4 - 48);
  51.             }
  52.  
  53.             return var6;
  54.          }
  55.  
  56.          for(int var1 = 0; var1 < knownEntities.length; ++var1) {
  57.             if (knownEntities[var1].name.equals(this.name)) {
  58.                return knownEntities[var1].field_0;
  59.             }
  60.          }
  61.       } catch (ArrayIndexOutOfBoundsException var5) {
  62.       }
  63.  
  64.       return -1;
  65.    }
  66.  
  67.    public String toString() {
  68.       return "&" + this.name + ";";
  69.    }
  70.  
  71.    public int hashCode() {
  72.       if (this.field_0 == -1) {
  73.          this.field_0 = this.evaluate();
  74.       }
  75.  
  76.       return this.name.hashCode() ^ this.field_0;
  77.    }
  78.  
  79.    public boolean equals(Object var1) {
  80.       if (var1 != null && var1 instanceof Entity) {
  81.          Entity var2 = (Entity)var1;
  82.          return this.name.equals(var2.name);
  83.       } else {
  84.          return false;
  85.       }
  86.    }
  87.  
  88.    static {
  89.       int var0 = 0;
  90.       knownEntities[var0++] = new Entity("lt", '<');
  91.       knownEntities[var0++] = new Entity("LT", '<');
  92.       knownEntities[var0++] = new Entity("gt", '>');
  93.       knownEntities[var0++] = new Entity("GT", '>');
  94.       knownEntities[var0++] = new Entity("amp", '&');
  95.       knownEntities[var0++] = new Entity("AMP", '&');
  96.       knownEntities[var0++] = new Entity("quot", '"');
  97.       knownEntities[var0++] = new Entity("QUOT", '"');
  98.       knownEntities[var0++] = new Entity("nbsp", '┬á');
  99.       knownEntities[var0++] = new Entity("reg", '┬«');
  100.       knownEntities[var0++] = new Entity("REG", '┬«');
  101.       knownEntities[var0++] = new Entity("copy", '┬⌐');
  102.       knownEntities[var0++] = new Entity("COPY", '┬⌐');
  103.       knownEntities[var0++] = new Entity("iexcl", '┬í');
  104.       knownEntities[var0++] = new Entity("cent", '┬ó');
  105.       knownEntities[var0++] = new Entity("pound", '┬ú');
  106.       knownEntities[var0++] = new Entity("curren", '┬ñ');
  107.       knownEntities[var0++] = new Entity("yen", '┬Ñ');
  108.       knownEntities[var0++] = new Entity("brvbar", '┬ª');
  109.       knownEntities[var0++] = new Entity("sect", '┬º');
  110.       knownEntities[var0++] = new Entity("uml", '┬¿');
  111.       knownEntities[var0++] = new Entity("ordf", '┬¬');
  112.       knownEntities[var0++] = new Entity("laquo", '┬½');
  113.       knownEntities[var0++] = new Entity("not", '┬¼');
  114.       knownEntities[var0++] = new Entity("shy", '\u00ad');
  115.       knownEntities[var0++] = new Entity("macr", '┬»');
  116.       knownEntities[var0++] = new Entity("deg", '┬░');
  117.       knownEntities[var0++] = new Entity("plusmn", '┬▒');
  118.       knownEntities[var0++] = new Entity("sup2", '┬▓');
  119.       knownEntities[var0++] = new Entity("sup3", '┬│');
  120.       knownEntities[var0++] = new Entity("acute", '┬┤');
  121.       knownEntities[var0++] = new Entity("micro", '┬╡');
  122.       knownEntities[var0++] = new Entity("para", '┬╢');
  123.       knownEntities[var0++] = new Entity("middot", '┬╖');
  124.       knownEntities[var0++] = new Entity("cedil", '┬╕');
  125.       knownEntities[var0++] = new Entity("sup1", '┬╣');
  126.       knownEntities[var0++] = new Entity("ordm", '┬║');
  127.       knownEntities[var0++] = new Entity("raquo", '┬╗');
  128.       knownEntities[var0++] = new Entity("frac14", '┬╝');
  129.       knownEntities[var0++] = new Entity("frac12", '┬╜');
  130.       knownEntities[var0++] = new Entity("frac34", '┬╛');
  131.       knownEntities[var0++] = new Entity("iquest", '┬┐');
  132.       knownEntities[var0++] = new Entity("Agrave", '├Ç');
  133.       knownEntities[var0++] = new Entity("Aacute", '├ü');
  134.       knownEntities[var0++] = new Entity("Acirc", '├é');
  135.       knownEntities[var0++] = new Entity("Atilde", '├â');
  136.       knownEntities[var0++] = new Entity("Auml", '├ä');
  137.       knownEntities[var0++] = new Entity("Aring", '├à');
  138.       knownEntities[var0++] = new Entity("AElig", '├å');
  139.       knownEntities[var0++] = new Entity("Ccedil", '├ç');
  140.       knownEntities[var0++] = new Entity("Egrave", '├ê');
  141.       knownEntities[var0++] = new Entity("Eacute", '├ë');
  142.       knownEntities[var0++] = new Entity("Ecirc", '├è');
  143.       knownEntities[var0++] = new Entity("Euml", '├ï');
  144.       knownEntities[var0++] = new Entity("Igrave", '├î');
  145.       knownEntities[var0++] = new Entity("Iacute", '├ì');
  146.       knownEntities[var0++] = new Entity("Icirc", '├Ä');
  147.       knownEntities[var0++] = new Entity("Iuml", '├Å');
  148.       knownEntities[var0++] = new Entity("ETH", '├É');
  149.       knownEntities[var0++] = new Entity("Ntilde", '├æ');
  150.       knownEntities[var0++] = new Entity("Ograve", '├Æ');
  151.       knownEntities[var0++] = new Entity("Oacute", '├ô');
  152.       knownEntities[var0++] = new Entity("Ocirc", '├ö');
  153.       knownEntities[var0++] = new Entity("Otilde", '├ò');
  154.       knownEntities[var0++] = new Entity("Ouml", '├û');
  155.       knownEntities[var0++] = new Entity("times", '├ù');
  156.       knownEntities[var0++] = new Entity("Oslash", '├ÿ');
  157.       knownEntities[var0++] = new Entity("Ugrave", '├Ö');
  158.       knownEntities[var0++] = new Entity("Uacute", '├Ü');
  159.       knownEntities[var0++] = new Entity("Ucirc", '├¢');
  160.       knownEntities[var0++] = new Entity("Uuml", '├£');
  161.       knownEntities[var0++] = new Entity("Yacute", '├¥');
  162.       knownEntities[var0++] = new Entity("THORN", '├₧');
  163.       knownEntities[var0++] = new Entity("szlig", '├ƒ');
  164.       knownEntities[var0++] = new Entity("agrave", '├á');
  165.       knownEntities[var0++] = new Entity("aacute", '├í');
  166.       knownEntities[var0++] = new Entity("acirc", '├ó');
  167.       knownEntities[var0++] = new Entity("atilde", '├ú');
  168.       knownEntities[var0++] = new Entity("auml", '├ñ');
  169.       knownEntities[var0++] = new Entity("aring", '├Ñ');
  170.       knownEntities[var0++] = new Entity("aelig", '├ª');
  171.       knownEntities[var0++] = new Entity("ccedil", '├º');
  172.       knownEntities[var0++] = new Entity("egrave", '├¿');
  173.       knownEntities[var0++] = new Entity("eacute", '├⌐');
  174.       knownEntities[var0++] = new Entity("ecirc", '├¬');
  175.       knownEntities[var0++] = new Entity("euml", '├½');
  176.       knownEntities[var0++] = new Entity("igrave", '├¼');
  177.       knownEntities[var0++] = new Entity("iacute", '├¡');
  178.       knownEntities[var0++] = new Entity("icirc", '├«');
  179.       knownEntities[var0++] = new Entity("iuml", '├»');
  180.       knownEntities[var0++] = new Entity("eth", '├░');
  181.       knownEntities[var0++] = new Entity("ntilde", '├▒');
  182.       knownEntities[var0++] = new Entity("ograve", '├▓');
  183.       knownEntities[var0++] = new Entity("oacute", '├│');
  184.       knownEntities[var0++] = new Entity("ocirc", '├┤');
  185.       knownEntities[var0++] = new Entity("otilde", '├╡');
  186.       knownEntities[var0++] = new Entity("ouml", '├╢');
  187.       knownEntities[var0++] = new Entity("divide", '├╖');
  188.       knownEntities[var0++] = new Entity("oslash", '├╕');
  189.       knownEntities[var0++] = new Entity("ugrave", '├╣');
  190.       knownEntities[var0++] = new Entity("uacute", '├║');
  191.       knownEntities[var0++] = new Entity("ucirc", '├╗');
  192.       knownEntities[var0++] = new Entity("uuml", '├╝');
  193.       knownEntities[var0++] = new Entity("yacute", '├╜');
  194.       knownEntities[var0++] = new Entity("thorn", '├╛');
  195.       knownEntities[var0++] = new Entity("yuml", '├┐');
  196.    }
  197. }
  198.