Object-Graph Navigation Language

aus Wikipedia, der freien Enzyklopädie
Wechseln zu: Navigation, Suche

Object-Graph Navigation Language, abgekürzt als OGNL ist eine expression language zum Lesen und Schreiben von Eigenschaften in Java-Objekten. Dazu werden zum Setzen und zum Lesen des Wertes einer Eigenschaft die gleichen Ausdrücke verwendet. Zum Einsatz kommen kann OGNL zum Beispiel beim Binden einer Darstellungsschicht (GUI) an ein Objekt in einem Datenmodell. Dabei ermöglicht OGNL außerdem „projection“, „selection“ und Pseudo-Lambda-Ausdrücke.

Bei einer „projection“ wird für alle Elemente einer Collection dieselbe Methode aufgerufen bzw. auf dieselbe Eigenschaft zugegriffen und das Ergebnis dieser Operation(en) wiederum in einer Collection gespeichert.

Bei einer „selection“ werden aus einer Menge von Elementen einer Collection bestimmte Elemente, die die gestellte Bedingung erfüllen, als Ergebnis in einer neuen Collection gespeichert.

OGNL besitzt eine vereinfachte Lambda-Ausdruckssyntax, welche das Schreiben simpler Funktionen ermöglicht.

Beispiele[Bearbeiten]

ein OGNL-Ausdruck[Bearbeiten]

code.toLowerCase().getBytes()[0].intValue.toString()

  • holt die Eigenschaft "code",
  • ruft für den resultierenden String die Methode toLowerCase() auf,
  • ruft für den daraus resultierenden String die Methode getBytes() auf,
  • extrahiert aus dem resultierenden byte Array den ersten Wert, kapselt dieses in einem Byte-Objekt
  • für welches wiederum die Eigenschaft intValue (durch Aufruf der Methode getIntValue()) ermittelt wird,
  • das daraus resultierende int wird wiederum in einem Integer-Objekt gekapselt, welches durch Aufrufen der Methode toString() in einen String verwandelt wird.

projection[Bearbeiten]

listeners.{delegate}

gibt eine Liste aller Delegates der Collection listeners zurück.

selection[Bearbeiten]

listeners.{? #this instanceof KeyListener}

gibt eine Collection all der listener zurück, welche KeyListener sind.

Weblinks[Bearbeiten]