public class FlowJoinFilter extends java.lang.Object implements JoinFilter
JoinFilter
und steuert deren Kontrollfluss ueber
einen simplen Mechanismus.validate(Way)
true
, wenn alle Aktionen
vorher erfolgreich waren und ebenfalls true
geliefert haben.
Dies ist nicht zwangslaeufig das Ergebnis der einzelnen JoinFilter
selbst,
sondern das Resultat der internen Reaktion auf das
JoinFilter.validate(Way)
-Ergebnis.DefaultJoinFilter
fuer
joinFilter.class
zu konfigurieren, wird stattdessen dieser Filter gesetzt.
Alle Konfigurations-Eintraege der beteiligten Filter muessen danach mit einem
beliebigen Prefix versehen und diesem Filter bekannt gemacht werden.
Hier ein Beispiel, mit einem DefaultJoinFilter
der Mittels
FlowJoinFilter
verwaltet wird:
joinFilter.class=de.cm.osm2po.converter.joiner.FlowJoinFilter joinFilter.filters=F1,F2,... F1.joinFilter.class=de.cm.osm2po.converter.joiner.DefaultJoinFilter F1.joinFilter.defaultSpeed=50 F2.joinFilter.class=...Normalerweise werden alle Filter in der Deklarations-Reihenfolge durchlaufen. Sobald ein Filter fuer
validate(Way)
false
liefert,
wird abgebrochen. Dies liegt daran, dass jeder Filter zusaetzlich die
Standard-Reaktion NEXT|EXIT
zugewiesen bekommt, die auch wie
folgt definiert werden kann:
F1.joinFilter.reaction=NEXT|EXITDas erste Kommando wird dabei bei
true
ausgefuehrt, das zweite
logischerweise bei false
. Der false
-Anteil ist
optional und bleibt, falls weggelassen, bei EXIT
RESUME
: Setze das Gesamt-Validationsergebnis auf true zurueck und uebergebe an IGNOREIGNORE
: Setze das aktuelle Validationsergebnis auf true zurueck und uebergebe an NEXTNEXT
: Gehe zum naechsten FilterEXIT
: Liefere sofort das aktuelle Gesamt-Validationsergebnis zurueckTRUE
: Liefere sofort true
zurueckFALSE
: Liefere sofort false
zurueckNEXT:F2
: Springe zu Filter mit Prefix F2IGNORE:3
: Springe zum vierten Filter (Index 3)Config.loadBeans(String)
,
externe Bean (-Files) nur temporaer - also nur fuer den Join-Lauf - in den Speicher zu laden.
joinFilter.loadbean.myBean=[myBean]
ValidWayJoinFilter
,
ClazzJoinFilter
,
ProximityJoinFilter
,
PoiJoinFilter
,
ExtractorJoinFilter
PROP_PREFIX
Constructor and Description |
---|
FlowJoinFilter() |
Modifier and Type | Method and Description |
---|---|
void |
close()
Schliesst und bietet die Moeglichkeit, resourcen
aufzuraeumen.
|
void |
open(Config config,
java.lang.String prefix)
Wird einmalig nach der Instanziierung aufgerufen.
|
void |
tiledInto(int tileId,
boolean written)
Wird immer nach
JoinFilter.validate(Way) aufgerufen und informiert darueber,
welches Tile der Joiner dem Way zugeordnet hat,
bzw. ob der Weg ueberhaupt geschrieben wurde. |
boolean |
validate(Way way)
Kritischer Callback, der einen Verweis auf den gerade
zusammengestellten Weg uebergibt und somit alle
Tueren fuer letzte Manipulationen vorm endgueltigen
Rausschreiben oeffnet.
|
public void open(Config config, java.lang.String prefix)
JoinFilter
open
in interface JoinFilter
config
- Config
Konfiguration.prefix
- String Property-Prefix ohne Punkt-Trenner NULLABLE.FlowJoinFilter
public void close()
JoinFilter
close
in interface JoinFilter
public boolean validate(Way way)
JoinFilter
validate
in interface JoinFilter
way
- Way
public void tiledInto(int tileId, boolean written)
JoinFilter
JoinFilter.validate(Way)
aufgerufen und informiert darueber,
welches Tile
der Joiner
dem Way
zugeordnet hat,
bzw. ob der Weg ueberhaupt geschrieben wurde.tiledInto
in interface JoinFilter
tileId
- int ID des Tiles oder -1 wenn Shared, bzw. -2 wenn orphaned-shared.written
- true: Way
wurde vom Joiner
geschrieben.