FachwertFactory

Ueber die FachwertFactory kann ein beliebiger Fachwert generiert oder geholt werden. Normalerweise sollte man da den entsprechenden Konstruktor des Fachwerts bemuehen, aber es gibt auch Situation, wo man den genauen Typ des Fachwertes (noch) nicht weiss. Fuer diese Situation ist diese Factory gedacht.

Zum Generieren eines Fachwerts wird der aktuelle Classpath abgescannt, um die passende Implementierung zu finden. Um die Implementierung erweitern aoder austauschen zu koennen, hat diese Factory keine statischen Methoden, sondern ist als normale Klasse implementiert.

Da in dieser Klasse Exceptions auftreten koennen, die nicht weitergegeben werden, wird dazu der Standard-Logger aus dem JDK verwendet. Damit kann man sich zum Debuggen diese Exceptions im Log-Level "FINE" ausgeben lassen.

Author

oboehm

Since

0.5 (13.01.2018)

Types

Link copied to clipboard
object Companion

Functions

Link copied to clipboard
fun getFachwert(clazz: Class<out KFachwert>, vararg args: Serializable): KFachwert

Liefert einen Fachwert zur angegebenen Klasse.

fun getFachwert(name: String, vararg args: Serializable): KFachwert

Liefert einen Fachwert zum angegebenen (Klassen-)Namen. Als Name wird der Klassennamen erwartet. Wird keine Klasse gefunden, wird die Klasse genommen, die am ehesten passt. So wird bei "IBAN1" als Name eine Instanz der IBAN-Klasse zurueckgeliefert.

Link copied to clipboard

Liefert die registrierten Klassen zurueck.

Link copied to clipboard
fun register(fachwertClass: Class<out KFachwert>)

Hierueber sollten sich die einzelnen Fachwert-Klassen registrieren. Ansonsten werden sie bei FachwertFactory.getFachwert nicht gefunden.

fun register(classname: String)
Link copied to clipboard
fun validate(clazz: Class<out KFachwert>, vararg args: Serializable)

Validiert die uebergebenen Argumente mit Hilfe der angegebenen Klasse. Viele Fachwert-Klassen haben eine (statische) validate-Methode, die dafuer verwendet wird. Fehlt diese validate-Methode, wird der Konstruktor fuer die Validierung herangezogen. Schlaegt die Validierung fehl, wird eine ValidationException geworfen.

fun validate(name: String, vararg args: Serializable)

Validiert die uebergebenen Argumente mit Hilfe der angegebenen Klasse, die als (Klassen-)Namen angegeben wird. Viele Fachwert-Klassen haben eine (statische) validate-Methode, die dafuer verwendet wird. Fehlt diese validate-Methode, wird der Konstruktor fuer die Validierung herangezogen. Schlaegt die Validierung fehl, wird eine Schlaegt die Validierung fehl, wird eine ValidationException geworfen.