home *** CD-ROM | disk | FTP | other *** search
/ Online Today 2000 January / Onto0100.iso / pc / JAVA / MSJAVX86.EXE / xmldso.cab / com / ms / xml / util / Name.class (.txt) < prev    next >
Encoding:
Java Class File  |  1998-11-05  |  2.1 KB  |  108 lines

  1. package com.ms.xml.util;
  2.  
  3. import java.util.Hashtable;
  4.  
  5. public class Name {
  6.    static Hashtable names = new Hashtable(500);
  7.    static StringHashtable snames = new StringHashtable(500);
  8.    Atom nameSpace;
  9.    String name;
  10.    int hash;
  11.  
  12.    public String toString() {
  13.       return this.nameSpace != null ? this.nameSpace.toString() + this.name : this.name;
  14.    }
  15.  
  16.    Name(String var1, Atom var2, int var3) {
  17.       this.name = var1;
  18.       this.nameSpace = var2;
  19.       this.hash = var3;
  20.    }
  21.  
  22.    public static Name create(String var0) {
  23.       if (var0 == null) {
  24.          return null;
  25.       } else {
  26.          Object var1 = snames.get(var0);
  27.          if (var1 == null) {
  28.             int var2 = var0.hashCode();
  29.             Name var3 = new Name(var0, (Atom)null, var2);
  30.             snames.put(var0, var3);
  31.             return var3;
  32.          } else {
  33.             return (Name)var1;
  34.          }
  35.       }
  36.    }
  37.  
  38.    public static Name create(char[] var0, int var1, int var2) {
  39.       Object var3 = snames.get(var0, var1, var2);
  40.       if (var3 == null) {
  41.          String var4 = new String(var0, var1, var2);
  42.          int var5 = var4.hashCode();
  43.          Name var6 = new Name(var4, (Atom)null, var5);
  44.          snames.put(var4, var6);
  45.          return var6;
  46.       } else {
  47.          return (Name)var3;
  48.       }
  49.    }
  50.  
  51.    public static Name create(String var0, String var1) {
  52.       if (var0 == null) {
  53.          return null;
  54.       } else {
  55.          return var1 == null ? create(var0) : create(var0, Atom.create(var1));
  56.       }
  57.    }
  58.  
  59.    public static Name create(String var0, Atom var1) {
  60.       if (var0 == null) {
  61.          return null;
  62.       } else if (var1 == null) {
  63.          return create(var0);
  64.       } else {
  65.          int var2 = var0.hashCode() + var1.hashCode();
  66.          Name var3 = new Name(var0, var1, var2);
  67.          Object var4 = names.get(var3);
  68.          if (var4 == null) {
  69.             names.put(var3, var3);
  70.             return var3;
  71.          } else {
  72.             return (Name)var4;
  73.          }
  74.       }
  75.    }
  76.  
  77.    public int hashCode() {
  78.       return this.hash;
  79.    }
  80.  
  81.    public boolean equals(Object var1) {
  82.       if (this == var1) {
  83.          return true;
  84.       } else if (var1 != null && this.getClass() == var1.getClass()) {
  85.          Name var2 = (Name)var1;
  86.          if (this.nameSpace != null) {
  87.             if (!this.nameSpace.equals(var2.nameSpace)) {
  88.                return false;
  89.             }
  90.          } else if (var2.nameSpace != null) {
  91.             return false;
  92.          }
  93.  
  94.          return this.name.equals(var2.name);
  95.       } else {
  96.          return false;
  97.       }
  98.    }
  99.  
  100.    public String getName() {
  101.       return this.name;
  102.    }
  103.  
  104.    public Atom getNameSpace() {
  105.       return this.nameSpace;
  106.    }
  107. }
  108.