code: protected Optional<String> getTableName(Path path) {
      if (!this.props.contains(HIVE_TABLE_NAME) && !this.props.contains(HIVE_TABLE_REGEX)) {
        return Optional.<String> absent();
      }
      return Optional.<String> of(
          this.tableNamePrefix + getDatabaseOrTableName(path, HIVE_TABLE_NAME, HIVE_TABLE_REGEX, this.tableNamePattern)
              + this.tableNameSuffix);
    }
docs: This method first tries to obtain the table name from {@link #HIVE_TABLE_NAME}.
  If this property is not specified, it then tries to obtain the table name using
  the first group of {@link #HIVE_TABLE_REGEX}.