class GlueMetastoreClientDelegate {

  public void alterFunction(String dbName, String functionName,
      org.apache.hadoop.hive.metastore.api.Function newFunction) throws InvalidObjectException, MetaException,
      TException {
    try {
      UserDefinedFunctionInput functionInput = GlueInputConverter.convertToUserDefinedFunctionInput(newFunction);
      glueMetastore.updateUserDefinedFunction(dbName, functionName, functionInput);
    } catch (AmazonServiceException e) {
      logger.error(e);
      throw CatalogToHiveConverter.wrapInHiveException(e);
    } catch (Exception e) {
      String msg = "Unable to alter Function: ";
      logger.error(msg, e);
      throw new MetaException(msg + e);
    }
  }

  public  GlueMetastoreClientDelegate(HiveConf conf, AWSGlueMetastore glueMetastore,
                                     Warehouse wh);

}