Package com.mckoi.database.interpret

## Interface FromTableInterface

All Known Implementing Classes:
  `FromTableDirectSource`, `FromTableSubQuerySource`

    public interface FromTableInterface

A single table resource item in a query which handles the behaviour of resolving references to columns as well as providing various base utility methods for resolving general variable names.

Each instance of this interface represents a single 'FROM' resource.

Author:
  Tobias Downer

### Method Summary

All Methods Instance Methods Abstract Methods
`Variable[]` `allColumns()` Returns an array of Variable objects that references each column available in this table set item in order from left column to right column.
`java.lang.String` `getUniqueName()` Returns a unique name given to this table source.
`boolean` `matchesReference​(java.lang.String catalog, java.lang.String schema, java.lang.String table)` Returns true if this source will match the given catalog, schema and table.
`Variable` `resolveColumn​(java.lang.String catalog, java.lang.String schema, java.lang.String table, java.lang.String column)` Returns a Variable that is a fully resolved form of the given column in this table set.
`int` `resolveColumnCount​(java.lang.String catalog, java.lang.String schema, java.lang.String table, java.lang.String column)` Returns the number of instances we can resolve the given catalog, schema, table and column name to a column or columns within this item.

### Method Detail

#### getUniqueName

    java.lang.String getUniqueName()

Returns a unique name given to this table source. No other sources will share this identifier string.

#### matchesReference

    boolean matchesReference​(java.lang.String catalog,
                             java.lang.String schema,
                             java.lang.String table)

Returns true if this source will match the given catalog, schema and table. If any arguments are null then it is not included in the match.

Used for 'Part.*' type glob searches.

#### resolveColumnCount

    int resolveColumnCount​(java.lang.String catalog,
                           java.lang.String schema,
                           java.lang.String table,
                           java.lang.String column)

Returns the number of instances we can resolve the given catalog, schema, table and column name to a column or columns within this item. Note that if catalog, schema, table or column is 'null' then it means it doesn't matter.

For example, say we need to resolve the column 'id' the arguments are null, null, null, "id". This may resolve to multiple columns if there is a mixture of tables with "id" as a column.

Note that parameters of 'null, null, null, null', 'null, null, null, not null', 'null, null, not null, not null', 'null, not null, not null, not null', and 'not null, not null, not null, not null' are only accepted.

#### resolveColumn

    Variable resolveColumn​(java.lang.String catalog,
                           java.lang.String schema,
                           java.lang.String table,
                           java.lang.String column)

Returns a Variable that is a fully resolved form of the given column in this table set. This method does not have to check whether the parameters reference more than one column. If more than one column is referenced, the actual column returned is implementation specific.

#### allColumns

    Variable[] allColumns()

Returns an array of Variable objects that references each column available in this table set item in order from left column to right column.