protected Iterable<String> getTableNames(Path path) {
    List<String> tableNames = getTableNames(Optional.<String>absent(), path);

    Preconditions.checkState(!tableNames.isEmpty(), "Hive table name not specified");
    return tableNames;
  }
protected Iterable < String > getTableNames ( Path path ) { List < String > tableNames = getTableNames ( Optional . < String > absent ( ) , path ) ; Preconditions . checkState ( ! tableNames . isEmpty ( ) , "Hive table name not specified" ) ; return tableNames ; }
*
Obtain Hive table names.

The returned {@link Iterable} contains:
1. Table name returned by {@link #getTableName(Path)}
2. Table names specified by <code>additional.hive.table.names</code>

In table names above, the {@value PRIMARY_TABLE_TOKEN} if present is also replaced by the
table name obtained via {@link #getTableName(Path)}.

@param path Path for the table on filesystem.
@return Table names to register.