Frage

Ich habe in einigen Gelegenheiten einige Klassen benötigt darzustellen und Bedingungen zu manipulieren (in der Regel in einem UI so dass der Benutzer durch die Kombination verschiedener Konditionsarten eine Abfrage erstellt und dann kann der Code-Transformation, die auf das zugrunde liegende System abhängig abgefragt werden, zB lucene und db). Ich suchte überall nach einem wieder verwendbaren Satz von Klassen, ich bin sicher, dass dies in vielen existierenden Orten verwendet werden muss (all Ausdruck Sprachen für den Anfang), konnte aber nichts leicht verwendbar finden. Ich landete Codierung beide Male selbst, aber fühlte sich schlecht über etwas nicht wiederverwendet Ich bin sicher, vorhanden ist.

Typische Anforderungen sind:  - mehrere Operatoren: und oder usw.  - variable Anzahl von Operanden  - Bedingungen kombiniert Ausdrücke zu bauen  - Serialisierung von Ausdrücken  - Analyse / Formatierung von Ausdrücken von / bis Strings

hat jemand so etwas gefunden?

War es hilfreich?

Lösung

Hier finden Sie aktuelle Apache Commons Functor . Z.B. UnaryPredicate , UnaryAnd , UnaryOr usw. Der eingebaute -in-Implementierungen sind Serializable, aber ich weiß nicht, von Strings parsen. Trotzdem denke ich, es ist ein sehr guter Anfang zu dem, was Sie wollen. Werfen Sie auch einen Blick auf dieser IBM-Tutorial auf der basiert Bibliothek.

Andere Tipps

Es klingt wie Sie vielleicht suchen Funktoren (auch bekannt als Funktionsobjekte). Wenn ja, so ist dies Frage relevant wäre, wRT. Auswahl:. Commons Funktors (bereits erwähnt) ist eine Alternative, aber es gibt auch andere

Alle Funktors Libs kommen mit dem Rahmen (das ist ganz einfach; einstellige binäre Prädikate, Mapping-Funktionalität für diejenigen, die Kombination von Chaining). Und Basissatz von Funktionen am häufigsten benötigten

Das klingt wie Sie für so etwas wie das suchen Hibernate Criteria API . Der Nachteil ist, dass Sie mit einer Datenbank verbunden sind oder noch schlimmer eine spezifische Persistenz-Framework-Implementierung. Auch ist es nicht alle von Ihnen Anforderungen abdecken, so dass ich glaube nicht, das ist eine gute Wahl dann ...

Sie möchten überprüfen, ANTLR .

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top