For the jump start go directly to the description of the PropertyTableTask
For current implementations see
For looking behind the curtain, read the concepts.
JOIN Table Format
- A PropertyTable is a List of Properties objects.
- Tables are contained inside a container.
- Tables can be requested by their name, that is unique per container.
- The container may contain one special table named "JOIN".
- When providing a table (source table), the JOIN table of the current container is respected like this:
- For each line in the JOIN table that concerns the current source table the join is executed like definded in that line, i.e.:
- For each value in the source table the corresponding column of the foreign table is searched for lines that comply with the filter.
- For every hit source line and foreign line are merged.
- If there was no hit, the source line remains as is.
- Processing is recursively. A foreign table may as well appear as source table in JOIN. There is no protection against endless loops, yet!
Every line of the JOIN Table provides information on how to join
the "source table" with the "foreign" table.
|table||name of the source table in the current container||no||yes|
|name||name of the source property to join||no||yes|
|tableClass||class of the foreign table's Format||tableClass of the source table||no|
|container||container name of the foreign table||current container||no|
|foreignTable||name of the foreign table in the container.||If foreignName is like <mytable.col> than <mytable> is assumed.||no|
|foreignName||the name of the property in the foreign table used for joining||name||no|
|filterClass||the Filter to apply on the foreign table after the lookup||FirstEquals||no|
|prefix||Newly joined property names are prefixed with this label and a dot.||empty||no|