0

Util-Klassen in OFBiz: kleine Helferlein

Geschrieben am 26.08.2011 in Technik von Sebastian Leitner

Dieses Kapitel wird besonders für OFBiz Neulinge interessant: Die Util-Klassen. In diesen Klassen liegen Methoden, die aufgerufen werden können, um sich eigene Arbeit zu sparen und Redundanz zu vermeiden. Im Folgenden werde ich auf die wichtigsten Klassen und deren wichtigste Methoden eingehen und deren Funktion beschreiben.

Datenbankoperationen

EntityUtil:

In der EntityUtil liegen Helfermethoden, die eingesetzt werden können, wenn Sie mit Entities arbeiten. Häufig verwendet wird z.B. getFirst. Dort kann eine Liste übergeben werden und der erste Eintrag wird zurückgegeben.

Die Methode filterByAnd erstellt eine neue Liste, welche alle Einträge aus der übergebenen Liste enthält, die ebenfalls in einer anderen Map vorhanden sind.

Ein weiteres wichtiges Werkzeug ist die Methode orderBy, womit eine Collection nach einer übergebenen Liste angeordnet wird.

Vielfach angewendet wird auch die Methode getRelated. Dort wird eine Liste durchlaufen und nach verwandten Entities durchsucht.

SequenceUtil:

Die SequenceUtil beinhaltet Methoden, mit denen neue Sequenzen aus Sequence Banks geholt werden können.

Die wichtigste Methode ist hier getNextSeqId. Damit werden die nächsten 10 Sequenz-IDs einer Sequenz aufgerufen. So können Sie sich eine ID zurück geben lassen, die Sie in ein GenericValue schreiben, bevor Sie es persistieren. Die Bank der IDs ist dann reserviert und wird während Ihrer Bearbeitung nicht anderweitig vergeben.

Dateisystemoperationen

FileUtil:

In der Klasse FileUtil liegen Methoden, die Ihnen die Arbeit mit lokalen Dateien enorm vereinfachen.

Die Methode getFile nimmt beispielsweise eine Pfad entgegen und liefert Ihnen das dazugehörige File-Object, mit dem Sie wie gewohnt weiterarbeiten können. Etwaige Prüfungen, ob die Datei existiert und lese-/schreibbar ist, werden Ihnen von dieser Methode abgenommen.

Die Methode writeString schreibt einen String in eine Datei, die mit path und name angegeben wurde.

Mithilfe der Methode findXmlFiles lassen sich XML-Dateien finden, oder allgemeiner über die Methode findFiles für beliebige Dateien.

XmlUtil:

Die UtilXml Klasse hat viele Methoden für den Umgang mit XML-Dateien, die alle gut dokumentiert sind. Zu den Wichtigsten zählen die Variationen von

  • writeXmlDocument mit der ein XML-Dokument erstellt wird,
  • readXmlDocument mit der ein XML Dokument in einen Buffer gelesen wird,
  • addChildElement mit der ein Child-Element erstellt wird und an die Liste der Child-Element- Nodes angehängt wird,
  • childElementList die alle children der Elementliste zurückgibt oder
  • firstChildElement die das erste Child-Element zurückgibt.

Operationen auf Daten und Variablen

StringUtil:

Diese Klasse beinhaltet Methoden, die auf verschiedenste Art Strings verarbeiten. Eine wichtige Methode ist replaceString. Im angegebenen Text wird ein Teil gesucht und durch einen neuen Teil ersetzt. Außerdem sind noch die Methoden join (baut eine Liste zu einem einzelnen String um), split (das Ganze wieder rückgängig), strToMap (Map aus einem String), MapToStr (das Ganze wieder andersrum) oder removeSpaces (löscht alle Leerzeichen) erwähnenswert und benötigen kaum weitere Erklärung, da sie gut dokumentiert worden sind.

UtilDateTime:

In dieser Klasse liegen viele Funktionen, um Daten oder Uhrzeiten zu bekommen. Ein vielgenutztes Beispiel wäre getTimestamp, was ja praktisch selbsterklärend ist. Ebenfalls gibt es dort Methoden wie getMonthStart, die einen Timestamp (stamp) bekommen und dann den jeweils ersten Tag des jeweiligen Monats zurückgeben. Die Methode toCalendar baut einen Timestamp in einen Kalender um und gibt diesen zurück.

Praktisch alle Methoden sind dort gut dokumentiert, so dass Sie sich dort leicht zurechtfinden können.

UtilFormatOut:

Hier liegen viele Methoden, die die Formatierung ändern oder den Datentyp einer übergebenen Variable ändern. Die Methode formatCurrency ist zum Beispiel sehr nützlich um einen Preis (price kann als double oder bigdecimal angegeben werden) in einen korrekt formatierten String umzuwandeln. Die Methode formatPaddedNumber setzt solange Nullen vor die Variable number, bis die Länge numericPadding erreicht hat.

Ansonsten sind die verschiedenen Varianten von checkNull noch einen Blick wert, die jeweils prüfen, ob Strings null sind und dann einen leeren String zurückgeben.

In der Art funktioniert auch checkEmpty, was aber ebenfalls gut dokumentiert ist.

Die letzte wichtige Methode in der UtilFormatOut ist padString. Hier wird kann ein String übergeben werden, der entweder auf setLen zugeschnitten wird oder um die Differenz zwischen der Stringlänge und setLen erweitert wird. Wenn padEnd true ist, wird padChar hinten angefügt, ansonsten werden die padChars vorher hinzugefügt und dann str angehängt.

UtilMisc:

In der UtilMisc liegen verschiedene Methoden, die bei allen möglichen Fällen angwendet werden können. Diese Klasse sollte einmal komplett überflogen werden, um nachzuschlagen, ob man sich bestimmte Arbeit eventuell sparen könnte.

Die Methode makeListWritable wandelt die Collection col in die Liste result um. Am Ende wird result zurückgegeben.

In der Methode makeMapWritable wird eine Map erstellt und mit den Werten aus der vorher übergebenen Map gefüllt.

Die Methode toMap erstellt eine neue Map und kann beliebig viele Parameter entgennehmen.

Mit der Methode toSet können bis zu 8 Objekte zu „theSet“ hinzugefügt werden.

toList macht das Selbe, nur für eine Liste.

UtilValidate:

In der UtilValidate liegen vor allem viele Methoden, mit denen die verschiedensten Dinge validiert werden können. Zum Beispiel gibt es hier:

  • isEmpty die prüft, ob das übergebene Objekt leer ist,
  • isNotEmpty die prüft, ob das übergebene Objekt einen Wert hat oder
  • z.B. isString die überprüft, ob das Objekt ein String ist.

Wichtig: Das Objekt bei isEmpty oder isNotEmpty darf kein Array sein, da die Methoden mit diesem Datentyp nicht funktionieren!

Die Methoden sind sprechend und mit Kommentaren versehen, so dass sich ein Blick in die UtilValidate immer lohnt.

Dieser Artikel gefällt Ihnen? Sagen Sie's Ihren Freunden:

Kommentare sind deaktiviert.