code: 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;
    }
docs: *
  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.