Interface JsonTableProcessingFragment
- All Known Implementing Classes:
FragmentCross,FragmentLeaf,FragmentSingle,FragmentUnion
public interface JsonTableProcessingFragment
-
Method Summary
Modifier and TypeMethodDescriptionint[]Returns an array containing indexes of columns produced by the fragment within all columns produced by json_table.booleangetRow()Tries to produce output values for all columns included in the Fragment, and stores them in corresponding positions in `newRow`.voidPrepares the Fragment to produce rows for the new JSON item.default voidresetRoot(com.fasterxml.jackson.databind.JsonNode item, Page input, int position, Object[] pathParameters) Prepares the root Fragment to produce rows for the new JSON item and new set of path parameters.
-
Method Details
-
reset
Prepares the Fragment to produce rows for the new JSON item. Note: This method must be called for each new JSON item. Due to nesting, there might be multiple JSON items to process for a single position in the input page. Therefore, input and position may not change for subsequent calls.- Parameters:
item- the new JSON iteminput- the input Page currently processed by json_table functionposition- the currently processed position in the input page
-
resetRoot
default void resetRoot(com.fasterxml.jackson.databind.JsonNode item, Page input, int position, Object[] pathParameters) Prepares the root Fragment to produce rows for the new JSON item and new set of path parameters. Note: at the root level, there is one JSON item and one set of path parameters to process for each position in the input page.- Parameters:
item- the new JSON iteminput- the input Page currently processed by json_table functionposition- the currently processed position in the input pagepathParameters- JSON path parameters for the top-level JSON path
-
getRow
boolean getRow()Tries to produce output values for all columns included in the Fragment, and stores them in corresponding positions in `newRow`. Note: According to OUTER or UNION semantics, some values might be null-padded instead of computed. Note: a single JSON item might result in multiple output rows. To fully process a JSON item, the caller must: - reset the Fragment with the JSON item - call getRow() and collect output rows as long as `true` is returned If `false` is returned, there is no output row available, and the JSON item is fully processed- Returns:
- true if row was produced, false if row was not produced (Fragment is finished)
-
getOutputLayout
int[] getOutputLayout()Returns an array containing indexes of columns produced by the fragment within all columns produced by json_table.
-