home *** CD-ROM | disk | FTP | other *** search
- package java.util;
-
- import java.io.IOException;
- import java.io.InputStream;
- import java.io.OutputStream;
- import java.io.PrintStream;
- import java.io.PrintWriter;
-
- public class Properties extends Hashtable {
- protected Properties defaults;
- private static char[] hexDigit = new char[]{'0', '1', '2', '3', '4', '5', '6', '7', '8', '9', 'A', 'B', 'C', 'D', 'E', 'F'};
-
- public Properties() {
- this((Properties)null);
- }
-
- public Properties(Properties var1) {
- this.defaults = var1;
- }
-
- public synchronized void load(InputStream var1) throws IOException {
- int var2 = 80;
- char[] var3 = new char[var2];
- int var4 = 0;
- var1 = Runtime.getRuntime().getLocalizedInputStream(var1);
- int var5 = var1.read();
-
- label149:
- while(true) {
- switch (var5) {
- case -1:
- return;
- case 9:
- case 10:
- case 13:
- case 32:
- var5 = var1.read();
- continue;
- case 33:
- case 35:
- while(true) {
- var5 = var1.read();
- if (var5 < 0 || var5 == 10 || var5 == 13) {
- continue label149;
- }
- }
- default:
- var4 = 0;
- }
-
- while(var5 >= 0 && var5 != 61 && var5 != 58 && var5 != 32 && var5 != 9 && var5 != 10 && var5 != 13) {
- if (var4 >= var2) {
- var2 *= 2;
- char[] var6 = new char[var2];
- System.arraycopy(var3, 0, var6, 0, var3.length);
- var3 = var6;
- }
-
- var3[var4++] = (char)var5;
- var5 = var1.read();
- }
-
- while(var5 == 32 || var5 == 9) {
- var5 = var1.read();
- }
-
- if (var5 == 61 || var5 == 58) {
- var5 = var1.read();
- }
-
- while(var5 == 32 || var5 == 9) {
- var5 = var1.read();
- }
-
- String var14 = new String(var3, 0, var4);
- var4 = 0;
-
- label111:
- while(var5 >= 0 && var5 != 10 && var5 != 13) {
- int var7 = 0;
- if (var5 == 92) {
- switch (var5 = var1.read()) {
- case 13:
- if ((var5 = var1.read()) != 10 && var5 != 32 && var5 != 9) {
- continue;
- }
- case 10:
- while(true) {
- while((var5 = var1.read()) == 32) {
- }
-
- if (var5 != 9) {
- continue label111;
- }
- }
- case 110:
- var5 = 10;
- var7 = var1.read();
- break;
- case 114:
- var5 = 13;
- var7 = var1.read();
- break;
- case 116:
- var5 = 9;
- var7 = var1.read();
- break;
- case 117:
- while((var5 = var1.read()) == 117) {
- }
-
- int var8 = 0;
-
- label100:
- for(int var9 = 0; var9 < 4; ++var9) {
- var7 = var1.read();
- switch (var5) {
- case 48:
- case 49:
- case 50:
- case 51:
- case 52:
- case 53:
- case 54:
- case 55:
- case 56:
- case 57:
- var8 = (var8 << 4) + var5 - 48;
- break;
- case 65:
- case 66:
- case 67:
- case 68:
- case 69:
- case 70:
- var8 = (var8 << 4) + 10 + var5 - 65;
- break;
- case 97:
- case 98:
- case 99:
- case 100:
- case 101:
- case 102:
- var8 = (var8 << 4) + 10 + var5 - 97;
- break;
- default:
- break label100;
- }
-
- var5 = var7;
- }
-
- var5 = var8;
- break;
- default:
- var7 = var1.read();
- }
- } else {
- var7 = var1.read();
- }
-
- if (var4 >= var2) {
- var2 *= 2;
- char[] var16 = new char[var2];
- System.arraycopy(var3, 0, var16, 0, var3.length);
- var3 = var16;
- }
-
- var3[var4++] = (char)var5;
- var5 = var7;
- }
-
- String var15 = new String(var3, 0, var4);
- ((Hashtable)this).put(var14, var15);
- }
- }
-
- public synchronized void save(OutputStream var1, String var2) {
- OutputStream var3 = Runtime.getRuntime().getLocalizedOutputStream(var1);
- PrintStream var4 = new PrintStream(var3, false);
- boolean var5 = var3 != var1;
- if (var2 != null) {
- var4.write(35);
- var4.println(var2);
- }
-
- var4.write(35);
- var4.println(new Date());
- Enumeration var6 = ((Hashtable)this).keys();
-
- while(var6.hasMoreElements()) {
- String var7 = (String)var6.nextElement();
- var4.print(var7);
- var4.write(61);
- String var8 = (String)((Hashtable)this).get(var7);
- int var9 = var8.length();
- boolean var10 = false;
-
- for(int var11 = 0; var11 < var9; ++var11) {
- char var12 = var8.charAt(var11);
- switch (var12) {
- case '\t':
- var4.write(92);
- var4.write(116);
- break;
- case '\n':
- var4.write(92);
- var4.write(110);
- break;
- case '\r':
- var4.write(92);
- var4.write(114);
- break;
- case '\\':
- var4.write(92);
- var4.write(92);
- break;
- default:
- if (var12 < ' ' || var12 >= 127 || var10 && var12 == ' ') {
- if (var12 > 255 && var5) {
- var4.write(var12);
- } else {
- var4.write(92);
- var4.write(117);
- var4.write(toHex(var12 >> 12 & 15));
- var4.write(toHex(var12 >> 8 & 15));
- var4.write(toHex(var12 >> 4 & 15));
- var4.write(toHex(var12 & 15));
- }
- } else {
- var4.write(var12);
- }
- }
-
- var10 = false;
- }
-
- var4.write(10);
- }
-
- }
-
- public String getProperty(String var1) {
- String var2 = (String)super.get(var1);
- return var2 == null && this.defaults != null ? this.defaults.getProperty(var1) : var2;
- }
-
- public String getProperty(String var1, String var2) {
- String var3 = this.getProperty(var1);
- return var3 == null ? var2 : var3;
- }
-
- public Enumeration propertyNames() {
- Hashtable var1 = new Hashtable();
- this.enumerate(var1);
- return var1.keys();
- }
-
- public void list(PrintStream var1) {
- var1.println("-- listing properties --");
- Hashtable var2 = new Hashtable();
- this.enumerate(var2);
-
- String var4;
- String var5;
- for(Enumeration var3 = var2.keys(); var3.hasMoreElements(); var1.println(var4 + "=" + var5)) {
- var4 = (String)var3.nextElement();
- var5 = (String)var2.get(var4);
- if (var5.length() > 40) {
- var5 = var5.substring(0, 37) + "...";
- }
- }
-
- }
-
- public void list(PrintWriter var1) {
- var1.println("-- listing properties --");
- Hashtable var2 = new Hashtable();
- this.enumerate(var2);
-
- String var4;
- String var5;
- for(Enumeration var3 = var2.keys(); var3.hasMoreElements(); var1.println(var4 + "=" + var5)) {
- var4 = (String)var3.nextElement();
- var5 = (String)var2.get(var4);
- if (var5.length() > 40) {
- var5 = var5.substring(0, 37) + "...";
- }
- }
-
- }
-
- private synchronized void enumerate(Hashtable var1) {
- if (this.defaults != null) {
- this.defaults.enumerate(var1);
- }
-
- Enumeration var2 = ((Hashtable)this).keys();
-
- while(var2.hasMoreElements()) {
- String var3 = (String)var2.nextElement();
- var1.put(var3, ((Hashtable)this).get(var3));
- }
-
- }
-
- private static char toHex(int var0) {
- return hexDigit[var0 & 15];
- }
- }
-