public class ForkJoinFilter extends java.lang.Object implements JoinFilter
JoinFilter
.Props
werden akzeptiert:
Config.loadBeans(String)
nur temporaer fuer Joining-PhaseJoinFilter.open(Config, String)
weitergereicht.joinFilter.class
mittels
prefix.joinFilter.class
gesetzt werden.
Eine Implementation muss zudem das Prefix selber interpretieren koennen.
Config-Beispiel:
joinFilter.class=de.cm.osm2po.converter.joiner.ForkJoinFilter joinFilter.fork=myFilter1,myFilter2 myFilter1.joinFilter.shortEval=true myFilter1.joinFilter.class=pack.to.my.FirstFilter myFilter2.joinFilter.class=pack.to.my.SecondFilter myFilter2.joinFilter.myParam=trueWichtig:
JoinFilter.validate(Way)
liefert true
, sofern keiner
der beteiligten Filter false
liefert.false
liefert.
Hierfuer muss prefix.joinFilter.shortEval=true
gesetzt werden.prefix.joinFilter.alternative=true
annotiert einen Filter als
Alternative zum Vorgaenger und rehabilitiert eine bereits fehlgeschlagene
Validation. Ist bereits alles ok, so wird dieser Filter nicht gerufen.
In Kombination mit shortEval
ergeben sich so
interessante Kombinationen.close()
die angeschlossenen Filter in
umgekehrter Erstellungsreihenfolge.PROP_PREFIX
Constructor and Description |
---|
ForkJoinFilter() |
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.ForkJoinFilter
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.