Class MazeTable

java.lang.Object
org.apache.calcite.schema.impl.AbstractTable
org.apache.calcite.example.maze.MazeTable
All Implemented Interfaces:
ScannableTable, Table, Wrapper

public class MazeTable extends AbstractTable implements ScannableTable
User-defined table function that generates a Maze and prints it in text form.
  • Method Details

    • generate

      public static ScannableTable generate(int width, int height, int seed)
      Table function that generates a maze.

      Called by reflection based on the definition of the user-defined function in the schema.

      Parameters:
      width - Width of maze
      height - Height of maze
      seed - Random number seed, or -1 to create an unseeded random
      Returns:
      Table that prints the maze in text form
    • solve

      public static ScannableTable solve(int width, int height, int seed)
      Table function that generates a maze with a solution.

      Called by reflection based on the definition of the user-defined function in the schema.

      Parameters:
      width - Width of maze
      height - Height of maze
      seed - Random number seed, or -1 to create an unseeded random
      Returns:
      Table that prints the maze in text form, with solution shown
    • getRowType

      public RelDataType getRowType(RelDataTypeFactory typeFactory)
      Description copied from interface: Table
      Returns this table's row type.

      This is a struct type whose fields describe the names and types of the columns in this table.

      The implementer must use the type factory provided. This ensures that the type is converted into a canonical form; other equal types in the same query will use the same object.

      Specified by:
      getRowType in interface Table
      Parameters:
      typeFactory - Type factory with which to create the type
      Returns:
      Row type
    • scan

      public Enumerable<@Nullable Object[]> scan(DataContext root)
      Description copied from interface: ScannableTable
      Returns an enumerator over the rows in this Table. Each row is represented as an array of its column values.
      Specified by:
      scan in interface ScannableTable