home *** CD-ROM | disk | FTP | other *** search
/ Computer Shopper 139 / dpcs0999.iso / Web / CFserver / data1.cab / Java / allaire / util / ProfileFile.class (.txt) < prev    next >
Encoding:
Java Class File  |  1999-04-12  |  2.9 KB  |  119 lines

  1. package allaire.util;
  2.  
  3. import java.io.BufferedInputStream;
  4. import java.io.DataInputStream;
  5. import java.io.IOException;
  6. import java.io.InputStream;
  7. import java.io.PrintStream;
  8. import java.net.URL;
  9. import netscape.util.Enumeration;
  10. import netscape.util.Hashtable;
  11. import netscape.util.Vector;
  12.  
  13. public class ProfileFile {
  14.    private Hashtable m_sections = new Hashtable();
  15.    private Vector m_originalSections = new Vector();
  16.    private Hashtable m_originalKeys = new Hashtable();
  17.  
  18.    public Vector getSectionNames() {
  19.       return this.m_originalSections;
  20.    }
  21.  
  22.    public void printContents(PrintStream var1) {
  23.       this.getSectionNames();
  24.       Enumeration var2 = this.m_originalSections.elements();
  25.  
  26.       while(var2.hasMoreElements()) {
  27.          String var3 = (String)var2.nextElement();
  28.          var1.println("");
  29.          var1.println("[" + var3 + "]");
  30.          Vector var4 = this.getKeysForSection(var3);
  31.          Enumeration var5 = var4.elements();
  32.  
  33.          while(var5.hasMoreElements()) {
  34.             String var6 = (String)var5.nextElement();
  35.             String var7 = this.getValue(var3, var6);
  36.             var1.println(var6 + "=" + var7);
  37.          }
  38.       }
  39.  
  40.    }
  41.  
  42.    private InputStream getInputStreamFromURL(URL var1) throws Exception {
  43.       return var1.openStream();
  44.    }
  45.  
  46.    public String getValue(String var1, String var2) {
  47.       String var3 = var1.toUpperCase();
  48.       String var4 = var2.toUpperCase();
  49.       if (this.m_sections.containsKey(var3)) {
  50.          Hashtable var5 = (Hashtable)this.m_sections.get(var3);
  51.          return var5.containsKey(var4) ? (String)var5.get(var4) : null;
  52.       } else {
  53.          return null;
  54.       }
  55.    }
  56.  
  57.    public String getValue(String var1, String var2, String var3) {
  58.       String var4 = this.getValue(var1, var2);
  59.       if (var4 == null) {
  60.          var4 = var3;
  61.       }
  62.  
  63.       return var4;
  64.    }
  65.  
  66.    private void parseProfileInfoFromStream(InputStream var1) throws Exception {
  67.       try {
  68.          Object var4 = null;
  69.          Object var5 = null;
  70.          Object var6 = null;
  71.          Object var7 = null;
  72.          Hashtable var8 = null;
  73.          Vector var9 = null;
  74.          DataInputStream var10 = new DataInputStream(new BufferedInputStream(var1));
  75.  
  76.          while((var13 = var10.readLine()) != null) {
  77.             String var14 = var13.trim();
  78.             int var3 = var14.length();
  79.             if (var3 != 0 && var14.charAt(0) != ';') {
  80.                if (var14.charAt(0) == '[' && var14.charAt(var3 - 1) == ']') {
  81.                   var8 = new Hashtable();
  82.                   var9 = new Vector();
  83.                   String var15 = var14.substring(1, var3 - 1);
  84.                   this.m_originalSections.addElement(var15);
  85.                   this.m_originalKeys.put(var15.toUpperCase(), var9);
  86.                   this.m_sections.put(var15.toUpperCase(), var8);
  87.                } else {
  88.                   int var2;
  89.                   if ((var2 = var14.indexOf(61)) != -1) {
  90.                      String var16 = var14.substring(0, var2);
  91.                      String var17 = var14.substring(var2 + 1, var3);
  92.                      var9.addElement(var16);
  93.                      var8.put(var16.toUpperCase(), var17);
  94.                   }
  95.                }
  96.             }
  97.          }
  98.  
  99.       } catch (IOException var12) {
  100.          throw new Exception("I/O error occurred while attempting parse profile file.\n\n" + "Error: " + ((Throwable)var12).getMessage());
  101.       }
  102.    }
  103.  
  104.    public ProfileFile(URL var1) throws Exception {
  105.       InputStream var2 = this.getInputStreamFromURL(var1);
  106.       this.parseProfileInfoFromStream(var2);
  107.    }
  108.  
  109.    public Vector getKeysForSection(String var1) {
  110.       String var2 = var1.toUpperCase();
  111.       return this.m_originalKeys.containsKey(var2) ? (Vector)this.m_originalKeys.get(var2) : new Vector();
  112.    }
  113.  
  114.    public Hashtable getSection(String var1) {
  115.       String var2 = var1.toUpperCase();
  116.       return this.m_sections.containsKey(var2) ? (Hashtable)this.m_sections.get(var2) : new Hashtable();
  117.    }
  118. }
  119.