home *** CD-ROM | disk | FTP | other *** search
- package allaire.util;
-
- import java.io.BufferedInputStream;
- import java.io.DataInputStream;
- import java.io.IOException;
- import java.io.InputStream;
- import java.io.PrintStream;
- import java.net.URL;
- import netscape.util.Enumeration;
- import netscape.util.Hashtable;
- import netscape.util.Vector;
-
- public class ProfileFile {
- private Hashtable m_sections = new Hashtable();
- private Vector m_originalSections = new Vector();
- private Hashtable m_originalKeys = new Hashtable();
-
- public Vector getSectionNames() {
- return this.m_originalSections;
- }
-
- public void printContents(PrintStream var1) {
- this.getSectionNames();
- Enumeration var2 = this.m_originalSections.elements();
-
- while(var2.hasMoreElements()) {
- String var3 = (String)var2.nextElement();
- var1.println("");
- var1.println("[" + var3 + "]");
- Vector var4 = this.getKeysForSection(var3);
- Enumeration var5 = var4.elements();
-
- while(var5.hasMoreElements()) {
- String var6 = (String)var5.nextElement();
- String var7 = this.getValue(var3, var6);
- var1.println(var6 + "=" + var7);
- }
- }
-
- }
-
- private InputStream getInputStreamFromURL(URL var1) throws Exception {
- return var1.openStream();
- }
-
- public String getValue(String var1, String var2) {
- String var3 = var1.toUpperCase();
- String var4 = var2.toUpperCase();
- if (this.m_sections.containsKey(var3)) {
- Hashtable var5 = (Hashtable)this.m_sections.get(var3);
- return var5.containsKey(var4) ? (String)var5.get(var4) : null;
- } else {
- return null;
- }
- }
-
- public String getValue(String var1, String var2, String var3) {
- String var4 = this.getValue(var1, var2);
- if (var4 == null) {
- var4 = var3;
- }
-
- return var4;
- }
-
- private void parseProfileInfoFromStream(InputStream var1) throws Exception {
- try {
- Object var4 = null;
- Object var5 = null;
- Object var6 = null;
- Object var7 = null;
- Hashtable var8 = null;
- Vector var9 = null;
- DataInputStream var10 = new DataInputStream(new BufferedInputStream(var1));
-
- while((var13 = var10.readLine()) != null) {
- String var14 = var13.trim();
- int var3 = var14.length();
- if (var3 != 0 && var14.charAt(0) != ';') {
- if (var14.charAt(0) == '[' && var14.charAt(var3 - 1) == ']') {
- var8 = new Hashtable();
- var9 = new Vector();
- String var15 = var14.substring(1, var3 - 1);
- this.m_originalSections.addElement(var15);
- this.m_originalKeys.put(var15.toUpperCase(), var9);
- this.m_sections.put(var15.toUpperCase(), var8);
- } else {
- int var2;
- if ((var2 = var14.indexOf(61)) != -1) {
- String var16 = var14.substring(0, var2);
- String var17 = var14.substring(var2 + 1, var3);
- var9.addElement(var16);
- var8.put(var16.toUpperCase(), var17);
- }
- }
- }
- }
-
- } catch (IOException var12) {
- throw new Exception("I/O error occurred while attempting parse profile file.\n\n" + "Error: " + ((Throwable)var12).getMessage());
- }
- }
-
- public ProfileFile(URL var1) throws Exception {
- InputStream var2 = this.getInputStreamFromURL(var1);
- this.parseProfileInfoFromStream(var2);
- }
-
- public Vector getKeysForSection(String var1) {
- String var2 = var1.toUpperCase();
- return this.m_originalKeys.containsKey(var2) ? (Vector)this.m_originalKeys.get(var2) : new Vector();
- }
-
- public Hashtable getSection(String var1) {
- String var2 = var1.toUpperCase();
- return this.m_sections.containsKey(var2) ? (Hashtable)this.m_sections.get(var2) : new Hashtable();
- }
- }
-