« advanced XML-Parser | Main | GnuPG Java Wrapper API »

SortedProperties

Angenommen, man braucht für ein Java Property Set ein geordnete Ausgabe - zum Beispiel um einem Übersetzer eine sortierte Liste mit zu übersetzenden String zu liefern.

Man erstellt eine Klasse (zum Beispiel SortedProperties) und lässt diese von Properties erben.
Bedingt durch die Kapselung ist es notwendig, dass die Methoden

private static char toHex(int nibble) ;
private String saveConvert(String theString, boolean escapeSpace);
private static void writeln(BufferedWriter bw, String s);

und Attribute

private static final char[] hexDigit;

in die neue Klasse kopiert werden müssen.

Wir überschreiben die Methode
public synchronized void store(OutputStream out, String comments)

Diese Methode ist für das eigentliche Speichern in eine Datei verantwortlich.

Der neue Inhalt entspricht bist auf eine zusätzliche Sortierung dem alten:


public synchronized void store(OutputStream out, String comments)
throws IOException {

TreeMap propTree = new TreeMap();

for (Enumeration e = keys(); e.hasMoreElements();) {
String key = (String) e.nextElement();
String value = (String) get(key);
key = saveConvert(key, true);
value = saveConvert(value, false);
propTree.put(key, value);
}
BufferedWriter awriter;
awriter = new BufferedWriter(new OutputStreamWriter(out, "8859_1"));
if (comments != null)
writeln(awriter, "#" + comments);
writeln(awriter, "#" + new Date().toString());
Set keys = propTree.keySet();
for (Iterator iterator = keys.iterator(); iterator.hasNext();) {
String key = (String) iterator.next();
writeln(awriter, key + "=" + propTree.get(key));
}
awriter.flush();
}

Dies ist tatsächlich ein sehr einfacher Weg, um vorhandene Java-Methoden für eigene Zwecke anzupassen.

Blogged with the Flock Browser

TrackBack

TrackBack URL for this entry:
http://www.innoq.com/movabletype/mt-tb.cgi/3083

Post a comment

(If you haven't left a comment here before, you may need to be approved by the site owner before your comment will appear. Until then, it won't appear on the entry. Thanks for waiting.)

About

This page contains a single entry from the blog posted on March 28, 2009 6:32 PM.

The previous post in this blog was advanced XML-Parser.

The next post in this blog is GnuPG Java Wrapper API.

Many more can be found on the main index page or by looking through the archives.

Powered by
Movable Type 3.31