Ausgabesteuerung

Wann und wie collectors die gesammelten Werte weiterschicken, kann mit Hilfe von drei Parametern definiert werden: flushWith, reset und sameEntity.

flushWith definiert den Zeitpunkt, zu welchem der collector die Werte abschickt (flush). Dies kann entweder nach der Verarbeitung eines bestimmten Feldes (flushWith="feldname", Wildcards erlaubt) oder des gesamten Datensatzes sein (flushWith="record"). Im Fall von combine, entity, equalsFilter sowie den Quantoren all, any und none werden die gesammelten Werte standardmässig weitergeleitet, sobald für jedes Feld ein Wert vorhanden ist.

In einem collector gesammelte Werte werden nicht weitergeleitet, wenn die flushWith-Bedingung nicht eintritt. Dies ist der Fall, wenn

  • der angegbene Feldname nicht vorhanden ist oder
  • bei Standardeinstellung von combine, entity, equalsFilter, all, any und none der collector nicht gefüllt werden kann collector bis Ende des Datensatzes nicht gefüllt wird

Enthält ein collector keine Werte bei Eintreffen der flushWith-Bedingung, passiert ebenfalls nichts.

Bei der Verwendung von Wildcards ist Vorsicht geboten (siehe dazu die Box im Kapitel Werte auslesen).

reset löscht alle gesammelten Werte, nachdem diese weitergeleitet wurden. Ist reset="false", werden also nach einem erstmaligen flush die aktuell im collector gespeicherten Werte bei jedem neu gesammelten Wert von Neuem abgeschickt!

sameEntity leitet nur Werte weiter, die in derselben Literalgruppe (entity) gesammelt wurden. Ist die Literalgruppe fertig prozessiert, ohne dass für jedes Feld ein Wert vorhanden ist, werden die gespeicherten Werte weggeworfen. Der reset-Mechanismus wird anderseits bei sameEntity="true" unabhängig von der Einstellung des reset-Paraemters ausgelöst, konnte die flush-Bedingung in einer Literalgruppe erfüllt werden.

Im Fall von combine überschreiben neue ältere Werte des gleichen Datenfeldes.

Standardeinstellungen für flushWith, reset und sameEntity

Collector flushWith reset sameEntity
combine wenn vollständig false false
concat record true false
entity wenn vollständig false false
squares record true entfällt
tuples record entfällt entfällt
group entfällt entfällt entfällt
choose record true false
range record false false
equalsFilter wenn vollständig false false
all wenn vollständig false false
any wenn vollständig false false
none wenn vollständig false false