Komplexere Datentypen in properties

xnicnacx

Mitglied
Hallo liebes Forum
ich habe folgendes Problem:
ich soll eine beliebige anzahl Hashmap-artiger Zusammenhänge zwischen Strings in properties ablegen.Key ist jeweils 1 String, value können mehrere sein. Am besten zeigt sich das an einem Beispiel, hier meine bisherige (unelegante) Lösung:

relations.count=2

relation.1.key=xy
relation.1.val=asd;xcv;fgh;tzu

relation.2.key=as
relation.2.val=qwe;dfg;vbn

etc.

Problem hierbei ist, dass es umständlich zu konfigurieren ist, weil ich ohne die Angabe in "relations.count" nicht weiß wie weit ich iterieren muss.
Hoffe ich habe das Problem halbwegs verständlich dargestellt
Gruß
NicNac
 
Muss es eine Properties Datei sein? Finde ich recht unschön für so etwas. In XML würde das ein wenig einfacher gehen.
 
Muss leider in properties sein. Das Ganze ist im Rahmen einer Änderung an einer bestehenden Applikation, die bereits properties benutzt...
Irgendwelche Ideen?
NicNac
 
Bau einen speziellen Key zusammen:
de.tutorials.java.eineMap.key1=value1;value2;value3
de.tutorials.java.eineMap.key2=value1;value2;value3

etc.

Dann lädst du die Properties, iterierst über die Keys, schaust welche mit de.tutorials.java.eineMap anfangen, schneidest das weg, dann erhälst du den Key für die Map und im Value stehen halt die Werte.
 
Vielen Dank für eure Ideen, damit finde ich mich zurecht.
Finde es allerdings immer noch komisch, dass es keine Lösung gibt die weniger "handgestrickt" daherkommt, also ohne iterieren über alle Keys, mit anschliessendem Splitten von Strings etc...
 
Naja mit CommonsConfiguration mußt du das nicht selber machen. Da kannst du dir zu einem Key so ein Subset geben lassen und dann halt nur noch über die Dinger da drin iterieren und auf jedem ein getList aufrufen, dann bekommst du direkt die Werte als Liste.

Aber wenn man nicht drauf angewiesen ist macht man sowas halt nicht in Properties, daher ist das auch nicht unbedingt so vorgefertigt nutzbar ;)
 
Stimmt schon dass properties nicht die zeitgemäßeste Lösung sind, aber über Firmenpolitik brauche ich euch vermutlich nichts zu erzählen... :rolleyes:
 
Zurück