Enumerationen unter Java mit Eigenschaften ausstatten

Im Gegensatz zu vielen anderen Programmiersprachen sind Enumerationen unter Java ein wenig anders gestrickt. Wird eine Enumerationen dort kompiliert entsteht als Ergebnis eine Klasse. Dieser Umstand kann für interessante Dinge genutzt werden. Während in C# der Enum:

public enum Unit {
    PASCAL,
    PSI
}

eine reine Enumeration, mit zwei Werten, darstellt, kann die Enumeration unter Java mit zusätzlicher Funktionalität ausgestattet werden:

public enum Unit {

    PASCAL("Pascal", 1),
    PSI("Pound-force per square inch", 6.895);

    Unit(String name, double conversionFactor) {
        this.name = name;
        this.conversionFactor = conversionFactor;
    }

    public String getName() {
        return name;
    }

    public void setName(String name) {
        this.name = name;
    }

    public double getConversionFactor() {
        return conversionFactor;
    }

    public void setConversionFactor(double conversionFactor) {
        this.conversionFactor = conversionFactor;
    }

    private String name;
    private double conversionFactor;
}

In diesem Fall erhält die Enumeration zwei zusätzliche Eigenschaften, einen Namen und einen Faktor zur Umrechnung in Pascal. Bei der Definition der einzelnen Werte der Enumeration werden diese zusätzlichen Eigenschaften über den Konstruktor übergeben. In der Nutzung sieht das Ganze dann wie folgt aus:

Unit unit = Unit.PSI;

System.out.println(unit.getName());
System.out.println("Conversion factor to Pascal: " + unit.getConversionFactor());

Mit dieser Herangehensweise lassen sich Enumerationen unter Java einfach mit dazugehörigen Metadaten bzw. zusätzlichen Informationen anreichern.

Psi und die Umstellung auf Gmail

Seit ein paar Wochen kann man in Deutschland seine @googlemail.com Adresse auf @gmail.com umstellen lassen. Das ist an sich auch kein Problem, denn man empfängt trotz Umstellung die entsprechenden Mails welche an die @googlemail.com Adresse gesendet werden. Leider gibt es von anderer Seite ein paar Stolpersteine, so z.B. mit der Jabberanbindung. Die Gmail Adresse kann man nämlich gleichzeitig als Jabber/XMPP Adresse benutzen. Unter Psi ist Verbindung nach der Umstellung dauerhaft unterbrochen.

Die Nutzerkontoeinstellungen

Die Abhilfe in diesem Fall ist glücklicherweise recht einfach. Dazu müssen einfach die Nutzereinstellungen geladen werden und dort “googlemail.com” auf “gmail.com” geändert werden. Danach funktioniert auch dort der Login wieder problemlos.

Weitere Informationen gibt es unter:
http://wiki.ubuntuusers.de/Psi

Psi als Portable Version

Bei Psi handelt es sich um einen reinen Jabber Client der darauf ausgelegt ist die Standards so genau wie möglich zu implementieren. Heruntergeladen werden kann der Client unter http://psi-im.org/.

Um aus ihm eine Portable Version zu machen sollte man sich das ZIP Archiv herunterladen. Nachdem man das ganze entpackt hat, erstellt man eine Datei namens Psi.bat und füllt sie mit folgendem Inhalt:

@echo off
set PSIDATADIR=data
start psi.exe

Das data Verzeichnis muss nun noch erstellt werden und schon hat man eine portable Version von Psi.

Weitere Informationen gibt es unter:
http://de.wikipedia.org/wiki/Jabber
http://de.wikipedia.org/wiki/Psi_(Instant_Messenger)