aboutsummaryrefslogtreecommitdiff
path: root/libjava
diff options
context:
space:
mode:
authorTom Tromey <tromey@cygnus.com>2000-02-08 21:30:45 +0000
committerTom Tromey <tromey@gcc.gnu.org>2000-02-08 21:30:45 +0000
commitbad196d78e98ea145d8a3283eef081d56117a585 (patch)
tree678d069022e89817b178ca440ffb6b5278e55250 /libjava
parent5fa7f88c064df849718157fb4e90fa865e35fb5b (diff)
downloadgcc-bad196d78e98ea145d8a3283eef081d56117a585.zip
gcc-bad196d78e98ea145d8a3283eef081d56117a585.tar.gz
gcc-bad196d78e98ea145d8a3283eef081d56117a585.tar.bz2
Properties.java (setProperty): New method.
* java/util/Properties.java (setProperty): New method. (store): New method. From-SVN: r31855
Diffstat (limited to 'libjava')
-rw-r--r--libjava/ChangeLog5
-rw-r--r--libjava/java/util/Properties.java169
2 files changed, 95 insertions, 79 deletions
diff --git a/libjava/ChangeLog b/libjava/ChangeLog
index 7f4d8bf..e19e4ef 100644
--- a/libjava/ChangeLog
+++ b/libjava/ChangeLog
@@ -1,3 +1,8 @@
+2000-02-08 Tom Tromey <tromey@cygnus.com>
+
+ * java/util/Properties.java (setProperty): New method.
+ (store): New method.
+
2000-02-07 Tom Tromey <tromey@cygnus.com>
* java/lang/Runtime.java (_load): Declare.
diff --git a/libjava/java/util/Properties.java b/libjava/java/util/Properties.java
index 47d7102..aa638b3 100644
--- a/libjava/java/util/Properties.java
+++ b/libjava/java/util/Properties.java
@@ -1,6 +1,6 @@
// Properties - Property list representation.
-/* Copyright (C) 1998, 1999 Red Hat, Inc.
+/* Copyright (C) 1998, 1999, 2000 Red Hat, Inc.
This file is part of libgcj.
@@ -26,7 +26,7 @@ import java.io.PushbackReader;
*/
/* Written using "Java Class Libraries", 2nd edition, ISBN 0-201-31002-3
- * Status: Complete to JDK 1.1.
+ * Status: Complete to JDK 1.2.
*/
public class Properties extends Hashtable
@@ -51,6 +51,11 @@ public class Properties extends Hashtable
return r;
}
+ public Object setProperty (String key, String value)
+ {
+ return put (key, value);
+ }
+
public void list (PrintStream out)
{
Enumeration e = propertyNames ();
@@ -282,99 +287,105 @@ public class Properties extends Hashtable
}
public synchronized void save (OutputStream out, String comment)
- {
+ {
+ try
+ {
+ store (out, comment);
+ }
+ catch (IOException _)
+ {
+ }
+ }
+
+ public synchronized void store (OutputStream out, String comment)
+ throws IOException
+ {
// Use a buffer because writing a single string through
// OutputStreamWriter is fairly expensive.
BufferedWriter output
= new BufferedWriter (new OutputStreamWriter (out));
String newline = System.getProperty("line.separator");
- try
+ if (comment != null)
{
- if (comment != null)
- {
- // We just lose if COMMENT contains a newline. This is
- // what JDK 1.1 does.
- output.write("#");
- output.write(comment);
- output.write(newline);
- }
- output.write("# ");
- output.write(new Date().toString());
+ // We just lose if COMMENT contains a newline. This is
+ // what JDK 1.1 does.
+ output.write("#");
+ output.write(comment);
output.write(newline);
+ }
+ output.write("# ");
+ output.write(new Date().toString());
+ output.write(newline);
- Enumeration keys = keys ();
- while (keys.hasMoreElements())
+ Enumeration keys = keys ();
+ while (keys.hasMoreElements())
+ {
+ String key = (String) keys.nextElement();
+ String value = (String) get (key);
+
+ // FIXME: JCL says that the key can contain many Unicode
+ // characters. But it also doesn't say we should encode
+ // it in any way.
+ // FIXME: if key contains ':', '=', or whitespace, must
+ // quote it here. Note that JDK 1.1 does not do this.
+ output.write(key);
+ output.write("=");
+
+ boolean leading = true;
+ for (int i = 0; i < value.length(); ++i)
{
- String key = (String) keys.nextElement();
- String value = (String) get (key);
-
- // FIXME: JCL says that the key can contain many Unicode
- // characters. But it also doesn't say we should encode
- // it in any way.
- // FIXME: if key contains ':', '=', or whitespace, must
- // quote it here. Note that JDK 1.1 does not do this.
- output.write(key);
- output.write("=");
-
- boolean leading = true;
- for (int i = 0; i < value.length(); ++i)
+ boolean new_lead = false;
+ char c = value.charAt(i);
+ switch (c)
{
- boolean new_lead = false;
- char c = value.charAt(i);
- switch (c)
- {
- case '\n':
- output.write("\\n");
- break;
- case '\r':
- output.write("\\r");
- break;
- case '\t':
- output.write("\\t");
- break;
- case '\\':
- output.write("\\\\");
- break;
+ case '\n':
+ output.write("\\n");
+ break;
+ case '\r':
+ output.write("\\r");
+ break;
+ case '\t':
+ output.write("\\t");
+ break;
+ case '\\':
+ output.write("\\\\");
+ break;
- case '#':
- case '!':
- case '=':
- case ':':
- output.write("\\");
- output.write(c);
- break;
+ case '#':
+ case '!':
+ case '=':
+ case ':':
+ output.write("\\");
+ output.write(c);
+ break;
- case ' ':
- new_lead = leading;
- if (leading)
- output.write("\\");
- output.write(c);
- break;
+ case ' ':
+ new_lead = leading;
+ if (leading)
+ output.write("\\");
+ output.write(c);
+ break;
- default:
- if (c < '\u0020' || c > '\u007e')
- {
- output.write("\\u");
- output.write(Character.forDigit(c >>> 12, 16));
- output.write(Character.forDigit((c >>> 8) & 0xff,
- 16));
- output.write(Character.forDigit((c >>> 4) & 0xff,
- 16));
- output.write(Character.forDigit(c & 0xff, 16));
- }
- else
- output.write(c);
+ default:
+ if (c < '\u0020' || c > '\u007e')
+ {
+ output.write("\\u");
+ output.write(Character.forDigit(c >>> 12, 16));
+ output.write(Character.forDigit((c >>> 8) & 0xff,
+ 16));
+ output.write(Character.forDigit((c >>> 4) & 0xff,
+ 16));
+ output.write(Character.forDigit(c & 0xff, 16));
}
- leading = new_lead;
+ else
+ output.write(c);
}
- output.write(newline);
+ leading = new_lead;
}
-
- output.flush();
- }
- catch (IOException ignore)
- {
+ output.write(newline);
}
- }
+
+ output.flush();
+ }
}