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 / sun / awt / DebugSettings.class (.txt) < prev    next >
Encoding:
Java Class File  |  1979-12-31  |  3.8 KB  |  144 lines

  1. package sun.awt;
  2.  
  3. import java.io.ByteArrayOutputStream;
  4. import java.io.File;
  5. import java.io.FileInputStream;
  6. import java.io.FileNotFoundException;
  7. import java.io.IOException;
  8. import java.io.InputStream;
  9. import java.io.PrintStream;
  10. import java.io.StringBufferInputStream;
  11. import java.util.Enumeration;
  12. import java.util.Properties;
  13. import java.util.Vector;
  14.  
  15. final class DebugSettings {
  16.    static final String PREFIX = "awtdebug";
  17.    static final String PROP_FILE = "properties";
  18.    private static final String[] DEFAULT_PROPS = new String[]{"awtdebug.assert=true", "awtdebug.trace=false", "awtdebug.on=true", "awtdebug.ctrace=false"};
  19.    private static DebugSettings instance = null;
  20.    private Properties props = new Properties();
  21.  
  22.    static DebugSettings getInstance() {
  23.       if (instance == null) {
  24.          instance = new DebugSettings();
  25.       }
  26.  
  27.       return instance;
  28.    }
  29.  
  30.    private DebugSettings() {
  31.       (new 1(this)).run();
  32.    }
  33.  
  34.    private synchronized void loadProperties() {
  35.       this.loadDefaultProperties();
  36.       this.loadFileProperties();
  37.       this.loadSystemProperties();
  38.       this.println(this);
  39.    }
  40.  
  41.    public String toString() {
  42.       Enumeration var1 = this.props.propertyNames();
  43.       ByteArrayOutputStream var2 = new ByteArrayOutputStream();
  44.       PrintStream var3 = new PrintStream(var2);
  45.       var3.println("------------------");
  46.       var3.println("AWT Debug Settings");
  47.       var3.println("------------------");
  48.  
  49.       while(var1.hasMoreElements()) {
  50.          String var4 = (String)var1.nextElement();
  51.          String var5 = this.props.getProperty(var4, "");
  52.          var3.println(var4 + "=" + var5);
  53.       }
  54.  
  55.       var3.println("------------------");
  56.       return new String(var2.toByteArray());
  57.    }
  58.  
  59.    private void loadDefaultProperties() {
  60.       try {
  61.          for(int var1 = 0; var1 < DEFAULT_PROPS.length; ++var1) {
  62.             StringBufferInputStream var2 = new StringBufferInputStream(DEFAULT_PROPS[var1]);
  63.             this.props.load(var2);
  64.             ((InputStream)var2).close();
  65.          }
  66.       } catch (IOException var3) {
  67.       }
  68.  
  69.    }
  70.  
  71.    private void loadFileProperties() {
  72.       String var1 = System.getProperty("awtdebug.properties", "");
  73.       if (var1.equals("")) {
  74.          var1 = System.getProperty("user.home", "") + File.separator + "awtdebug" + "." + "properties";
  75.       }
  76.  
  77.       File var3 = new File(var1);
  78.  
  79.       try {
  80.          this.println("Reading debug settings from '" + var3.getCanonicalPath() + "'...");
  81.          FileInputStream var4 = new FileInputStream(var3);
  82.          this.props.load(var4);
  83.          var4.close();
  84.       } catch (FileNotFoundException var6) {
  85.          this.println("Did not find settings file.");
  86.       } catch (IOException var7) {
  87.          this.println("Problem reading settings, IOException: " + ((Throwable)var7).getMessage());
  88.       }
  89.  
  90.    }
  91.  
  92.    private void loadSystemProperties() {
  93.       Properties var1 = System.getProperties();
  94.       Enumeration var2 = var1.propertyNames();
  95.  
  96.       while(var2.hasMoreElements()) {
  97.          String var3 = (String)var2.nextElement();
  98.          String var4 = var1.getProperty(var3, "");
  99.          if (var3.startsWith("awtdebug")) {
  100.             this.props.setProperty(var3, var4);
  101.          }
  102.       }
  103.  
  104.    }
  105.  
  106.    public synchronized boolean getBoolean(String var1, boolean var2) {
  107.       String var3 = this.getString(var1, String.valueOf(var2));
  108.       return var3.equalsIgnoreCase("true");
  109.    }
  110.  
  111.    public synchronized int getInt(String var1, int var2) {
  112.       String var3 = this.getString(var1, String.valueOf(var2));
  113.       return Integer.parseInt(var3);
  114.    }
  115.  
  116.    public synchronized String getString(String var1, String var2) {
  117.       String var3 = "awtdebug." + var1;
  118.       String var4 = this.props.getProperty(var3, var2);
  119.       return var4;
  120.    }
  121.  
  122.    public synchronized Enumeration getPropertyNames() {
  123.       Vector var1 = new Vector();
  124.       Enumeration var2 = this.props.propertyNames();
  125.  
  126.       while(var2.hasMoreElements()) {
  127.          String var3 = (String)var2.nextElement();
  128.          var3 = var3.substring("awtdebug".length() + 1);
  129.          var1.addElement(var3);
  130.       }
  131.  
  132.       return var1.elements();
  133.    }
  134.  
  135.    private void println(Object var1) {
  136.       DebugHelperImpl.printlnImpl(var1.toString());
  137.    }
  138.  
  139.    // $FF: synthetic method
  140.    static void access$000(DebugSettings var0) {
  141.       var0.loadProperties();
  142.    }
  143. }
  144.